Links de salto
- O que são personagens especiais?
- ~ Diretório doméstico
- . Diretório atual
- .. diretório pai
- / Separador de diretório de caminho
- # Comentar ou acabar strings
- ? Outimista de um único personagem
- * Sequência de personagens Bash curinga
- [] Setting Wildcard
- ; Separador de comando shell
- E processo de fundo
- > Redirecionamento de saída
- | Cano
- ! Pipeline lógico não e operador de história
- $ Expressões variáveis
- Citando personagens especiais
Se você deseja dominar o Shell Bash no Linux, MacOS ou outro sistema do tipo Unix, caracteres especiais (como ~, *, | e>) são críticos. Ajudaremos você a desvendar essas seqüências de comando linux enigmáticas e se tornar um herói de hieróglifos.
O que são personagens especiais?
Há um conjunto de caracteres que a casca de bash trata de duas maneiras diferentes. Quando você os digita no shell, eles atuam como instruções ou comandos e dizem ao shell para desempenhar uma determinada função. Pense neles como comandos de caracteres únicos.
Às vezes, você só quer imprimir um personagem e não precisa de agir como um símbolo mágico. Há uma maneira de usar um personagem para se representar e não sua função especial.
Mostraremos quais personagens são personagens “especiais” ou “meta-“, bem como como você pode usá-los de forma funcional e literalmente.
~ Diretório doméstico
O TILDE (~) é abreviado para o seu diretório doméstico. Isso significa que você não precisa digitar o caminho completo para o seu diretório doméstico nos comandos. Onde quer que você esteja no sistema de arquivos, você pode usar este comando para ir ao seu diretório doméstico:
cd ~
Você também pode usar este comando com caminhos relativos. Por exemplo, se você está em algum lugar do sistema de arquivos que não está na sua pasta doméstico e deseja mudar para o archive diretório em seu work Diretório, use o tilde para fazê -lo:
cd ~/work/archive
. Diretório atual
Um período (.) Representa o diretório atual. Você vê isso nas listagens de diretórios se você usar o -a (todos) opção com ls.
ls -a
Você também pode usar o período nos comandos para representar o caminho para o seu diretório atual. Por exemplo, se você deseja executar um script do diretório atual, você chamaria assim:
./script.sh
Isso diz a Bash para procurar no diretório atual para o script.sh arquivo. Dessa forma, ele não pesquisará os diretórios em seu caminho para corresponder executável ou script.
.. diretório pai
O período duplo ou “ponto duplo” (..) representa o diretório pai do seu atual. Você pode usar isso para subir um nível na árvore do diretório.
cd ..
Você também pode usar esse comando com caminhos relativos – por exemplo, se deseja subir um nível na árvore do diretório e inserir outro diretório nesse nível.
Você também pode usar essa técnica para se mover rapidamente para um diretório no mesmo nível na árvore do diretório que a atual. Você aumenta um nível e depois recua um em um diretório diferente.
cd ../gc_help
/ Separador de diretório de caminho
Você pode usar um slash para a frente (/)-geralmente chamado de barra-para separar os diretórios em um nome de caminho.
ls ~/work/archive
Uma espalhada para a frente representa o mais curto caminho de diretório possível. Como tudo na árvore do diretório Linux começa no diretório raiz, você pode usar este comando para mudar para o diretório raiz rapidamente:
cd /
# Comentar ou acabar strings
Na maioria das vezes, você usa o hash ou sinal de número (#) para dizer ao shell o que se segue é um comentário e não deve agir sobre ele. Você pode usá -lo em scripts de shell e – sem uso – na linha de comando.
# This will be ignored by the Bash shell
Não é realmente ignorado, no entanto, porque é adicionado ao seu histórico de comando.
Você também pode usar o hash para aparar uma variável de string e remover algum texto desde o início. Este comando cria uma variável de string chamada this_string.
Neste exemplo, atribuímos o texto “Dave Geek!” para a variável.
this_string="Dave Geek!"
Este comando usa echo Para imprimir as palavras “como fazer” para a janela do terminal. Ele recupera o valor armazenado na variável da string por meio de uma expansão de parâmetros. Porque anexamos o hash e o texto “Dave”, ele apara essa parte da corda antes de ser passada para echo.
echo How-To ${this_string#Dave}Isso não altera o valor armazenado na variável string; afeta apenas o que é enviado para echo. Nós podemos usar echo Para imprimir o valor da variável string mais uma vez e verifique isso:
echo $this_string
? Outimista de um único personagem
O Bash Shell suporta três curingas, um dos quais é o ponto de interrogação (?). Você usa curingas para substituir os caracteres nos modelos de nome do arquivo. Um nome de arquivo que contém um curinga forma um modelo que corresponde a uma variedade de nomes de arquivos, em vez de apenas um.
O ponto de interrogação Wildcard representa exatamente um personagem. Considere o seguinte modelo de nome do arquivo:
ls badge?.txt
Isso se traduz como “Liste qualquer arquivo com um nome que começa com ‘crachá’ e é seguido por qualquer caractere antes da extensão do nome do arquivo”.
Ele corresponde aos seguintes arquivos. Observe que alguns têm números e outros têm cartas após a parte do “crachá” do nome do arquivo. O ponto de interrogação Wildcard corresponderá às letras e números.
Esse modelo de nome do arquivo não corresponde ao “Badge.txt”, porque o nome do arquivo não tem um único caractere entre “Badge” e a extensão do arquivo. O ponto de interrogação Wildcard deve corresponder a um caractere correspondente no nome do arquivo.
Você também pode usar o ponto de interrogação para encontrar todos os arquivos com um número específico de caracteres nos nomes de arquivos. Isso lista todos os arquivos de texto que contêm exatamente cinco caracteres no nome do arquivo:
ls ?????.txt
* Sequência de personagens Bash curinga
Você pode usar o asterisco
ls badge*
Wildcard para defender qualquer sequência de personagens, incluindo nenhum personagem. Considere o seguinte modelo de nome do arquivo:
Um terminal Linux com um curinga sendo usado para nomes de arquivos.
Ele corresponde ao “badge.txt” porque o curinga representa qualquer sequência de caracteres ou nenhum caractere.
ls source.*
[] Um terminal Linux com um curinga sendo usado para extensões de arquivo.
Setting Wildcard
Como coberto acima, você usa o ponto de interrogação para representar qualquer caractere e o asterisco para representar qualquer sequência de caracteres (incluindo nenhum caractere). [] Você pode formar um curinga com os colchetes (
) e os personagens que eles contêm. O personagem relevante no nome do arquivo deve corresponder a pelo menos um dos caracteres no conjunto de caracteres curinga.
ls badge_0[246].txt
Um terminal Linux com colchetes sendo usado como curingas em um comando LS.
ls badge_[01][789].txt
Um terminal Linux com vários conjuntos de colchetes sendo usados como curingas em um comando LS.
ls badge_[23][1-5].txt
Um terminal Linux com conjuntos de colchetes com faixas sendo usadas como curingas em um comando LS.
; Separador de comando shell
ls > count.txt; wc -l count.txt; rm count.txt
Um terminal Linux com semicolons sendo usado para executar vários comandos.
Observe que o segundo comando é executado, mesmo que o primeiro falhe, o terceiro é executado, mesmo que o segundo falhe e assim por diante.
cd ./doesntexist && cp ~/Documents/reports/* .
Um terminal Linux com dois ampeiros e usados em um conjunto de comandos.