🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

Aprenda os comandos básicos e as funcionalidades úteis do Zsh (Preenchimento, Histórico, Globbing)

No artigo anterior, instalou o Oh My Zsh, o que deve ter potenciado significativamente o seu ambiente Zsh tanto em aparência como em funcionalidade. Embora a personalização com aliases, temas e plugins seja um grande atrativo do Zsh, na verdade, o Zsh tem muitas funcionalidades extremamente poderosas e convenientes incorporadas, sem depender de nenhuma dessas ferramentas externas.

Para muitas pessoas que mudam de outros shells como o Bash, a razão pela qual se apaixonam pelo Zsh é a inteligência e a atenção aos detalhes destas "funcionalidades padrão". É como ter um secretário altamente competente sempre ao seu lado, a antecipar e a apoiar o seu trabalho.

Este artigo foca-se em três pilares poderosos que o Zsh tem desde o início: "Preenchimento", "Histórico" e "Globbing (Expansão de Nomes de Ficheiros)", e explica o seu uso específico. Prometemos que, ao dominar estas funcionalidades, o seu trabalho na linha de comandos se tornará um nível mais rápido e mais confortável!


1. A inteligência ao nível do texto preditivo! A "Funcionalidade de Preenchimento" do Zsh

Se há uma funcionalidade de arromba no Zsh, tem de ser a sua "funcionalidade de preenchimento". Apenas premindo a tecla Tab, fornece um suporte surpreendentemente inteligente que vai muito além da simples conclusão de nomes de ficheiros.

Completar opções de comandos

Já não precisa de consultar o manual a pensar: "quais eram as opções disponíveis para este comando...". Basta digitar o comando seguido de um - e premir a tecla Tab, e ele exibirá uma lista de opções disponíveis.

$ ls -[Pressionar Tab]
--all                             -A --almost-all                 -B --ignore-backups
--author                          -d --directory                  -D --dired
--color                           -F --classify                   -G --no-group
...(e assim por diante)...

Além disso, pode selecionar um candidato com as teclas de seta e ele até exibirá uma explicação do que cada opção faz.


Mudar os candidatos a preenchimento com base no contexto

O Zsh entende o que o comando que está a digitar no momento está a pedir e muda inteligentemente os candidatos a preenchimento.

Por exemplo, se premir a tecla Tab após o comando kill, que termina um processo, ele exibirá uma lista de nomes de processos atualmente em execução como candidatos, e não nomes de ficheiros.

$ kill [Pressionar Tab]
101 zsh      102 login    103 top      104 sshd
...

2. A funcionalidade de histórico "que simplesmente acerta"

A funcionalidade de histórico, que reutiliza comandos executados anteriormente, também é muito mais inteligente no Zsh do que no Bash.

Pesquisa incremental no histórico

Quando está a pensar: "Quero usar aquele comando git longo que digitei antes...", no Zsh, pode simplesmente digitar o início do comando (ex: git) e depois premir a tecla ↑ (seta para cima).

Isto irá pesquisar para trás no seu histórico de comandos, mas apenas através dos comandos que começam com git, e não no histórico completo. Isto permite-lhe encontrar o comando que procura de forma esmagadoramente mais rápida.

Reexecutar um comando com `!!`

!! é um alias especial que se expande para o último comando que executou. Isto brilha mais quando se esquece de adicionar sudo.

$ apt update
E: Could not open lock file ... Permission denied
$ sudo !!
sudo apt update
...

Apenas digitando sudo !!, ele reexecuta o comando como sudo apt update. O efeito de poupança de tempo disto é enorme.


3. O mestre da seleção de ficheiros, "Globbing"

Globbing é uma funcionalidade que usa caracteres universais como * para especificar múltiplos ficheiros de uma vez. No Zsh, esta funcionalidade é grandemente expandida e é chamada de "Globbing Estendido". (Para a usar, é necessária a configuração setopt EXTENDED_GLOB. Se estiver a usar o Oh My Zsh, muitas vezes já está ativada por defeito).

Pesquisa recursiva de ficheiros (**)

Usando **, pode procurar ficheiros no fundo dos subdiretórios com um único comando.

# Listar todos os ficheiros .js em todos os subdiretórios
ls -l **/*.js

Pesquisa OU (|)

Pode usar | para especificar ficheiros com uma condição "A ou B".

# Listar ficheiros .jpg ou .png
ls *.(jpg|png)

Pesquisa NÃO (^)

Pode usar ^ para especificar "todos os ficheiros exceto X".

# Listar tudo exceto os ficheiros .log
ls ^*.log

Especificar um intervalo numérico (<->)

Isto é útil para especificar um intervalo particular de ficheiros numerados sequencialmente.

# Listar ficheiros de image1.jpg a image10.jpg
ls image<1-10>.jpg

Conclusão

Desta vez, apresentámos algumas das funcionalidades convenientes e padrão que são a razão pela qual o Zsh é chamado de "o derradeiro shell".

Embora cada uma destas funcionalidades possa parecer uma pequena melhoria por si só, elas acumulam-se no seu trabalho diário para aumentar grandemente a sua produtividade. O Zsh não é apenas uma ferramenta para executar comandos; é um "parceiro" que apoia ativamente o seu trabalho.

Agora, para aqueles que estão a considerar seriamente migrar do Bash para o Zsh, o próximo artigo irá explicar os pontos de compatibilidade a ter em atenção ao executar scripts Bash no Zsh, e um resumo dos pontos de verificação para tornar a transição suave.

Uma lista de verificação de compatibilidade para pessoas que mudam do Bash para o Zsh