Hasta ahora, en esta serie de tutoriales, hemos discutido el uso básico y los detalles relacionados del cd y pushd. /popd comandos, así como el CDPATH Variable ambiental. En esta cuarta y última entrega, analizaremos el concepto de alias y cómo puede usarlos para que la navegación por la línea de comandos sea más fácil y fluida.
As always, before jumping on to the heart of the tutorial, it's worth sharing that all the instructions as well examples presented in this article have been tested on Ubuntu 14.04LTS. The command line shell we've used is bash (version 4.3.11).
Alias de línea de comandos en Linux
En términos sencillos, los alias pueden considerarse nombres cortos o abreviaturas de un comando complejo o un grupo de comandos, incluidos sus argumentos u opciones. Básicamente, con los alias, crea nombres fáciles de recordar para comandos que no son tan fáciles de escribir/recordar.
Por ejemplo, el siguiente comando crea un alias 'inicio' para el comando 'cd ~':
alias home="cd ~"
Esto significa que ahora puede escribir rápidamente "inicio" y presionar Intro cada vez que desee volver a su directorio de inicio desde cualquier parte de su sistema.
Esto es lo que dice la página de manual del comando alias sobre esta utilidad:
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.
Entonces, ¿cómo ayudan exactamente los alias en la navegación de la línea de comandos? Bueno, aquí hay un ejemplo simple:
Suponga que está trabajando en /home/himanshu/projects/howtoforge directorio, que además contiene muchos subdirectorios y sub-subdirectorios. Por ejemplo, la siguiente es una rama de directorio completa:
/home/himanshu/projects/howtoforge/command-line/navigation/tips-tricks/part4/final
Ahora imagina, estás en el directorio 'final', y luego quieres volver al directorio 'consejos y trucos', y desde allí, necesitas volver al directorio 'cómo forjar'. ¿Qué harías?
Bueno, normalmente ejecutaría el siguiente conjunto de comandos:
cd ../..
cd ../../..
Si bien este enfoque no es incorrecto per se, definitivamente no es conveniente, especialmente cuando tiene que regresar, digamos 5 directorios en una ruta muy larga. Entonces, ¿cuál es la solución? La respuesta es:alias.
Lo que puede hacer es crear alias fáciles de recordar (y escribir) para cada uno de los cd .. comandos Por ejemplo:
alias bk1="cd .."
alias bk2="cd ../.."
alias bk3="cd ../../.."
alias bk4="cd ../../../.."
alias bk5="cd ../../../../.."
Así que ahora, cuando quiera volver, digamos 5 lugares, desde su directorio de trabajo actual, puede ejecutar el siguiente comando:
bk5
¿No es fácil ahora?
Detalles relacionados
Si bien la técnica que hemos usado para definir alias hasta ahora (usando el comando alias) en el indicador de shell funciona, los alias existen solo para la sesión de terminal actual. Hay buenas posibilidades de que desee que los alias definidos por usted permanezcan para que puedan usarse en cualquier nueva ventana/pestaña de terminal de línea de comandos que inicie a partir de entonces.
Para esto, debe definir sus alias en ~/.bash_aliases archivo, que es cargado por su ~/.bashrc archivo de forma predeterminada (verifíquelo si está utilizando una versión anterior de Ubuntu).
El siguiente es el extracto de mi archivo .bashrc que habla sobre el archivo .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
Una vez que haya agregado una definición de alias a su archivo .bash_aliases, ese alias estará disponible en todos y cada uno de los terminales nuevos. Sin embargo, no podrá usarlo en ningún otro terminal que ya estuviera abierto cuando definió ese alias; la salida es obtener .bashrc desde esos terminales. El siguiente es el comando exacto que deberá ejecutar:
source ~/.bashrc
Si eso suena demasiado trabajo (sí, los estoy mirando, PEREZOSOS), aquí hay un atajo para hacer todo esto:
"alias [the-alias]" >> ~/.bash_aliases && source ~/.bash_aliases
No hace falta decir que tendrá que reemplazar [the-alias] con el comando real. Por ejemplo:
"alias bk5='cd ../../../../..'" >> ~/.bash_aliases && source ~/.bash_aliases
Continuando, ahora supongamos que ha creado algunos alias y los ha estado usando de forma intermitente durante algunos meses. De repente, un día, dudas de que alguno de ellos no esté funcionando como esperabas. Entonces siente la necesidad de mirar el comando exacto que se asignó a ese alias. ¿Qué harías?
Por supuesto, puede abrir su archivo .bash_aliases y echar un vistazo allí, pero este proceso puede llevar un poco de tiempo, especialmente cuando el archivo contiene muchos alias. Entonces, si está buscando una salida fácil, aquí tiene una:todo lo que tiene que hacer es ejecutar el alias comando con el alias-name como argumento.
He aquí un ejemplo:
$ alias bk6
alias bk6='cd ../../../../../..'
Como puede ver, el comando mencionado anteriormente mostraba el comando real asignado al alias bk6. Hay una forma más:usar el tipo dominio. El siguiente es un ejemplo:
$ type bk6
bk6 is aliased to `cd ../../../../../..'
Entonces, el comando de tipo produce una salida más comprensible para los humanos.
Otra cosa que vale la pena compartir aquí es que puede usar alias para los errores tipográficos comunes que comete. Por ejemplo:
alias mroe='more'
Por último, también vale la pena mencionar que no todo el mundo está a favor de usar alias. La mayoría argumenta que una vez que te acostumbras a los alias que defines para tu comodidad, se vuelve muy difícil para ti trabajar en algún otro sistema donde esos alias no existen (y tampoco puedes crear ninguno) . Para obtener más información (así como razones precisas) sobre por qué algunos expertos no recomiendan usar alias, puede dirigirse aquí.
Conclusión
Al igual que la variable de entorno CDPATH que discutimos en la parte anterior, el alias también es una espada de doble filo que se debe usar con mucha cautela. Sin embargo, no se desanime, ya que todo tiene sus propias ventajas y desventajas. Solo que la práctica y el conocimiento completo son la clave cuando se trata de conceptos como alias.
Así que esto marca el final de esta serie de tutoriales. Espero que lo hayas disfrutado y que hayas aprendido algunas cosas/conceptos nuevos. En caso de que tenga dudas o consultas, compártalas con nosotros (y el resto del mundo) en los comentarios a continuación.