← Voltar

[HOWTO]Criando Apelidos para os Comandos utilizando alias

Atualização: 17/04/2018

Autor: Jefferson Rocha

Seção: Slackware > Configuração

Versão: 1.0

Homepage: http://slackjeff.com.br


Ás vezes precisamos executar um ou mais comando(s) extenso(s) ou de díficil memorização muitas vezes ao dia/semana/mês, isto se torna uma tarefa incomoda com o passar do tempo, mas se podessemos simplesmente criar um apelido!? e poupar o dedo, Não seria legal? Substituir por exemplo: 'slackpkg update && slackpkg upgrade-all' por um simples 'update' .

Existe uma forma de criar um apelido para o comando graças ao 'alias', este comando interno 'builting' do Shell Bash, nos permite fazer uma conversão de um comando simples ou até inteiro com vários parâmetros para um simples apelidinho! Vamos fazer está experiencia, utilizaremos o comando 'echo' para este primeiro contato. O alias tem um padrão a ser seguido seguindo nesta ordem: alias APELIDO="COMANDO/COMANDOS".

$ alias imprimi='echo "Olá MUndo"'

$ imprimi
Olá MUndo

Note que mesmo não fechando o Shell corrente o alias já foi ativado... fiz a chamada do apelido 'imprimi' e o comando 'echo' já fez o seu papel, retornando Olá mundo via STDOUT. Vamos fazer mais uma brincadeira, vamos utilizar um comando em sequencia para atualizar a lista de mirrors, em sequencia vamos atualizar os pacotes, para isto vou chamar meu alias/apelido de atualizar, executando-a em sequencia.

$ alias atualizar="slackpkg update && slackpkg upgrade-all"

$ atualizar
Only root can install, upgrade, or remove packages.
Please log in as root or contact your system administrator.

Only root can install, upgrade, or remove packages.
Please log in as root or contact your system administrator.

Opa, houve um erro! precisamos de permissão para atualizar o sistema correto? Vamos então entrar como root em sequencia rodar nosso alias 'atualizar' novamente.

$ su

# atualizar
bash: atualizar: comando não encontrado

O que aconteceu, por que meu alias não rodou corretamente??? Acontece que o seu alias foi criado em um Shell, correto? quando logamos como root abrimos uma Sub-Shell, ou Shell filho. Os Shell filhos não herdam quase nada de seu Shell pai, a não ser que especificamos isso! Vamos fazer mais um teste? desta vez diferente, será que se criar o mesmo alias mas fazer a chamada de um novo 'bash' o alias será executado?

# alias atualizar="slackpkg update && slackpkg upgrade-all"

# bash

# imprimi
bash: imprimi: comando não encontrado

Aconteceu a mesma coisa, quando fizemos a chamada do Bash, aconteceu que abrimos uma Sub-Shell, o alias não foi exportado para o Shell filho e rolou o erro! E como faz para esses alias serem herdados para qualquer Shell do usuário? Simples, para ser exportada para todos os Shell do seu usuário podemos inserir os nossos alias em um arquivo localizado em seu Home chamada '.bashrc', a cada novo Shell aberto, é feito uma leitura deste arquivo e inserido tudo que for passado... Este processo é um pouco desnecessário para alguns casos, mais útil! Por padrão no Slackware esse arquivo não existe, devemos criar, para isto execute o comando abaixo com o seu usuário!

$ > "$HOME/.bashrc"

Criado o arquivo abra o '.bashrc' com seu editor favorito, e vamos inserir o mesmo comando de atualização com slackpkg!

$ nano "$HOME/.bashrc"

# Alias do meu Usuário! alias atualizar="slackpkg update && slackpkg upgrade-all"

Inserido nosso alias salve e feche. Em sequencia feche o seu Shell que está correndo e abra um novo e execute nosso alias 'atualizar'.

$ atualizar
Only root can install, upgrade, or remove packages.
Please log in as root or contact your system administrator.

Only root can install, upgrade, or remove packages.
Please log in as root or contact your system administrator.

E funcionou! porem necessito de permissão do root como já sabemos... Como o root é um "outro" usuário, sabemos que nosso alias não irá funcionar, podemos simplesmente copiar o nosso arquivo '.bashrc' para o diretorio dele! para isto precisamos logar como root.

$ su

# cp /home/USUARIO/.bashrc /root/

Feito isto deslogue-se e logue-se novamente como root e você verá o seu alias funcionando perfeitamente!