Mostrando entradas con la etiqueta alias. Mostrar todas las entradas
Mostrando entradas con la etiqueta alias. Mostrar todas las entradas

sábado, 9 de noviembre de 2013

Más comandos para operar con archivos y directorios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Ya hemos hablado de como trabajar con archivos y directorios pero no es posible condensar todo el material que bajo ese título podría caber sin convertir la entrada en interminable. De tal modo, nuevamente vamos a vernos las caras con mandatos de terminal que nos ofrecen distintas prestaciones según la tarea que estemos realizando.

alias
Este comando ya fue tratado en el blog para un ejemplo concreto, pero no quiero que se quede fuera del tratamiento general que es la tónica del blog. Sirve para crear un atajo a un comando fijándole un nombre.
alias -a: elimina las definiciones de alias en el entorno de ejecución actual.
alias -p: muestra la lista de alias existente en el archivo .bashrc con el formato nombre_alias=valor.
alias instalar="sudo apt-get install":  crea un atajo para el comando sudo apt-get install llamado instalar.
alias lhost="cd /var/www/html": crea un atajo de acceso al directorio /var/www/html/ llamado lhost.
/comando_alias: tecleado de esta manera, en caso de invocar un alias cuyo nombre coincida con el de otro comando, no se tiene en cuenta dicho alias.
~/.bashrc: archivo oculto donde se incluyen los alias que deseamos que se vuelvan permanentes. 
unalias
Sirve para eliminar un alias existente.

ln
Comando para crear enlaces a archivos. Hay enlaces dos tipos de enlaces: duros y simbólicos. El enlace duro es un duplicado del archivo al que enlaza pero con otro nombre. Comparte inodo (estructura de datos que conserva cada archivo) con el original por lo que no pueden crearse en particiones o unidades distintas. El enlace simbólico funciona como un acceso directo de Windows, tenga o no el mismo nombre. Pueden crearse al margen de la unidad o partición donde se encuentren.
ln archivo1 archivo2: crea el enlace duro archivo2 a partir de archivo1.
ln -s archivo1 archivo2: crea el enlace simbólico archivo2 a partir de archivo1.
stat
Comando que muestra una serie de datos precisos acerca de un archivo o un directorio como nombre, tamaño, bloques que ocupa, tipo de archivo, inodo, enlaces, ID, GUID, propietario, grupos y fechas de acceso y modificación.

file
Comando simple que nos informa de si un objeto es un directorio o un archivo, y de qué tipo si es lo segundo.

cmp
Compara dos archivos y nos dice si son o no distintos. Nos informa en qué número de línea está la diferencia.

diff
Compara dos archivos línea a línea y nos dice las diferencias, algo que resulta más útil cuando se trata de archivos de texto.

wc
Cuenta las líneas, palabras y caracteres de un archivo.
wc -c: muestra solo el número de caracteres.
wc -w: muestra solo el número de palabras.
wc -l: muestra solo el número de líneas.
alien
Este comando no siempre viene por defecto en nuestra distribución por lo que, en tal caso, hay que instalarlo si lo queremos usar. Sirve para convertir paquetes de software de, entre otros, formato .deb (Debian), .rpm (Red Hat) y .tar.gz (Slackware).
alien -d archivo.rpm/tar.gz: para generar un paquete .deb a partir de un .rpm o un .tar.gz. (opción por defecto).
alien -t archivo.deb/rpm: para generar un paquete .tar.gz a partir de un .deb o un .rpm.
alien -r archivo.deb/tar.gz: para generar un paquete .rpm a partir de un .deb o un .tar.gz.
Nuevamente les recuerdo que solo una pequeña muestra de las opciones existentes son las mostradas aquí. Acudan a la ayuda del terminal para recabar más información.

Y como hemos hablado del comando alien, nada más apropiado que evocar el trailer original de 1979 de la mítica película de Ridley Scott.


martes, 11 de junio de 2013

Ejemplo de uso de alias para simplificar comandos

Lamento tener algo abandonado el blog pero últimamente tengo poco tiempo libre. Hoy vamos con una entrada breve y sencilla para fabricar un comando con el que cerrar la sesión y apagar el ordenador de una sola vez. En esta entrada hablamos de los comandos existentes para realizar esta operación y algunas de sus opciones. La secuencia para cerrar el sistema y dejarlo todo apagado sin sobresaltos sería esta:

sudo shutdown -h 0

        o bien

sudo shutdown -h now

A continuación habría que teclear la contraseña. Bien, un día tras otro esto acaba siendo un trámite un tanto cargante así que vamos a aligerarlo. Vamos a editar el archivo oculto .bashrc ubicado en nuestro home con el editor de textos nano. Si no están logados como root antepongan sudo o no podrán guardar los cambios:

sudo nano .bashrc

Perfecto. Una vez abierto busquemos la siguiente línea.

# some more aliases

Esto último no por nada especial, es simplemente que vamos a usar el comando alias y por una cuestión de orden vamos a procurar que todas las líneas en que lo utilicemos estén cerca unas de otras. En fin, procurando no interrumpir ningún bloque de código escribimos lo siguiente:

# alias para shutdown
alias fuera='sudo shutdown -h 0'

La primera línea, al estar antecedida por el carácter almohadilla, es descriptiva y no tiene funcionalidad, es solo un comentario acerca de lo que viene a continuación. La segunda línea ya sí es es operativa e implica el establecimiento de un atajo para shutdown -h 0 a través del comando alias, atajo al que vamos a llamar fuera (aunque podría ser fin o adios). Esto es, cuando acabemos solo hará falta teclear fuera, y a continuación la clave de usuario que corresponda si procede, para cerrar nuestro PC. Con el comando source recargamos el archivo .bashrc (o reiniciamos, lo que prefieran):

source ~/.bashrc

Y asunto concluido. Este es un ejemplo simple pero pueden crearse el alias de cualquier secuencia de comandos y así ahorrar tiempo y desgaste de huellas dactilares.

viernes, 31 de mayo de 2013

Problema con el comando modprobe en Debian Wheezy: solucionado

Hoy estaba teniendo problemas para instalar un programa de CAD porque me faltaban dependencias. Una cosa llevó a la otra, hasta que intenté listar los módulos cargados en el sistema con el comando modprobe y la opción -l. Para mi sorpresa este fue el resultado:

paco@paco-pc:~modprobe -l
modprobe: invalid option -- 'l'
paco@paco-pc:~$

¿Qué demonios pasa? Dice que la opción -l no es válida, cuando nunca tuve problema para utilizarla en Ubuntu o en Debian Squeeze. Pues bien, en Debian Wheezy ya no sirve, así que hay que listar los módulos de otra manera. Buscando con la red encontré este foro donde ofrecen una solución, pero que yo he llevado algo más allá. Se trata del comando awk, que yo desconocía. La línea que hay que escribir en el terminal de comandos para listar los módulos es esta:


paco@paco-pc:~$ awk -F: '{print $1}' /lib/modules/`uname -r`/modules.dep

El listado se producirá ipso facto.

Pero tener que teclear esto cada vez que queramos listar los módulos cargados es un pestiño, así que podemos crearnos una forma de listarlos ad hoc usando el comando alias. Este comando lo que hace es crear atajos a partir de combinaciones o sucesiones de otros comandos. Estos atajos pueden ser temporales o permanentes, que es lo que ahora nos interesa. Para ello hay que editar el archivo .bashrc, presente en nuestra carpeta /home/usuario/ (que en mi caso es /home/paco/) con un editor como nano, emacs o gedit.


Una vez abierto escribimos las siguientes dos líneas en cualquier punto siempre que no interrumpamos ninguna secuencia de códigos:


#Alias modprobe -l
alias modprobel="awk -F: '{print $1}' /lib/modules/`uname -r`/modules.dep"

Con esto, estaremos asignando un alias para la línea de comando del comando awk que nos permite listar los módulos cargados, y ese alias lo he llamado modprobel pero puede tener el nombre que cada uno quiera. La línea que precede a la definición del alias no es más que un comentario descriptivo de lo que va a continuación, por lo que lleva delante el símbolo almohadilla. También puede uno escribir ahí lo que quiera pero es conveniente que describa qué es lo que hace o a qué comando sustituye.


Guardamos los cambios en el archivo .bashrc y lo recargamos utilizando en comando source:


paco@paco-pc:~$ source .bashrc
paco@paco-pc:~$

Y ya podemos utilizar el alias modprobel para listar los módulos cargados de nuestro sistema como si fuera un comando más.


Ya que hemos hablado de módulos no puedo dejar de lado a un grupo de rock progresivo español de los años 70 llamado así, Los Módulos, y que tuvieron su canción más popular en este "Todo tiene su fin".