Aprenda / Terminal e linha de comando

IntermediárioAula 15 de 1614 min0% da trilha

Alias e customizando o terminal

Se você digita o mesmo comando longo todo dia, o terminal deixa você dar um apelido curto pra ele — permanente.

Depois de um tempo usando terminal, você percebe que repete os mesmos comandos longos o tempo todo — git status, ls -la, alguma combinação de flags que você sempre esquece metade. O recurso que resolve isso chama-se alias: um apelido curto que vira, na prática, um comando de verdade.

Criando um alias

terminal
alias ll="ls -la"

A partir desse momento, na mesma sessão de terminal, digitar ll executa exatamente ls -la:

terminal
ll

Alguns exemplos comuns que economizam bastante digitação no dia a dia:

alias comuns
alias gs="git status"
alias ..="cd .."
alias cls="clear"

Onde esse apelido mora de verdade

Só que tem um detalhe: um alias criado direto no terminal, do jeito que fizemos acima, vale apenas pra sessão atual — feche o terminal, ou abra uma aba nova, e o alias desaparece. Pra ele existir sempre, ele precisa estar escrito dentro de um arquivo de configuração do shell, que é lido automaticamente toda vez que um terminal novo abre.

Esse arquivo tem nome diferente dependendo do shell: no bash, normalmente é ~/.bashrc; no zsh (padrão do macOS moderno), é ~/.zshrc. Adicionar um alias permanente significa abrir esse arquivo num editor e incluir a linha ali dentro:

terminal
nano ~/.zshrc
dentro de ~/.zshrc, adicione ao final
alias gs="git status"
alias ll="ls -la"

Por que o alias não funciona imediatamente depois de editar

Aqui mora a confusão mais comum desta lição: você edita o ~/.zshrc, salva, sai do editor, tenta usar o alias novo — e não funciona. O motivo é que o shell só lê esse arquivo de configuração no momento em que uma sessão de terminal é aberta. Editar o arquivo depois que a sessão já está rodando não faz o shell reler nada sozinho.

Duas formas de resolver isso: abrir um terminal novo (uma sessão nova sempre lê o arquivo do zero), ou forçar a sessão atual a reler o arquivo com source:

terminal
source ~/.zshrc

source executa o conteúdo do arquivo dentro da sessão atual, como se cada linha tivesse sido digitada ali na hora — inclusive os alias que foram adicionados. Depois disso, o alias novo já funciona sem precisar fechar o terminal.

Exercício

Você adicionou alias gs="git status" no final do seu ~/.zshrc, salvou, e digitou gs na mesma janela de terminal onde estava editando — mas apareceu command not found: gs. O que aconteceu e como resolver sem fechar o terminal?

Quiz rápido

Por que um alias criado direto no terminal (sem editar nenhum arquivo) desaparece ao fechar a sessão?
Depois de adicionar um alias novo dentro do ~/.zshrc já com o terminal aberto, o que 'source ~/.zshrc' resolve?