Como un ejemplo extremo, permítanme alias un comando estándar para ilustrar por qué el alias de comandos estándar puede ser dañino:
alias ls='rm'
Obviamente, esto es malo porque causaría una desagradable sorpresa algún día. Del mismo modo, reemplazar los comandos estándar con alias eventualmente conducirá a una desafortunada sorpresa cuando menos lo espere.
Pero permítanme presentar un escenario común que le sucederá a casi todos los administradores de Unix a medida que avancen en su carrera:
Algún día en el futuro, comenzará un nuevo trabajo y trabajará en un nuevo sistema que fue configurado por otros. Serán las tres de la mañana del sábado y no estás pensando bien y eres propenso a cometer errores. Su entorno estándar no estará disponible. De hecho, eres root.
Dado esto, ¿vas a recordar que rm
no tiene alias rm -i
? ¿Va a verificar sus alias especiales cada vez que inicie sesión en el cuadro? Si cambia el entorno de la raíz, ¿sus compañeros de trabajo estarán contentos con su cambio?
Sinceramente, estoy en la cerca sobre esto. He trabajado en miles de sistemas en mi carrera, y si modificara el entorno en todos estos sistemas, sería difícil ver el valor.
Aliasing rm
a rm -i
es muy común y lo he visto a prevenir muchos problemas, pero también ha causado muchas sorpresas y horas de trabajo extra para recuperar archivos borrados accidentalmente.
Así que ahora trato de evitar el alias de los comandos comunes del sistema. En cambio, uso alias y funciones para hacer cosas que Shell no puede hacer fácilmente. Lo que tiendo a hacer ahora es adjuntar una letra adicional al 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 ; }
Y tal vez realmente debería deshacerme de mi alias final, porque adaptarme a las nuevas prácticas lleva tiempo:
# For safety!
alias rm='rm -i'
rm -i
, me entrena un poco más para agregar automáticamente la-f
bandera.