Como um exemplo extremo, deixe-me apenas usar um comando padrão para ilustrar por que o uso de comandos padrão pode ser prejudicial:
alias ls='rm'
Obviamente, isso é ruim porque causaria uma surpresa desagradável algum dia. Da mesma forma, a substituição de comandos padrão por aliases acabará levando a uma infeliz surpresa quando você menos espera.
Mas deixe-me apresentar um cenário comum que acontecerá com quase todos os administradores Unix à medida que avançam em sua carreira:
Algum dia, no futuro, você começará um novo trabalho e trabalhará em um novo sistema que foi criado por outros. Serão três horas da manhã de sábado e você não está pensando direito e está propenso a cometer erros. Seu ambiente padrão não estará disponível. Na verdade, você é raiz.
Considerando isso, você vai se lembrar que rm
não é aliado para rm -i
? Você vai verificar seus aliases especiais toda vez que fizer login na caixa? Se você mudar o ambiente do root, seus colegas de trabalho ficarão felizes com sua mudança?
Estou honestamente em cima do muro sobre isso. Eu trabalhei em milhares de sistemas em minha carreira, e se eu modificasse o ambiente em todos esses sistemas, seria difícil ver o valor.
Aliasing rm
to rm -i
é muito comum e eu já vi isso evitar muitos problemas, mas também causou muitas surpresas e horas de trabalho extra para recuperar arquivos apagados acidentalmente.
Então, agora eu tento evitar o aliasing de comandos comuns do sistema. Em vez disso, uso aliases e funções para fazer coisas que o shell não pode fazer facilmente. O que eu costumo fazer agora é anexar uma letra extra ao alias, como:
# List long, with color or special characters, depending on OS
alias ll='ls -l'
# Long, with metacharacters, show dotfiles, don't show . and ..
alias lll='ls -lA'
# Long, with metacharacters, show dotfiles, show . and ..
alias lla='ls -la'
# List just the dotfiles
alias l.='ls -l -Ad .????*'
# Useful greps
#alias hgrep='history |grep ${*} |grep -v $$'
alias greph='history |grep ${*}'
alias grepp='ps -ef |grep ${*}'
### Highlight some text.
# From http://unix.stackexchange.com/questions/366/convince-grep-to-output-all-lines-not-just-those-with-matches/367#367
highlight () { grep --color -E "$1|$" $2 ; }
E talvez eu devesse realmente me livrar do meu apelido final, porque adaptar-se a novas práticas leva tempo:
# For safety!
alias rm='rm -i'