Configurando Aliases - Como Abreviar Comandos no Linux

Configurando Aliases - Como Abreviar Comandos no Linux

O que você vai conseguir fazer

  • Dar um nome curto a um comando longo com `alias`
  • Manter o alias no próximo terminal adicionando-o ao `~/.bashrc` e executando `source`
  • Remover o alias com `unalias` e achar a causa com `type` quando ele não funciona

Pré-requisitos (leia estes primeiro)

O Que é um Alias?

Lina: Linny-senpai, estou cansada de digitar ls -la --color=auto toda vez. Existe uma forma mais rápida?
Veterano Linny: Sim. Você pode usar um alias. Ele permite dar um nome curto a um comando longo. Digite alias ll='ls -la --color=auto' e, a partir daí, ll faz o trabalho.
Lina: Só isso? Parece bem fácil.
Veterano Linny: É bem fácil mesmo. Existe um detalhe: um alias criado assim desaparece quando você fecha o terminalUm programa interativo que interpreta os comandos digitados e os executa.. Saber como resolver isso completa o assunto.

Um alias é um nome curto que você dá a um comando mais longo. Algumas pessoas chamam de apelido ou atalho. Este artigo usa sempre a palavra "alias".

Um alias reduz a digitação. Ele também diminui os erros de digitação.

As palavras usadas aqui

  • Terminal: a tela onde você digita comandos e lê os resultados em texto.
  • Shell: o programa que lê o seu comando e o executa. Este artigo assume o bash.
  • Terminal, shell e console costumam ser usados para indicar quase a mesma coisa.

Pense no alias como uma tabela de substituições que o shell guarda.

Resumo em uma linha

alias apelido='comando longo'

É só isso. Experimente agora mesmo.

Nada aqui quebra a sua máquina

Os comandos alias e unalias deste artigo nunca apagam um arquivo. Eles também nunca editam nenhum. Um erro de digitação não danifica o seu computador.

Somente o passo do ~/.bashrc mexe em um arquivo de configuração. A Seção 4-1 mostra como desfazer antes de qualquer alteração.

O Que Você Vai Aprender

  • Dar um nome curto a um comando longo com alias nome='comando'
  • Listar todos os aliases com alias, ou verificar apenas um com alias nome
  • Verificar uma definição com type e ignorar um alias uma vez com \
  • Manter um alias no próximo terminal adicionando-o ao ~/.bashrc e executando source
  • Remover um alias com unalias. Ele volta até você apagar a linha do .bashrc

1. Uso Básico

Conclusão: Defina um alias com alias nome=comando e use-o imediatamente, mas apenas nesta sessão.

1-1. Criar um alias

$ alias ll='ls -la'

Uma vez definido, você pode usá-lo imediatamente.

$ ll
total 48
drwxr-xr-x 5 user user 4096 May 31 19:00 .
drwxr-xr-x 3 root root 4096 May 20 10:00 ..
-rw-r--r-- 1 user user  220 May 20 10:00 .bash_logout
-rw-r--r-- 1 user user 3526 May 20 10:00 .bashrc

Um alias criado com o comando alias fica ativo apenas no terminal atual. Ele desaparece quando você fecha o terminal.

A Seção 4 mostra como mantê-lo.

1-2. Listar todos os aliases atuais

$ alias

Execute alias sem nada depois dele. Ele então mostra todos os aliases que você pode usar agora.

alias ll='ls -la'
alias grep='grep --color=auto'
alias ls='ls --color=auto'

No Ubuntu, aliases para grep e ls frequentemente já vêm pré-configurados. Você pode vê-los com o comando alias.

O que aparece depende do seu ambiente. Uma lista diferente da nossa não é problema.

1-3. Verificar um alias específico

$ alias ll
alias ll='ls -la'

2. Exemplos Úteis de Aliases

Conclusão: Aliases comuns cobrem ls, navegação de diretórios, flags seguras -i e comandos git curtos.

2-1. Atalhos para ls

alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
Lina: Qual é a diferença entre la e ll?
Veterano Linny: ls -la mostra todos os arquivos com detalhes completos, incluindo os ocultos. ls -A também mostra os ocultos, mas deixa de fora as linhas . e ...
Veterano Linny: Um arquivo oculto é simplesmente um arquivo cujo nome começa com .. O exemplo clássico é o .bashrc. Use o que melhor se encaixar na sua necessidade.

2-2. Navegação de diretórios

alias ..='cd ..'
alias ...='cd ../..'
alias ~='cd ~'

Digite .. e você sobe um nível de diretórioUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS.. Diretório é a mesma coisa que o Windows e o MacUm modelo de controle de acesso aplicado por regras fixas em todo o sistema (Mandatory Access Control). chamam de pasta.

2-3. Operações de arquivo mais seguras

alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

-i é uma chave que você adiciona depois do comando para mudar o comportamento dele. Chaves assim se chamam opções.

Com -i, o comando pergunta "tem certeza?" antes de agir.

Usando o rm com segurança

Um arquivo removido com rm não vai para a lixeira como acontece na interface gráfica. Ele some na hora. É por isso que um alias com confirmação, como alias rm='rm -i', ajuda tanto.

O terminal virtual deste site é para prática. Nada do que você digitar lá apaga um arquivo do seu computador, então experimente à vontade.

Cuidado em shell scripts

Se esses aliases estiverem ativos dentro de um script, o script pode se comportar de um jeito inesperado. Ele pode parar e ficar esperando uma resposta.

Escreva \rm ou /bin/rm nos scripts. Isso ignora o alias e chama o próprio comando.

2-4. Atalhos para Git

alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline'
Lina: Só gs e o git status roda? Eu uso todo dia, então isso ajuda bastante.
Veterano Linny: Isso. Só não crie aliases tão curtos que você esqueça o que eles fazem. Execute alias quando precisar da lista completa.

3. Verificando um Alias e Ignorando-o Uma Vez

Conclusão: type diz o que um nome realmente é. Adicionar uma barra invertida ignora o alias naquela execução.

3-1. Verificar se um alias está definido

$ type ll
ll is aliased to `ls -la'

type diz o que um nome realmente é. Ele distingue um alias de um comando, de uma função ou de um recurso interno do shell.

Se o nome não estiver definido, você verá isto:

$ type ll
bash: type: ll: not found

3-2. Ignorar o alias em uma execução

Com alias rm='rm -i' definido, toda remoção pede confirmação. Para pular isso apenas uma vez, coloque \ antes do nome.

$ \rm file.txt

A \ diz ao shell para usar o próprio comando, e não o alias. A sua configuração continua no lugar, e a próxima execução pergunta de novo.

3-3. Lina se atrapalha: o rm não perguntou

Lina: Coloquei alias rm='rm -i' no meu .bashrc. Mesmo assim, o rm dentro do meu script apagou o arquivo sem perguntar nada. A minha configuração quebrou?
Veterano Linny: Nada quebrou. Aliases não são expandidos dentro de um script.
Veterano Linny: Então o rm do seu script roda como o rm de verdade, e não como o seu alias. Nenhuma pergunta aparece.
Lina: Então existem lugares onde a minha configuração não chega? Isso me surpreendeu.
Veterano Linny: Sim. O alias é uma comodidade para a tela interativa. Para ter confirmação dentro de um script, escreva rm -i você mesma. Esse é o caminhoUma sequência de texto que descreve a localização de um arquivo ou diretório. seguro.
Lina: Entendi. O alias é um atalho para o que eu digito na mão. Agora fez sentido.

4. Tornando Aliases Permanentes

Conclusão: Adicione aliases ao ~/.bashrc para que sobrevivam ao fechar do terminal, depois execute source para aplicar agora.

Para manter aliases depois de fechar o terminal, adicione-os ao ~/.bashrc.

O ~/.bashrc é um arquivo de configuração que o shell lê sozinho toda vez que você abre um terminal novo. O ~ representa o seu diretório pessoal.

4-1. Faça uma cópia antes de editar

Prepare o desfazer primeiro

O ~/.bashrc é um arquivo de configuração. Um erro nele pode gerar uma mensagem de erro toda vez que você abre um terminal.

Então copie o arquivo antes de editar.

$ cp ~/.bashrc ~/.bashrc.bak

Se algo der errado, restaure a cópia.

$ cp ~/.bashrc.bak ~/.bashrc
$ source ~/.bashrc

Se o terminal continuar funcionando e apenas mostrar um erro, essas duas linhas resolvem.

Se o terminal abrir e fechar na hora, você pode iniciar um shell que ignora os arquivos de configuração. De outro terminal, digite isto:

$ bash --norc --noprofile

A partir daí, o cp acima restaura o seu arquivo.

4-2. Editar o .bashrc

$ nano ~/.bashrc

O nano é um editor de texto fácil para iniciantes. Adicione seus aliases no final do arquivo:

# Meus aliases
alias ll='ls -la'
alias ..='cd ..'
alias gs='git status'
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

4-3. Aplicar as alterações agora

Editar o .bashrc não chega ao terminal que já está aberto. Releia o arquivo com este comando:

$ source ~/.bashrc

A forma abreviada significa o mesmo:

$ . ~/.bashrc

O que o source faz?

Ele lê o .bashrc de novo no shell atual.

Um terminal novo carrega o .bashrc sozinho. Com o source, você aplica a alteração agora, sem abrir outro terminal.

Lina: Então, depois de adicionar aliases ao .bashrc e executar source, eles ainda estarão lá na próxima vez que eu abrir o terminal?
Veterano Linny: Estarão. Cada novo terminal carrega o .bashrc automaticamente, então seus aliases estão sempre prontos.

5. Removendo Aliases

Conclusão: unalias remove um, unalias -a remove todos, mas uma linha deixada no .bashrc traz o alias de volta.

5-1. Remover um alias específico

$ unalias ll

5-2. Remover todos os aliases

$ unalias -a

O unalias afeta apenas o terminal atual. Feche-o e abra um novo, e o .bashrc será lido outra vez. O alias volta.

Para remover de vez, apague também a linha do ~/.bashrc.

6. Solução de Problemas

Conclusão: Verifique o type primeiro. Falta de salvar, falta de source e espaços ao redor do = são as três causas comuns.

Lina: Eu adicionei o alias ao .bashrc mas o ll ainda não funciona. O que está errado?
Veterano Linny: Execute type ll primeiro e veja o que ele diz.
$ type ll
ll is aliased to `ls -la'

Se estiver definido, você vê a linha acima. Se nada aparecer, verifique estes três pontos.

Lista de verificação

  1. Você salvou o .bashrc? (No nano: Ctrl+O --> Enter --> Ctrl+X)
  2. Você executou source ~/.bashrc após salvar?
  3. O alias está escrito corretamente?

Erro comum: espaços ao redor do =

# Errado: espacos ao redor do = causam erro
alias ll = 'ls -la'

# Correto
alias ll='ls -la'

O sinal = não deve ter espaços em nenhum dos lados. Com espaços, o shell lê ll como se fosse um nome de comando.

7. Mini Exercícios: Experimente Você Mesmo

Conclusão: Criar, verificar e manter. Três exercícios cobrem o básico na prática.

Lina: Eu entendi a explicação. Agora quero experimentar sozinha.
Veterano Linny: Ótimo. Preparei três exercícios. Execute-os no seu terminal.

Exercício 1: Crie um alias chamado la que liste os arquivos, incluindo os ocultos.

Ver Dica 1 (Direção)

Você une um nome curto e o comando longo que ele representa com um sinal de igual. O comando fica entre aspasEnvolver um texto entre aspas (' ou ") para que seja tratado como um único valor, por exemplo um que tenha espaços..

Ver Dica 2 (Nome do comando)

Use alias. O comando que também mostra arquivos ocultos é ls -a.

Ver Resposta
$ alias la='ls -a'
$ la
.  ..  .bashrc  .profile  Documents  Downloads

A lista exata depende do seu ambiente. Se aparecerem entradas começando com ., funcionou.

Exercício 2: Confirme que la é realmente um alias. Depois execute-o uma vez ignorando o alias.

Ver Dica 1 (Direção)

Um comando diz o que um nome realmente é. Para ignorar um alias, coloque um único caractere antes do nome.

Ver Dica 2 (Nome do comando)

Verifique com type. O caractere que ignora o alias uma vez é \.

Ver Resposta
$ type la
$ \la
la is aliased to `ls -a'
bash: la: command not found

O \la ignora o alias. Não existe um comando real chamado la, então command not found é o resultado correto aqui.

Exercício 3: Deixe o la disponível no próximo terminal que você abrir. Faça uma cópia do arquivo antes de editar.

Ver Dica 1 (Direção)

Um arquivo de configuração é lido automaticamente sempre que um terminal inicia. Copie-o primeiro e depois adicione a sua linha nele.

Ver Dica 2 (Nome do comando)

Copie com cp, edite com nano e aplique com source. O arquivo é o ~/.bashrc. No nano, salve e saia com Ctrl+OEnterCtrl+X.

Ver Resposta
$ cp ~/.bashrc ~/.bashrc.bak
$ nano ~/.bashrc

Adicione esta linha no final do arquivo e salve.

alias la='ls -a'
$ source ~/.bashrc
$ type la
la is aliased to `ls -a'

Para uma linha só, você também pode pular o nano e digitar isto. O >> adiciona uma linha ao final do arquivo; um > sozinho apagaria tudo, por isso não é usado aqui.

$ echo "alias la='ls -a'" >> ~/.bashrc

8. Revisão

Lina: Então o alias vale só para a tela atual, e escrever no .bashrc deixa ele disponível da próxima vez.
Veterano Linny: Exatamente. Pense no source como o pequeno passo extra que diz "leia de novo agora".
Lina: E quando algo falha, o type me diz o que o nome realmente é. Aliases não valem dentro de scripts. Anotado.
Veterano Linny: Isso mesmo. Agora escolha dois ou três comandos que você digita com frequência e transforme em aliases.

Tabela de Comandos

Tarefa Comando
Criar um alias alias ll='ls -la'
Listar todos os aliases alias
Verificar um alias alias ll
Ver o que um nome realmente é type ll
Ignorar um alias uma vez \ll
Remover um alias unalias ll
Remover todos os aliases unalias -a
Tornar aliases permanentes Adicionar ao ~/.bashrc, executar source ~/.bashrc

Resumo do Dia em 3 Linhas

  1. alias nome='comando' cria um nome curto, mas apenas para o terminal atual
  2. Adicione ao ~/.bashrc e execute source, e ele funciona também no próximo terminal
  3. Quando falhar, execute type nome. Nunca coloque espaços ao redor do =

Próximas Leituras