Usar «alias» y crear comandos personalizados en Linux

.
El tema de este artículo es configurar de forma sencilla comandos personalizados. Esto, si lleva tiempo o está acostumbrado a manejar sistemas Unix/Linux (Mac es Unix así que también es aplicable) ya lo conocerá ya que esta miniguía está destinada a usuarios nóveles en dichos sistemas.

¿A que me refiero con personalizar comandos? pues me refiero a los casos que al usar linux se echan de menos los comandos usados en Ms-Dos que, a pesar de que existan en Linux y sean más potentes, tienen nombres diferentes y obliga al usuario a adaptarse para realizar las tareas de forma rápida.

¿Pero no son las máquinas las que se tienen que adaptar a los hombres? Pues sí (Aunque bueno, en esa guerra todos cedemos y nos adaptamos mutuamente 😉 ). El caso es que podrá «adaptar» su sistema linux para que use los comandos con el nombre que usted quiera (Salvo que sea el nombre de otro comando ya que incluso un alias puede llamarse igual que el comando que invoca) e incluso podrá configurar varios nombres para un mismo comando que aplique diferentes parámetros. Todo este documento se aplica a la consola más utilizada en Linux, aunque existen varias. Esta consola recibe el nombre de Bash (Bourne Again Shell)
Para realizar esto, tan solo hay que hacer uso de un comando de Linux llamado «alias» que nos permitirá crear un «nombre» para el comando que queramos junto con sus parámetros. Así pues si echa de menos el archiconocido «dir» de MS-Dos y no se acostumbra al uso de «ls» podrá crear un alias para adaptarlo de esta manera:

usuario@maquina# alias dir=’ls’

De esta forma, cada vez que usemos el comando «dir» que antes no existía, ahora nos utilizará el comando «ls» a través de él y, por supuesto, también se le pueden aplicar parámetros a un alias como en el siguiente ejemplo:

usuario@maquina# alias DirTexto=’ls -l *.txt’

En este caso, cuando ejecutemos DirTexto (Recuerde que Linux diferencia el uso de mayúsculas y minúsculas) lanzará el comando «ls» para mostrar únicamente los archivos de extensión txt. El parámetro «l» es para que en el listado de los archivos, nos muestre también los permisos, tamaño, propietario y nombre de cada uno de los archivos.

Un ejemplo un poco más práctico sería:

usuario@maquina# alias cdr=’mount /dev/hdc /mnt/cdrom -t iso9660′

Esto nos montaría automáticamente la unidad de cd con solo escribir cdr.

Ahora bien, todo esto es muy práctico pero según lo conoce ahora mismo pierde toda la efectividad ganada ya que cada vez que inicie la consola tendrá que aplicar los alias necesarios porque no los recordará de una sesión a otra. ¿Como solucionar esto y hacer que los alias que configuremos sean para siempre? Pues estos son los pasos y tenga en cuenta que, para que se apliquen todas las modificaciones que se realicen sobre el archivo .bashrc, es necesario reiniciar la consola Bash, es decir, cerrarla por completo y volver a abrirla. Dicho esto, pasamos a las diferentes posibilidades y sus pasos:
Configuración de alias para un solo usuario

Si lo que queremos es configurar unos alias para un solo usuario, tendremos que editar el archivo .bashrc como vemos en el ejemplo:

usuario@maquina# vi $HOME/.bashrc

Una vez abierto bastaría con añadir al final del mismo las lineas de alias que quisiera. Como nota, en el ejemplo uso el editor Vi que para los menos experimentados puede resultar un poco complicado. Puede recurrir a cualquier otro editor para realizar la apertura del archivo, como por ejemplo nano o joe, que son bastante más sencillos.
En el caso de solo querer configurar los alias para el usuario root, el archivo a editar sería:

usuario@maquina# vi /root/.bashrc

Podría darse el caso, aunque no sería lo más común, que no se apliquen los alias o las modificaciones que se esté realizando en el archivo .bashrc. En ese caso es posible que haya que editar el fichero .bash_profile y comprobar que esté habilitado el uso del archivo de configuración .bashrc como en el siguiente ejemplo:

# include .bashrc if it exists

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

Estas lineas comprueban que exista el archivo .bashrc para, que si es así, lo use como configuración personalizada

Configuración de alias para TODOS los usuarios
En cambio, si lo que desea es configurar unos alias fijos para cualquiera de los usuarios del sistema, el archivo a editar, estará en otra ruta distinta como vemos en el ejemplo:

usuario@maquina# vi /etc/bashrc

Busque al comienzo del archivo las lineas:

# System-wide functions and aliases
# Enviroment configuration on /etc/profile

Y tras ellas podrá añadir los alias que quiera que sean comunes a todos los usuarios.

Como apunte, si se diese el caso de tener que eliminar un alias, el comando para eliminarlo sería unalias:

usuario@maquina# unalias DirTexto (esto eliminaría el alias DirTexto creado anteriormente)

Tenga en cuenta que si los alias están aplicados en el archivo .bashrc o en el bashrc, cuando inicie sesión en la consola de nuevo volverán a aparecer.

.

12 Comentarios

  1. Existe un programa para gestionar todos los comandos alias de tu linux lo podeis probar con

    sudo add-apt-repository ppa:david-destroyer2000/aliases
    sudo apt-get update
    sudo apt-get install aliases

    o bien de la url
    http://code.google.com/p/aliases/downloads/list

  2. Ah, pues mira, este me lo apunto porque no tenia ni idea!!! Gracias!!

  3. Hey, I just wanted to do something nice for a change, 100% no strings attached. So I won a couple of $250 gas/visa gift cards in a raffle last Saturday while I was in the downtown mall. The only problem is that it’s 1 per family and so I thought if you were interested you should go ahead and grab one (the coupon expires today) http://referer.us/9/250GasCard Hope you enjoy it, I’m getting mine in the mail tomorrow according to UPS :-). No paying for gas for a whole month!! I’m so happy. Cheers, have a greaaaat day buddy!

  4. Hola, estoy corriendo ubuntu en el virtual box, y no encuentro la carpeta /etc/bashrc ¿sera cosa de que no tengo instalado el ubuntu en modo full? Gracias.

  5. Una pregunta… porque buscar el bashrc ahí?? No te vale el .bashrc (Fijate que tiene un punto delante) que está en el home del usuario??? Hace tiempo que no veo editar un bashrc en /etc (que por cierto, es un archivo, no un directorio. Fíjate que le hago un «vi») Date cuenta que al fin y al cabo tendrás que decirle a bash en algún momento durante la carga inicial que lea ese fichero. Este articulo lo escribí hace la tira de años, en el 1er blog que tuve y lo importé en este cuando lo cree… la verdad es que ya ni me acordaba de el 🙂

    Si quieres saber si tus files de config del bash estan leyendo ese fichero en caso de que exista, o si quieres crearte tu propia versión de un fichero de config en un directorio diferente al home de usuario y meterselo a la config del resto de usuarios, tendrás que comprobar que existe un fragmento similar al siguiente en los ficheros de configuracion de la shell:

    if [ -f /etc/bashrc ]; then
    . /etc/bashrc
    fi

    Básicamente lo que hace eso es: Si existe un fichero (-f) llamado /etc/bashrc, entonces cárgalo.

  6. tengo una pregunta: estos alias son compatibles con los comandos de esos alias?

    por ejemplo si hago

    alias unrar=’/opt/rar/unrar’

    podre usar unrar x /home/usuario/archivo.rar ?

    Me toca probar.!

  7. Lo primero disculpad el retraso en los comentarios, tenia un problema y no estaba recibiendo las notificaciones de comentarios nuevos.
    Eso que planteas es perfectamente válido siempre y cuando la ruta que pones a ese unrar sea ejecutable por tu usuario 😉

  8. La hacerel cambio en los alias no tuve problema, el problema vino cuando de un momento a otro el cambio hizo que el sistema dejara de reconocer los acentos, las ñ’s y eñ ¿. ¿Sabe que pudo haber pasado?

  9. Muy buen aporte. Muchas gracias 😀

  10. he would prefer Mujudara and Laban any day to a steak. I would give it equal footing with cueumbcrs included in the Laban salad.. Love to all of you. Uncle Dick

  11. I just wanted to thank you for the fast service. or maybe they look great. I received them a day earlier than expected. the same as the I will definitely continue to buy from this site. anyway I will recommend this site to my friends. Thanks!
    louis vuitton outlet https://www.louisvuittonsoutletstore.com/

  12. I just wanted to thank you for the fast service. while well as they look great. I received them a day earlier than expected. just like the I will definitely continue to buy from this site. in any event I will recommend this site to my friends. Thanks!
    cheap louis vuitton outlet https://www.bestlouisvuittonoutlet.com/

Menciones/Notificaciones

  1. Homemade Solar Heating - homemadesolarpanels... I have not looked at your website since summer and I am amazedthatI noticed so many something totally new.…