miércoles, 14 de abril de 2010

Creación y Uso de Alias en Linux

Un alias es una cadena que sustituye un texto por otro, cuando es usada como la primera palabra de un comando simple.

En este articulo se vera como configurar o desconfigurar alias permanente o temporal. También se vera algunos ejemplos útiles sobre alias en bash los cuales podrías usarlos al inicio de tus programas bash.

Si deseas puedes revisar los artículos anteriores sobre Ejemplos de Código Bash y El Estado de Salida de un Comando Bash.

Como Configurar un Alias

Un alias puede ser definido en la linea de comandos, en .bash_profile o en .bashrc usando la siguiente sintaxis:


$ alias nombre='aquí escribes el comando completo y con opciones'

nombre - Es el nombre que deseas ponerle al alias

Esto quiere decir que "nombre" es un alias para dicho comando. Cada vez que "nombre" es escrito como un comando, bash reemplazará el comando correspondiente junto con las opciones especificadas en su lugar.

Nota: No hay espacios en blanco entre el signo igual (=). Las comillas son necesarias si la cadena que se usara tiene mas de una palabra.

Ejecutando este comando en la linea de comandos se creara un alias temporal. Eso quiere decir que el alias existirá hasta que salgas del terminal. Si guardas el alias en el archivo de inicio del bash (~/.bashrc) entonces el alias sera permanente.

Los siguientes alias podrían ser útiles. Puedes configurarlos en el archivo ~/.bashrc.

Ejemplos mas Comunes de Alias

Abrir el ultimo archivo modificado en Vim:


alias Vim="vim `ls -t | head -1`"

Buscar los 5 archivos mas grandes:


alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"

Ubicar los procesos bash:


alias psg="ps -aux ¦ grep bash"

Listar incluyendo archivos ocultos con indicadores y colores:


alias ls='ls -aF --color=always'

Lista en formato largo:


alias ll='ls -l'

Limpiar todo el historial y la pantalla:


alias hcl='history -c; clear'

Limpiar la pantalla y lista:


alias cls='clear;ls'

Uso de espacio en el sistema de archivos:


alias dus='df -h'

Navegar a diferentes directorios:


alias ..='cd ..'
alias ...='cd ../..'

Ejemplos de Alias que Modificarían tu Entorno

Remover el bloqueo de firefox:


alias rm_fire_lock='/bin/rm .mozilla/firefox/NAME.default/.parentlock' # edit NAME

Logearse a una maquina remota a traves de SSH:


alias server_name='ssh 192.168.1.1 -l tom' # cambia el IP y el nombre de usuario
alias ser2='ssh www.dbserver.com -l kgf' # crea cuantas alias necesites

Logearse a un servidor csv:


export CVS_RSH=/usr/local/bin/ssh
alias cvl='cvs -d :ext:usuario@cvs.servidor.com:/usr/local/cvsroot'

Desmontar un cdrom


alias umnt='umount /mnt/cdrom'

Como Ver todos los Alias

Ejecuta el comando alias sin ningún argumento para ver la lista de los alias en un shell:


$ alias
alias ..='cd ..'
alias ...='cd ../..'
alias mnt='mount /mnt/cdrom'
alias umnt='umount /mnt/cdrom'
alias dus='df -h'

Para ver un alias en particular ingresa el comando con el formato "alias nombre" así como se muestra abajo:


$ alias dus
alias dus='df -h'

Detener Temporalmente el Uso de Alias

Cuando quieres llamar al comando en vez de a un alias, debes usar (/):


$ \nombredelalias

Por ejemplo, si has creado un alias que se llame cp y ahora deseas usar el comando cp en vez del alias, deberías hacer lo siguiente:


\cp * /backup/archivos/

Como Remover un Alias

Para esto usas el comando unalias, por ejemplo:


$ unalias hcl

$ hcl
-bash: hcl: comando no encontrado

Como Remover todos los Alias


$ unalias -a
$ alias

Nota: Las funciones shell son más rápidas por que un alias primero tienes que buscar el comando y luego resolverlo. Mientras que un alias es mas fácil de entender, los comandos shell son mas usados para casi todo propósito. Debes de tener cuidado al reemplazar un comando regular con un alias.

1 comentario:

Obispo Berkeley dijo...

Hola, buen post.
Acerca de "Navegar a diferentes directorios". Si uno trabaja con gitbash en Windows y queremos hacer un alias para una carpeta con nombre compuesto de más de una palabra, como "Archivos de Programa", lo haría así:

alias xxx="cd /c/Archivos de programa/EasyPHP/data/localweb"

Pero no funciona. Parece haber un problema con los espacios dentro del nombre de carpeta "Archivos de Programa", porque al ejecutar xxx, en este caso se ejecuta el comando hasta donde hay un espacio, o sea: cd Archivos.

¿Cómo arreglar esto?