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 shopt
A 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á.
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.