Los comandos son esencialmente los mismos que cualquier sistema UNIX. En la tablas 1 y 2 se tiene la lista de comandos más frecuentes. En la tabla 3 se tiene una lista de equivalencias entre comandos básicos de Linux / Unix y comandos DOS.
Principales comandos básicos de Linux:
Comandos básicos de Linux / Unix de manipulación de archivos y directorios
Comandos Linux/Unix más frecuentes
Complemento: Comandos en background
Linux, como cualquier sistema Unix, puede ejecutar varias tareas al mismo tiempo. En sistemas monoprocesador se asigna un determinado tiempo a cada tarea de manera que al usuario le parece que se ejecutan al mismo tiempo.
Para ejecutar un programa en background, basta con poner el signo ampersand (&) al término de la línea de comandos. Por ejemplo, si se quisiera copiar el directorio /usr/src/linux al directorio /tmp:
#cp -r /usr/src/linux /tmp &
Cuando ha terminado la ejecución del programa, el sistema lo reporta mediante un mensaje:
#
[Done] cp -r /usr/src/linux /tmp
#
Si se hubiese ejecutado el programa y no se hubiese puesto el ampersand, se podría pasarlo a background de la siguiente manera:
- Se suspende la ejecución del programa, pulsando Ctrl + Z
- Se ejecutamos la siguiente orden: bg
Intérprete de comandos: Shell
El intérprete de comandos es el programa que recibe lo que se escribe en la terminal y lo convierte en instrucciones para el sistema operativo.
En otras palabras, el objetivo de cualquier intérprete de comandos es ejecutar los programas que el usuario teclea en el prompt del mismo. El prompt es una indicación que muestra el intérprete para anunciar que espera una orden del usuario. Cuando el usuario escribe una orden, el intérprete ejecuta dicha orden.
En dicha orden, puede haber programas internos o externos: Los programas internos son aquellos que vienen incorporados en el propio intérprete, mientras que los externos son programas separados (ej: aplicaciones de /bin,/usr/bin,…).
En el mundo Linux/Unix existen tres grandes familias de Shells como se muestra en la tabla a continuación. Estas se diferencian entre sí básicamente en la sintaxis de sus comandos y en la interacción con el usuario.
Sintaxis de los comandos
Los comandos tienen la siguiente sintaxis:
# programa arg1 arg2 ... argn
Se observa que, en la “línea de comandos” se introduce el programa seguido de uno o varios argumentos. Así, el intérprete ejecutará el programa con las opciones que se hayan escrito.
Cuando se quiere que el comando sea de varias líneas, se separa cada línea con el carácter barra invertida (). Además, cuando se quiere ejecutar varios comandos en la misma línea, los separa con punto y coma (;). Por ejemplo:
# make modules ; make modules_install
En los comandos, también se puede utilizar los comodines:
- El asterisco () es equivalente a uno o más caracteres en el nombre de un archivo. Ejm: ls *.c lista todos los archivos con extensión c.
- El signo de interrogación (?) es equivalente a un único carácter. Ejm: ls curso.te? lista el archivo curso.tex completando el último carácter.
- Un conjunto de caracteres entre corchetes es equivalente a cualquier carácter del conjunto. Ejemplo: ls curso_linux.t[aeiou]x lista curso_linux.tex, seleccionando la e del conjunto.
Variables de entorno
Una variable de entorno es un nombre asociado a una cadena de caracteres.
Dependiendo de la variable, su utilidad puede ser distinta. Algunas son útiles para no tener que escribir muchas opciones al ejecutar un programa, otras las utiliza el propio shell (PATH, PS1,…). La tabla muestra la lista de variables más usuales.
La forma de definir una variable de entorno cambia con el intérprete de comandos básicos de Linux. Así, se muestra tcsh y bash, siendo los dos más populares en el ámbito Linux:
bash:
export VARIABLE=Valor
tcsh:
setenv VARIABLE Valor
Por ejemplo, para definir el valor de la variable DISPLAY:
bash:
export DISPLAY=localhost:0.0
tcsh:
setenv DISPLAY localhost:0.0
Alias
Un “alias” es un nombre alternativo para un comando. Así, en lugar de escribir el comando propiamente dicho, escribiríamos el alias de dicho comando.
Un alias se puede definir por varios motivos, por ejemplo:
- Dar nombres familiares a comandos comunes: alias md=’mkdir’ Crearía un alias para el comando mkdir, similar al de DOS
- Dar nombres a comandos largos: alias tbz2=’tar -cv –use-compress-program=bzip2 -f’ Crearía un alias para el comando tar para que use el compresor bzip2 en lugar de gzip.
Para no tener que escribir todos los alias siempre que entremos al sistema, escribiríamos dicho alias en el archivo /.bash_profile
Redireccionamiento de E/S
La filosofía de Linux/Unix es en extremo modular. Se prefieren las herramientas pequeñas con tareas puntuales a las meta- herramientas que realizan todo. Para hacer el modelo completo es necesario proveer el medio para ensamblar estas herramientas en estructuras mas complejas. Esto se realiza por medio del redireccionamiento de las entradas y las salidas.
Redirección de entrada y salidas: fig_redirect width=5cmimages/standard_io.eps
Todos los programas tiene por por defecto una entrada estándar (teclado) y dos salidas: la salida estándar (pantalla) y la salida de error (pantalla). En ellos se puede sustituir la entrada y salidas estándar por otro dispositivo utilizando los caracteres ''y
”, es decir, hacer que se lea un archivo que contenga las opciones a ejecutar y un archivo de salida, respectivamente. Por ejemplo:
Entrada:
Se desea realizar una transferencia de archivos por ftp automática. Para ello se va a utilizar el programa ncftp con unas determinadas instrucciones preestablecidas.
Se crea un archivo entrada con dichas instrucciones:
open linuxcol.uniandes.edu.co
cd /pub/linux/utils
get *
quit
Y se ejecuta el programa: ncftp < entrada.
Salida:
Se quiere saber los archivos que empiezan por i o I y almacenarlo en un archivo:
ls [iI]* > listado.txt
Es importante resaltar que el carácter de redirección de salida ''destruirá el archivo al cual apunta, si este existe, para ser reemplazado por uno nuevo con los resultados del proceso. Si se desea anexar la información a uno ya existente debe usarse doble carácter
”:
Tuberías o pipes
La filosofía de Linux/Unix es en extremo modular. Se prefieren las herramientas pequeñas con tareas puntuales a las meta-herramientas que realizan todo. Para hacer el modelo completo es necesario proveer el medio para ensamblar estas herramientas en estructuras mas complejas. Esto se realiza por medio del redireccionamiento de las entradas y las salidas.
Redirección de entrada y salidas: fig_redirect width=5cmimages/standard_io.eps
Todos los programas tiene por por defecto una entrada estándar (teclado) y dos salidas: la salida estándar (pantalla) y la salida de error (pantalla). En ellos se puede sustituir la entrada y salidas estándar por otro dispositivo utilizando los caracteres ''y
”. Es decir, hacer que se lea un archivo que contenga las opciones a ejecutar y un archivo de salida, respectivamente. Por ejemplo:
Para conocer más sobre comandos de Linux, puede dirigirse al enlace anterior enlace. Por otro lado, si deseas conocer más afondo sobre este interesante tema del software libre. Diríjase al siguiente tutorial de hostgator.