Mandrake Linux 8.2: Manual de Referencia | ||
---|---|---|
Anterior | Capítulo 1. Conceptos básicos de un Sistema UNIX | Siguiente |
La línea de comandos es la manera más directa de enviar comandos a su máquina. Si usa la línea de comandos de GNU/Linux, rápidamente verá que es mucho más potente y tiene más capacidades que los prompts que puede haber usado con anterioridad. La razón de esto es que tiene un acceso directo, no sólo a todas las aplicaciones X, sino también a los miles de utilitarios en modo consola (en oposición al modo gráfico) que no tienen su equivalente gráfico, o que no es fácil representar con menús y botones todas las opciones y combinaciones posibles.
Pero, admitámoslo, hace falta un poquito de ayuda para poder empezar. Para eso es este capítulo. La primera cosa a hacer, si está en el modo gráfico, es iniciar un emulador de terminal. En el panel tiene un icono que identifica claramente a la terminal (Figura 1-3).
Lo que obtiene en realidad al iniciar este emulador de terminal es un shell. Este es el nombre del programa con el cual Ud. interactúa. Ud. se encontrará frente al prompt:
[pingusa@localhost] ~ $ |
Esto supone que su nombre de usuario es pingusa y que el nombre de su máquina es localhost (este es el caso si su máquina no es parte de una red existente). Todo lo que aparece después del prompt es lo que tiene que teclear. Note que cuando Ud. es root el signo $ del prompt cambia por un signo #. (esto sólo es válido con la configuración predeterminada, ya que puede personalizar todos estos detalles en GNU/Linux). El comando para "volverse" root cuando inició un shell como usuario no privilegiado es su:
# Ingrese la contraseña de root; la misma no aparecerá en la pantalla [pingusa@localhost] ~ $ su Password: # exit lo llevará de vuelta a su cuenta de usuario no privilegiado [root@localhost] exit [pingusa@localhost] ~ $ |
En el libro, en general el prompt será representado simbólicamente con un signo $, sea Ud. un usuario no privilegiado o root. Cuando tenga que ser root para ejecutar un comando se la avisará, así que no se olvide del comando su que mostramos antes. Un signo # al comienzo de una línea de código representará un comentario.
Cuando Ud. lanza el shell por primera vez normalmente se encontrará en su directorio personal. Para mostrar el directorio en donde se encuentra en este momento, ingrese el comando pwd (que significa Print Working Directory, Imprimir el directorio de trabajo):
$ pwd /home/pingusa |
Hay unos comandos básicos que veremos ahora, y pronto se dará cuenta de que le serán indispensables.
El comando cd es exactamente el mismo que en DOS, con alguna funcionalidad extra. Hace justo lo que su acrónimo indica, cambiar el directorio de trabajo. Puede usar . para referirse al directorio corriente y .. para referirse al directorio padre del directorio corriente. Si ingresa cd sólo, será llevado de vuelta a su directorio personal. Si ingresa cd - será llevado al último directorio en el cual estuvo. Y, finalmente, puede especificar el directorio personal del usuario tuxor ingresando cd ~tuxor (~ sólo o seguido de / significa el directorio personal suyo). Note que, como usuario no privilegiado, normalmente no puede ingresar a los directorios personales de otros usuarios (a menos que esos usuarios lo hayan autorizado explícitamente o esa sea la configuración predeterminada del sistema), excepto si Ud. es root, así que, seamos root y practiquemos:
$ pwd /root $ cd /usr/share/doc/HOWTO $ pwd /usr/share/doc/HOWTO $ cd ../FAQ $ pwd /usr/share/doc/FAQ $ cd ../../lib $ pwd /usr/lib $ cd ~tuxor $ pwd /home/tuxor $ cd $ pwd /root |
Ahora, vuelva a ser un usuario no privilegiado.
Los procesos tienen sus variables de entorno y el shell le permite verlas directamente con el comando echo. Algunas variables interesantes son:
HOME: esta variable de entorno contiene una cadena de caracteres que representa su directorio personal.
PATH: esta variable contiene la lista de todos los directorios en los cuales el shell busca los ejecutables cuando Ud. ingresa un comando. Note que predeterminadamente, a diferencia de DOS, el shell ¡no buscará los comandos en el directorio corriente!
USERNAME: esta variable contiene una cadena que representa su nombre de conexión.
UID Contiene su identificador de usuario (UID)
PS1: contiene la definición de su prompt. Generalmente, es una combinación de secuencias especiales. Puede leer la página Man de bash(1) para más información.
Para hacer que el shell muestre el valor de una variable, debe anteponer al nombre de la misma un $. Aquí, el comando echo lo ayudará:
$ echo Hola Hola $ echo $HOME /home/pingusa $ echo $USERNAME pingusa $ echo Hola $USERNAME Hola pingusa $ cd /usr $ pwd /usr $ cd $HOME $ pwd /home/pingusa |
Como puede ver, el shell substituye el valor de la variable antes de ejecutar el comando. De no ser así nuestro cd $HOME no hubiese funcionado. De hecho, el shell primero ha reemplazado $HOME por su valor, /home/pingusa, por lo que la línea se convirtió en cd /home/pingusa, que es lo que queríamos. Lo mismo vale para echo $USERNAME y así sucesivamente.
No hay mucho más que decir, este comando simplemente hace eso: mostrar el contenido de uno o más archivos en la salida estándar, normalmente la pantalla:
$ cat /etc/fstab /dev/hda5 / ext2 defaults 1 1 /dev/hda6 /home ext2 defaults 1 2 /dev/hda7 swap swap defaults 0 0 /dev/hda8 /usr ext2 defaults 1 2 /dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0 none /proc proc defaults 0 0 none /dev/pts devpts mode=0620 0 0 /dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0 $ cd /etc $ cat conf.modules shells alias parport_lowlevel parport_pc pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq #pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start #alias car-major-14 sound alias sound esssolo1 keep /bin/zsh /bin/bash /bin/sh /bin/tcsh /bin/csh /bin/ash /bin/bsh /usr/bin/zsh |
Su nombre es un juego de palabras relacionado al primer paginador existente bajo UNIX, que se denominaba more[1]. Un paginador es un programa que permite al usuario ver archivos largos página por página (o, más precisamente, pantalla por pantalla). Hablamos más de less que de more porque su uso es mucho más intuitivo. Utilice el comando less para ver archivos grandes, que no entran en una pantalla. Por ejemplo:
less /etc/termcap |
Para navegar por el archivo, use las teclas de las flechas para arriba y para abajo. Utilice q (por quit, salir) para salir del programa. En realidad, less puede hacer mucho más que eso. De hecho, simplemente presione h para la ayuda (en inglés) y eche un vistazo. Pero de todas formas, el objetivo de esta sección es que Ud. sea capaz de leer archivos largos, y dicho objetivo ya está cumplido :-)
El comando ls (LiSt, LiStar) es equivalente a dir de DOS, pero puede hacer mucho más. De hecho, esto se debe en gran parte al hecho de que los archivos también pueden hacer más. La sintaxis del comando ls es la siguiente:
ls [opciones] [archivo|directorio] [archivo|directorio...] |
Si no se especifica archivo o directorio alguno en la línea de comandos, ls imprimirá la lista de los archivos del directorio corriente. Sus opciones son muchas y sólo citaremos unas pocas:
-a: lista todos los archivos, incluyendo los archivos ocultos (en UNIX los archivos ocultos son aquellos cuyo nombre comienza con un "."); la opción -A lista "casi" todos los archivos, lo que significa que se mostrarán todos los archivos que mostraría la opción -a excepto "." y "..";
-R: lista recursivamente, es decir, todos los archivos y subdirectorios del directorio que se menciona en la línea de comandos;
-s: muestra el tamaño en kilobytes junto a cada archivo;
-l: muestra información adicional sobre los archivos;
-i: muestra el número de i-nodo (el número único del archivo en el sistema de archivos, vea el capítulo El sistema de archivos de Linux) junto a cada archivo;
-d: trata a los directorios de la línea de comandos como si fueran archivos normales en vez de listar su contenido.
Algunos ejemplos:
ls -R: lista recursivamente el contenido del directorio corriente;
ls -is images/ ..: lista los archivos en el directorio images/ y en el directorio padre del corriente, e imprime, para cada archivo, su número de i-nodo y su tamaño en kilobytes.
ls -al images/*.png lista todos los archivos (incluso los archivos ocultos) del directorio images/ cuyo nombre termina con .png. Note que esto también incluye al archivo .png si es que existe uno.
Esta sección presentará algunas de las muchas secuencias de tecleo que están disponibles y le harán ganar tiempo. Se asume que está utilizando el shell predeterminado provisto con Mandrake Linux, bash, pero estas secuencias de tecleo también deberían funcionar con otros shells.
Primero: las teclas de las flechas. bash mantiene un historial de los comandos que ingresó previamente, el cual puede verse con las teclas de las flechas para arriba y para abajo. Ud. puede remontarse hasta un número de líneas definido en la variable de entorno HISTSIZE. Es más, el histórico es persistente de una sesión a otra, por lo que no va a perder los comandos que ingresó en una sesión previa.
Las teclas de las flechas izquierda y derecha mueven el cursor hacia la izquierda y hacia la derecha en la línea corriente, por lo que puede editar sus comandos de esta forma. Pero hay más en materia de edición: Ctrl+a y Ctrl+e, por ejemplo, lo llevarán al comienzo y al final, respectivamente, de la línea corriente. Las teclas Backspace[2] y Supr funcionan como se espera. Un equivalente de Backspace es Ctrl+h y un equivalente de Supr es Ctrl+d. Ctrl+k borrará toda la línea desde la posición del cursor hasta el final de la misma, y Ctrl+w borrará la palabra delante del cursor.
Ingresar Ctrl+d en una línea en blanco le hará cerrar la sesión corriente, lo cual es mucho más corto que tener que ingresar exit. Ctrl+c interrumpirá el comando en curso de ejecución, excepto si se encuentra en el proceso de edición, en cuyo caso interrumpirá la edición y lo devolverá al prompt. Ctrl+l borra la pantalla.
Finalmente, están Ctrl+s y Ctrl+q: estas secuencias de teclas sirven, respectivamente, para suspender y reanudar el flujo de caracteres sobre una terminal. No son muy usadas, pero sin embargo, puede ocurrir que ingrese Ctrl+s por error (después de todo, s y d están muy cerca una de la otra en el teclado...). Entonces, si presiona las teclas pero no ve aparecer carácter alguno en la terminal, primero intente Ctrl+q y preste atención: aparecerán en la pantalla todos los caracteres juntos que ingresó entre el Ctrl+s no deseado y Ctrl+q.
[1] | "less" significa "menos", y "more" significa "más" |
[2] | Backspace es la última tecla de la fila que contiene las teclas de los números. |