Pesquisa de site

Aliases de linha de comando no Linux Shell


Nesta página

  1. Aliases de linha de comando no Linux
  2. Detalhes relacionados
  3. Conclusão

Até agora, nos comandos cd - e pushd/popd, bem como na variável de ambiente CDPATH. Nesta quarta e última parte, discutiremos o conceito de aliases e também como você pode usá-los para tornar sua navegação de linha de comando mais fácil e suave.

Alias de linha de comando no Linux

Em termos leigos, os aliases podem ser considerados como nomes curtos ou abreviações para um comando complexo ou um grupo de comandos, incluindo seus argumentos ou opções. Então, basicamente, com aliases, você cria nomes fáceis de lembrar para comandos não tão fáceis de digitar/lembrar.

Por exemplo, o comando a seguir cria um alias inicial para o comando cd ~:

alias home="cd ~"

Isso significa que agora você pode digitar rapidamente home e pressionar enter sempre que quiser voltar ao seu diretório home de qualquer lugar do sistema.

Aqui está o que a página man do comando alias diz sobre este utilitário:

The alias utility shall create or redefine alias definitions or write the values of existing alias definitions to standard output. An alias definition provides a string value that shall replace a command name when it is encountered

An alias definition shall affect the current shell execution environment and the execution environments of the subshells of the current shell. When used as specified by this volume of IEEE Std 1003.1-2001, the alias definition shall not affect the parent process of the current shell nor any utility environment invoked by the shell.

Então, como exatamente os aliases ajudam na navegação de linha de comando? Bem, aqui está um exemplo simples:

Suponha que você esteja trabalhando no diretório /home/himanshu/projects/howtoforge, que contém muitos subdiretórios e subdiretórios. Por exemplo, o seguinte é uma ramificação de diretório completa:

/home/himanshu/projects/howtoforge/command-line/navigation/tips-tricks/part4/final

Agora imagine que você está no diretório final e deseja voltar ao diretório tips-tricks e, a partir daí, precisa voltar ao diretório howtoforge. O que você faria?

Bem, normalmente, você executaria o seguinte conjunto de comandos:

cd ../..
cd ../../..

Embora essa abordagem não seja errada por si só, definitivamente não é conveniente, especialmente quando você precisa voltar, digamos 5 diretórios em um caminho muito longo. Então, qual é a solução? A resposta é: pseudônimos.

O que você pode fazer é criar aliases fáceis de lembrar (e digitar) para cada um dos comandos cd ... Por exemplo:

alias bk1="cd .."
alias bk2="cd ../.."
alias bk3="cd ../../.."
alias bk4="cd ../../../.."
alias bk5="cd ../../../../.."

Agora, sempre que quiser voltar, digamos 5 lugares, do seu diretório de trabalho atual, basta executar o seguinte comando:

bk5

Não é fácil agora?

Detalhes relacionados

Embora a técnica que usamos para definir aliases até agora (usando o comando alias) no prompt do shell funcione, os aliases existem apenas para a sessão de terminal atual. Há boas chances de que você queira que os aliases definidos por você persistam para que possam ser usados em qualquer nova janela/guia de terminal de linha de comando que você iniciar posteriormente.

Para isso, você precisa definir seus aliases no arquivo ~/.bash_aliases, que é carregado por seu arquivo ~/.bashrc por padrão (verifique se você está usando uma versão mais antiga do Ubuntu).

A seguir está o trecho do meu arquivo .bashrc que fala sobre o arquivo .bash_aliases:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Depois de adicionar uma definição de alias ao arquivo .bash_aliases, esse alias estará disponível em todo e qualquer novo terminal. No entanto, você não poderá usá-lo em nenhum outro terminal que já estava aberto quando você definiu esse alias - a saída é fonte .bashrc desses terminais. A seguir está o comando exato que você terá que executar:

source ~/.bashrc

Se isso parece um pouco trabalhoso demais (sim, estou olhando para vocês PREGUIÇOSOS), então aqui está um atalho para fazer tudo isso:

"alias [the-alias]" >> ~/.bash_aliases && source ~/.bash_aliases

Desnecessário dizer que você terá que substituir [the-alias] pelo comando real. Por exemplo:

"alias bk5='cd ../../../../..'" >> ~/.bash_aliases && source ~/.bash_aliases

Seguindo em frente, agora suponha que você tenha criado alguns aliases e os tenha usado intermitentemente por alguns meses. De repente, um dia, você duvida que um deles não esteja funcionando como esperado. Então você sente a necessidade de olhar para o comando exato que foi atribuído a esse alias. O que você faria?

Claro, você pode abrir seu arquivo .bash_aliases e dar uma olhada lá, mas esse processo pode ser um pouco demorado, especialmente quando o arquivo contém muitos aliases. Portanto, se você está procurando uma saída fácil, aqui está uma: tudo o que você precisa fazer é executar o comando alias com o alias-name como argumento.

Aqui está um exemplo:

$ alias bk6
alias bk6='cd ../../../../../..'

Como você pode ver, o comando mencionado anteriormente exibia o comando real atribuído ao alias bk6. Existe mais uma maneira: usar o comando type. Segue um exemplo:

$ type bk6
bk6 is aliased to `cd ../../../../../..'

Portanto, o comando type produz uma saída mais compreensível por humanos.

Outra coisa que vale a pena compartilhar aqui é que você pode usar aliases para os erros de digitação comuns que comete. Por exemplo:

alias mroe='more'

Finalmente, também vale a pena mencionar que nem todo mundo é a favor do uso de aliases. A maioria deles argumenta que, uma vez que você se acostuma com os aliases que define para sua facilidade, fica muito difícil para você trabalhar em algum outro sistema onde esses aliases não existam (e você não tem permissão para criar nenhum também). Para mais (bem como razões precisas) por que alguns especialistas não recomendam o uso de pseudônimos, você pode acessar aqui.

Conclusão

Como a variável de ambiente CDPATH que discutimos na parte anterior, um alias também é uma faca de dois gumes que deve ser usada com muito cuidado. Não desanime, pois tudo tem suas vantagens e desvantagens. Apenas prática e conhecimento completo são a chave quando você está lidando com conceitos como pseudônimos.

Portanto, isso marca o fim desta série de tutoriais. Espero que você tenha gostado e aprendido algumas coisas/conceitos novos com ele. Caso você tenha alguma dúvida ou pergunta, compartilhe conosco (e com o resto do mundo) nos comentários abaixo.