Como personalizar o bash shell com o shopt

Conteúdo

Um prompt de terminal em um laptop Linux.

Se você ajustar o comportamento do seu shell Bash com shopt, pode controlar mais do que 50 configurações. Mostraremos como adaptar seu sistema Linux ao seu gosto.

A loja embutida

a shopt integrado faz parte de todas as versões do Bash shell, então não é necessário instalar nada. O número de alternativas disponíveis em shopt tem aumentado constantemente ao longo dos anos. Por isso, quanto mais antiga a versão do Bash, quanto mais curta a lista de shopt as alternativas serão.

Se algo parece não estar funcionando em sua máquina, Verifica a man entrada da página para Bash e verifique se a opção está disponível em sua versão do shopt.

Cobrimos tudo shopt opções abaixo. Também descrevemos como usá-lo e compartilhamos alguns exemplos. Desde ali, Você pode consultar a página de manual do Bash ou Manual de referência do GNU Bash para ver se alguma dessas opções parece útil ou atraente.

Algum shopt As alternativas são ativadas por padrão e fazem parte do comportamento padrão do Bash. Você pode habilitar um shopt opção como uma mudança de curto prazo para bash. Posteriormente, ele reverterá para o comportamento padrão quando você fechar o shell.

Apesar disto, se você quiser que um comportamento modificado esteja disponível toda vez que você iniciar um shell bash, pode fazer mudanças permanentes.

Alternativas de compras

Existem 53 shopt opções. Se você usar o shopt comando sem qualquer opção, lista-os. Se canalizarmos a saída por meio do wc comando, o fará conte as linhas, palavras e personagens para nós. Porque cada shopt A opção está em sua própria linha, o número de linhas é o número de alternativas.

Nós escrevemos o seguinte:

lojas | banheiro

Para ver todas as alternativas, podemos canalizar a saída por meio do column comando para exibir nomes de opções em colunas, ou podemos canalizá-lo para less.

Nós escrevemos o seguinte:

lojas | coluna

Encontre shopt no Manual do Linux

A seção que discute shopt e suas opções estão na seção Bash do manual do Linux. A seção Bash tem mais de 6.000 linhas. Você pode encontrar a descrição de shopt com muito deslocamento, ou você pode apenas procurar no manual.

Para faze-lo, abra o manual na seção Bash:

man bash

No manual, pressione / para iniciar uma busca. Digite o seguinte e pressione Enter:

assoc_expand_once

O início do shoptA seção de alternativas aparecerá no man janela.

RELACIONADO: Como usar o comando man do Linux: segredos ocultos e noções básicas

Opções de armar e desarmar

Para montar e desmontar shopt opções, use os seguintes comandos:

  • -s: Determinar ou habilitar.
  • -você: Desarmado ou desabilitado.

Porque algumas opções são ativadas por padrão, também é útil verificar quais opções estão ativadas. Você pode fazer isso com ele -s e -u opções sem usar um nome de opção. Isso faz com que shopt para listar as alternativas que estão habilitadas e desabilitadas.

Escreva o seguinte:

lojas -s

lojas -u | coluna

Você pode usar um shopt opção sem o -s o -u comandos para ver o status ligado ou desligado de cada opção.

Como um exemplo, podemos escrever o seguinte para verificar a configuração do histverify opção:

loja histverify

Podemos escrever o seguinte para ativá-lo:

shopt -s histverify

Subseqüentemente, podemos escrever o seguinte para verificar novamente:

loja histverify

a histverify A opção muda a forma como um aspecto do history comando opera. Em geral, se você perguntar history repetir um comando referindo-se a ele por número, O que !245, o comando é recuperado do histórico de comandos e executado imediatamente.

Se preferir rever um comando para se certificar de que é o que esperava e edite-o, Sim é necessário, digite o seguinte para configurar o shopt histverify opção para ligar:

!245

O comando é recuperado e apresentado na linha de comando. Você pode removê-lo, edite-o ou execute-o pressionando Enter.

RELACIONADO: Como usar o comando history no Linux

A opção autocd

Com ele autocd opção ativada, se você digitar o nome de um diretório na linha de comando e pressionar Enter, será tratado como se você tivesse escrito cd na frente disso.

Escrevemos o seguinte para ligar o autocd opção:

shopt -s autocd

Subseqüentemente, nós escrevemos o nome de um diretório:

Documentos

A opção cdspell

Quando o cdspell está ativado, O Bash corrigirá automaticamente erros ortográficos simples e erros de digitação em nomes de diretórios.

Escrevemos o seguinte para configurar o cdspell opção:

shopt -s cdspell

Para tentar mudar para um diretório em minúsculas que deve ter uma letra inicial maiúscula, nós escrevemos o seguinte:

documentos de cd

Subseqüentemente, podemos escrever o seguinte para testar um nome de diretório com um “t” extra em seu nome:

cd ../Picttures

Mudanças Bash em cada diretório, independentemente de erros de ortografia.

A opção xpg_echo

Quando o xpg_echo está ativado, o comando echo obedecerá aos caracteres de escape, O que n para nova linha e t para flange horizontal.

Primeiro, nós escrevemos o seguinte para ter certeza de que a opção está definida:

lojas -s xpg_echo

Mais tarde incluímos n em uma cadeia nós vamos echo:

eco "Esta é a linha um. Esta é a linha dois"

O caractere de nova linha de escape força uma nova linha na saída.

Isso produz o mesmo comportamento que o -e (permitir interpretação de escape) echo opção, mas xpg_echo torna a ação padrão.

RELACIONADO: Como usar o comando Echo no Linux

A opção dotglob

a dotglob A opção deve ser tratada com um pouco de cautela. Ativa arquivos e diretórios que começam com um ponto (.) para ser incluído em expansões de nomes ou “globbing”. Estes são chamados “arquivos de ponto” o “diretórios de pontos” e, em geral, estão escondidos. a dotglob A opção ignora o ponto no início de seus nomes.

Primeiro, faremos uma busca por arquivos ou diretórios que terminem em “geek” escrevendo o seguinte:

ls * geek

Um arquivo foi encontrado e listado. Então, vamos ligar o dotglob opção digitando o seguinte:

shopt -s dotglob

Nós emitimos o mesmo ls comando 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ê tem que ter cuidado com rm e mv quando você tem o dotglob opção ativada.

A opção nocaseglob

a nocaseglob A opção é equivalente a dotglob opção, exceto nocaseglob faz com que as diferenças de letras maiúsculas e minúsculas nos nomes de arquivos e diretórios sejam ignoradas nas expansões de nome.

Digitamos o seguinte para procurar arquivos ou diretórios que começam com “Desculpe-me”:

é como *

Um arquivo foi encontrado e listado. Escrevemos o seguinte para ligar o nocaseglob opção:

shopt -s nocaseglob

Subseqüentemente, nós repetimos o ls comando:

é como *

Dois arquivos encontrados, um dos quais contém letras maiúsculas.

Faça 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, devemos 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

a gedit O editor será aberto com o arquivo “.bashrc” carregado. você vai ver alguns shopt os ingressos já estão lá.

O editor gedit com .bashrc carregado e opções de armazenamento realçadas.

Você pode adicionar seu próprio shopt opções aqui também. Quando você os adicionou, salve as alterações e feche o editor. Agora, toda vez que você abre um novo shell bash, suas opções serão definidas para você.

Opções até onde os olhos podem ver

É verdade o shopt O comando tem muitas opções, mas você não precisa lidar com todos eles ao mesmo tempo, se ele alguma vez fizer. Já que existem tantos, provavelmente há alguns que não lhe interessam.

Como um exemplo, há muitos que forçam o Bash a trabalhar de uma maneira compatível com versões anteriores. Isso pode ser útil para alguém, mas é um caso bastante específico.

Você pode conferir a festa página man o Manual de referência do GNU Bash. Decida quais opções farão diferença para você e experimente com elas. Apenas tome cuidado com as alternativas que afetam a maneira como os nomes de arquivos e diretórios são expandidos. Teste-os com um comando benigno, O que ls, até que você se sinta confortável com eles.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.