Uno de los aspectos que más dificultad presenta a un usuario novel en Linux es la consola, también conocida como intérprete de comandos o shell. En esta entrega veremos qué es, cómo utilizarla y qué utilidad tiene. Con la práctica podrás sentirte cómodo con ella :D
Realmente la consola es herencia de la informática de los 60-70. Podéis imaginar que por aquellas fechas las pantallas en color, fotos, videos, juegos en 3D, pantallas táctiles, internet, etc. eran solo imaginaciones de unos cuantos locos o guionistas de cine. No existía ni el ratón!!
Solo se contaba con un teclado y una pantalla de texto con unas cuantas líneas de texto con un solo tipo de letra. ¿Cómo se podía pedir a un PC que cargase un editor de textos?¿Cómo iniciar sesión o apagar el sistema? No había botones en la pantalla! La solución es, claro está, un intérprete de comandos y los comandos. Así nace UNIX, la familia de Linux. ¿Quieres sentirte en los 70? Si tienes Linux presiona al mismo tiempo CONTROL+ALT+F1 y verás UNIX al desnudo. Con CONTROL+ALT+F7 volverás al escritorio.
Hoy en día lo usual es abrir una ventana en el escritorio que simula una consola de comandos. Si usas (K)Ubuntu puedes usar xterm, gnome-terminal o konsole. Pruébalo, simplemente presiona ALT+F2 y tendrás una línea para buscar aplicaciones, escribe alguno de los anteriores y dale a ENTER. En mi caso, uso Kubuntu y tengo algo así:
Fíjate en lo que aparece. Texto sobre fondo, con un mensaje que, en mi caso dice:
zalo@PC-Zalo:~$
¿ Es una dirección de email lo marcado en negrita?
Parece, pero no. En realidad es, al igual que una dirección de email, la identificación de un usuario en una máquina. Esto es zalo (yo) en la máquina de zalo (PC-Zalo). Cambiará según tu nombre de usuario y el nombre configurado del PC.
¿Qué más?
Aparece «:~$«. El símbolo «:» separa el usuario@máquina de la ruta de trabajo. Vamos, que lo que aparece luego es la carpeta en la que te encuentras en este momento.
¿Pero que directorio es «~»?
es un sinónimo del directorio personal. Por último el símbolo «$» representa la disponibilidad del intérprete a recibir comandos, así como marcar el fin del directorio de trabajo y el inicio de los comandos. Todo esto puede cambiar, y de hecho cambia, según la distribución que uses (Ubuntu, SuSE, Gentoo, Red Hat,..), además es personalizable.
Ahora ¿qué hacemos con el shell? Pues vamos a probar comandos, Para empezar, ls muestra el directorio que se pida. Escribe ls (en minúsculas) y presiona ENTER:
zalo@PC-Zalo:~$ls
Descargas Documentos Escritorio Hardmaniacos Imágenes Imaxes Modelos Música Programacion Público Vídeos
Casi todos los comandos se diseñan con modificadores opcionales. Así, con un mismo comando puedes hacer más cosas o filtrar las acciones.
Por ejemplo, en ls tenemos:
- «-l» para mostrar detalles,
- si añadimos «-h» muestra tamaños de fichero en KB, MB y GB en vez de bytes, muy útil.
- Otra opción importante, «-a» muestra ficheros ocultos también, os muestro una captura:
¿Qué son las dos primeras entradas?
Son «.» y «..«, y no son un error, son la forma de cambiar de directorio hacia atrás. la entrada «.» simboliza la carpeta actual, el símbolo «..» referencia al directorio al que esta carpeta pertenece. Por ejemplo, si estás en ~/Música/Coldplay, entonces «.» simboliza «~/Música/Coldplay» y «..» simboliza «~/Música». Todo directorio tiene esas entradas, aunque no suele mostrarse. Además, todos los ficheros que tienen en el nombre el simbolo «.» como primer carácter se ocultan por defecto, a no ser que fuerces a mostrarlos con «-a» o similares.
¿Quieres ocultar un fichero en un sitio muy visible?
Ponle un punto al inicio del nombre y no se verá a simple vista.
Ahora bien, ¿qué opciones tiene un comando dado? Pues casi todos los comandos tienen una opción para saberlo, y suele ser «–help«. Como ejemplo:
casa@PC-Casa:~$ ls --help
Modo de empleo: ls [OPCIÓN]... [FICHERO]...
Muestra información acerca de los ARCHIVOS (del directorio actual por defecto).
Ordena las entradas alfabéticamente si no se especifica ninguna de las opciones -cftuSUX ni --sort.
.
Los argumentos obligatorios para las opciones largas son también obligatorios
para las opciones cortas.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
...
...
En otro capítulo veremos un comando dedicado a los manuales de los comandos, que explican al detalle y con ejemplos de uso cada comando instalado en el sistema.
Para terminar, solo quiero dejar un par de detalles más. El primero es el uso de la tecla TAB (en la izquierda), que nos completa el nombre de un comando o, si existen ambigüedades nos da todas las opciones. Por ejemplo, si escribes «ls» en la consola y presionas TAB una vez no hará nada, pues ese comando ya es completo, no completará, pero si presionas de nuevo TAB te mostrará todos los comandos que empiezan por «ls«. El otro detalle es que en la consola no existen atajos de teclado (si no sabes lo que es un atajo de teclado te lo mostraré en otro capitulo) típicos, sino que están usados para funciones especiales que veremos en el futuro. Esto es, CTRL+C,CTRL+V, etc. hacen funciones específicas del SO. En su lugar se usa CTRL+SHFT+C, CTRL+SHFT+V, etc. Las funciones para selecionar texto con el teclado tampoco funcionan del modo habitual, es necesario usar el ratón para hacer selecciones.
Aquí lo dejamos por hoy, aunque pronto tendré otra introducción, esta vez con algunos de los comandos más usados del entorno de consola. Hasta pronto!