Como personalizar o Bash Shell com shopt

Publicados: 2022-01-29
Um prompt de terminal em um laptop Linux.
Fatmawati Achmad Zaenuri/Shutterstock

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.

Propaganda

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 

Propaganda

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
Propaganda

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
Propaganda

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
Propaganda

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
Propaganda

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”.

Propaganda

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.

O editor gedit com .bashrc carregado nele e as opções do shopt realçadas.

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.

Propaganda

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.