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.
