Como personalizar o Bash Shell com shopt
Publicados: 2022-01-29 Se você ajustar o comportamento do seu shell Bash com shopt
, poderá controlar mais de 50 configurações. Mostraremos como personalizar seu sistema Linux do jeito que você gosta.
A loja Embutida
O shopt
integrado faz parte de todas as versões do shell Bash, portanto, não há necessidade de instalar nada. O número de opções disponíveis no shopt
aumentou constantemente ao longo dos anos. Portanto, quanto mais antiga for a versão do Bash, menor será a lista de opções de shopt
.
Se algo parece não estar funcionando em sua máquina, verifique a entrada da página man
do Bash e verifique se a opção está disponível em sua versão do shopt
.
shopt
todas as opções de compras abaixo. Também descrevemos como usá-lo e compartilhamos alguns exemplos. A partir daí, você pode conferir a página man do Bash ou o GNU Bash Reference Manual para ver se alguma dessas opções parece útil ou atraente.
Algumas opções de shopt
são habilitadas por padrão e fazem parte do comportamento padrão do Bash. Você pode habilitar uma opção shopt
como uma mudança de curto prazo no Bash. Ele então reverterá para o comportamento padrão quando você fechar o shell.
No entanto, se você quiser que um comportamento modificado esteja disponível sempre que você iniciar um shell Bash, você pode tornar as alterações permanentes.
As opções da loja
São 53 opções shopt
. Se você usar o comando shopt
sem nenhuma opção, ele as listará. Se canalizarmos a saída através do comando wc
, ele contará as linhas, palavras e caracteres para nós. Como cada opção shopt
está em sua própria linha, o número de linhas é o número de opções.
Digitamos o seguinte:
comprar | banheiro
Para ver todas as opções, podemos canalizar a saída por meio do comando column
para exibir os nomes das opções em colunas ou podemos canalizá-la para less
.
Digitamos o seguinte:
comprar | coluna
Encontrando shopt no Manual do Linux
A seção que discute shopt
e suas opções está na seção Bash do manual do Linux. A seção Bash tem mais de 6.000 linhas. Você pode encontrar a descrição do shopt
com muita rolagem, ou pode apenas procurá-la no manual.
Para fazer isso, abra o manual na seção Bash:
festa do homem
No manual, pressione /
para iniciar uma pesquisa. Digite o seguinte e pressione Enter:
assoc_expand_once
O início da seção de opções do shopt
aparecerá na janela do man
.
RELACIONADO: Como usar o comando man do Linux: segredos e fundamentos ocultos
Opções de configuração e desarmar
Para definir e desmarcar as opções do shopt
, use os seguintes comandos:
- -s : Definir ou ativar.
- -u : Desativar ou desativar.
Como algumas opções são ativadas por padrão, também é útil verificar quais opções estão ativadas. Você pode fazer isso com as opções -s
e -u
sem usar um nome de opção. Isso faz com que o shopt
liste as opções que estão ativadas e desativadas.
Digite o seguinte:
loja -s
shopt-u | coluna
Você pode usar uma opção shopt
sem os comandos -s
ou -u
para ver o estado ativado ou desativado de cada opção.
Por exemplo, podemos digitar o seguinte para verificar a configuração da opção histverify
:
hist.comprar verificar
Podemos digitar o seguinte para ativá-lo:
shopt -s histverify
Então, podemos digitar o seguinte para verificar novamente:
hist.comprar verificar
A opção histverify
altera como um aspecto do comando history
opera. Normalmente, se você pedir ao history
para repetir um comando referenciando-o por número, como !245
, o comando será recuperado do histórico de comandos e executado imediatamente.
Se você preferir revisar um comando para certificar-se de que é o que você esperava e editá-lo, se necessário, digite o seguinte para ativar a opção shopt histverify
:
!245
O comando é recuperado e apresentado na linha de comando. Você pode excluir, editar ou executá-lo pressionando Enter.
RELACIONADO: Como usar o comando history no Linux
A opção autocd
Com a opção autocd
ativada, se você digitar o nome de um diretório na linha de comando e pressionar Enter, ele será tratado como se você tivesse digitado cd
na frente dele.
Digitamos o seguinte para ativar a opção autocd
:
shopt -s autocd
Em seguida, digitamos o nome de um diretório:
Documentos
A opção cdspell
Quando a opção cdspell
está ativada, o Bash corrigirá automaticamente erros de ortografia simples e erros de digitação nos nomes dos diretórios.
Digitamos o seguinte para definir a opção cdspell
:
shopt -s cdspell
Para tentar mudar para um diretório em minúsculas que deve ter uma letra inicial maiúscula, digitamos o seguinte:
documentos em cd
Então, podemos digitar o seguinte para tentar um nome de diretório com um “t” extra em seu nome:
cd ../Pictures
Bash muda em cada diretório, independentemente dos erros de ortografia.
A opção xpg_echo
Quando a opção xpg_echo
estiver ativada, o comando echo obedecerá a caracteres de escape, como \n
para nova linha e \t
para guia horizontal.
Primeiro, digitamos o seguinte para garantir que a opção esteja definida:
shopt -s xpg_echo
Em seguida, incluímos \n
em uma string que vamos passar para echo
:
echo "Esta é a linha um\nEsta é a linha dois"
O caractere de nova linha com escape força uma quebra de linha na saída.
Isso produz o mesmo comportamento que a opção echo
-e
(habilitar interpretação de escape), mas xpg_echo
permite que ela seja a ação padrão.
RELACIONADO: Como usar o comando Echo no Linux
A opção dotglob
A opção dotglob
deve ser tratada com um pouco de cautela. Ele permite que arquivos e diretórios que começam com um ponto ( .
) sejam incluídos em expansões de nome ou “globbing”. Eles são chamados de “arquivos de ponto” ou “diretórios de ponto” e geralmente estão ocultos. A opção dotglob
ignora o ponto no início de seus nomes.
Primeiro, faremos uma busca por arquivos ou diretórios que terminam em “geek” digitando o seguinte:
ls *geek
Um arquivo é encontrado e listado. Em seguida, ativaremos a opção dotglob
digitando o seguinte:
shopt -s dotglob
Emitimos o mesmo comando ls
para procurar arquivos e diretórios que terminam em “geek”:
ls *geek
Desta vez, dois arquivos são encontrados e listados, um dos quais é um arquivo de ponto. Você precisa ter cuidado com rm
e mv
quando tiver a opção dotglob
ativada.
A opção nocaseglob
A opção nocaseglob
é semelhante à opção dotglob
, exceto que nocaseglob
faz com que diferenças em letras maiúsculas e minúsculas em nomes de arquivos e diretórios sejam ignoradas em expansões de nomes.
Digitamos o seguinte para procurar arquivos ou diretórios que começam com “how”:
é como*
Um arquivo é encontrado e listado. Digitamos o seguinte para ativar a opção nocaseglob
:
shopt -s nocaseglob
Em seguida, repetimos o comando ls
:
é como*
Dois arquivos são encontrados, um dos quais contém letras maiúsculas.
Tornando as alterações permanentes
As alterações que fizemos durarão apenas até fecharmos o shell Bash atual. Para torná-los permanentes em diferentes sessões de shell, precisamos adicioná-los ao nosso arquivo “.bashrc”.
Em seu diretório inicial, digite o seguinte comando para abrir o arquivo “.bashrc” no editor de texto gráfico Gedit (ou altere-o de acordo para usar o editor de sua preferência):
gedit .bashrc
O editor gedit
será aberto com o arquivo “.bashrc” carregado. Você verá que algumas entradas shopt
já estão nele.
Você também pode adicionar suas próprias opções de shopt
aqui. Depois de adicioná-los, salve suas alterações e feche o editor. Agora, sempre que você abrir um novo shell Bash, suas opções serão definidas para você.
Opções até onde os olhos podem ver
É verdade que o comando shopt
tem muitas opções, mas você não precisa enfrentá-las todas de uma vez, ou nunca. Como há tantos, provavelmente há alguns que não serão de seu interesse.
Por exemplo, há vários que forçam o Bash a operar de maneira compatível com versões específicas e antigas. Isso pode ser útil para alguém, mas é um caso bastante específico.
Você pode revisar a página man do Bash ou o GNU Bash Reference Manual. Decida quais opções farão a diferença para você e, em seguida, experimente-as. Apenas tome cuidado com as opções que afetam a maneira como os nomes de arquivos e diretórios são expandidos. Experimente-os com um comando benigno, como ls
, até se sentir confortável com eles.