Rockeando con Linux: 3. /bin/bash

Ya nos estamos acostumbrando, ¿no? Nos bajamos el último Ubuntu, 13.04, y todo sale como piña. La interfaz es intuitiva, y hay programas para acomodar a todas nuestras necesidades. En su mayoría. Pero hay algo que falta, una cosa insignificante que no podés hacer busques cuanto busques. No hay manera. Es imposible. Simplemente imposible.

Acá es cuando yo te abofeteo por decir “imposible”. Estás usando Linux, ¿no? El único límite es tu paciencia. Aunque puede haber un factor limitante: la interfaz que usamos. Y es por eso que les voy a dar la bienvenida a la mejor amiga del usuario de Linux: la terminal.

Tenés un poco de miedo, ¿no? Es perfectamente entendible, pero te aseguro que la terminal es cualquier cosa menos temible. Vamos por partes: ¿qué es la terminal? En Linux, llamamos “terminal” a un programa que nos expone una linea de comandos. Básicamente, un lugar donde podemos escribir esos comandos.

Aquellos que hayan usado DOS (o cmd en Windows) estarán pensando “¿y yo para qué quiero repetir esa experiencia? ¿Manejar la computadora escribiendo comandos? ¡Es super complicado!” Cierto. Y sin embargo falso. El dominio de la terminal no es en ningún sentido vital, pero incluso solo saber lo mínimo indispensable para poder recorrer la terminal puede brindarte un sinfín de funcionalidad que ni siquiera imaginabas a tu computadora capaz de hacer. Y les aseguro que es muy, pero muy sencillo usar una terminal.

La manera más sencilla de abrir una terminal es de la misma manera que abrís cualquier programa. Ubuntu viene con la terminal de GNOME, que se ve como esta:

Terminal en Ubuntu

Lo primero que vemos es el nombre de nuestro usuario y el de la computadora, tal como los configuramos al instalarla. No requiere mucha explicación. Luego, nos encontramos un símbolo “~”. Esto es análogo a decir “tu carpeta hogar” (en mi caso, /home/seba), así que cualquier comando que corra trabajará en esta carpeta. Y luego $, que solo significa que la terminal está lista para recibir comandos, y lo llamamos “prompt” (básicamente, pedido o pregunta). Por eso, en muchos tutoriales se suele agregar el símbolo $, aunque cuando uno ve # en lugar de $, significa que tratamos con una terminal con privilegios de administrador (usuario root). ¡Cuanta información de una!

En fin, por ahora vamos a trabajar con cosas más sencillas, sin root. Por ejemplo, como les dije, la terminal siempre trabaja en una carpeta en particular. Si queremos, por ejemplo, ver los contenidos de esa carpeta, corremos el comando ls (de lista). La terminal muestra con colores y todo los contenidos, y terminado el comando, vuelve a prompt. Por ejemplo, un usuario nuevo vería algo así:

usuario@pc-ubuntu:~$ ls
Descargas  Escritorio       Imágenes  Plantillas  Vídeos
Documentos examples.desktop Música    Público
usuario@pc-ubuntu:~$

Varios de los comandos básicos están basados en inglés y son abreviaturas de 2 o 3 caracteres. Para cambiar de carpeta, por ejemplo, tenemos el comando cd, que significa change directory (cambiar directorio). Si escribo:

cd Descargas

la terminal va a cambiar a la carpeta Descargas. Suponiendo que haya tal carpeta dentro de la carpeta en la que estoy. Si en cambio, escribo:

cd ~/Descargas

la terminal va a cambiar a la carpeta Descargas que se encuentra dentro de mi directorio hogar, más allá de si estoy o no en el directorio hogar. Por eso, a la hora de hacer scripts, conviene usar direcciones absolutas (como esta) y no relativas (como la anterior).

Veamos un par de comandos básicos más:

  • cp archivo copia: copiar un archivo
  • mv archivo destino: mover o renombrar un archivo
  • rm archivo: borrar (permanentemente) un archivo (o carpeta)
  • mkdir directorio, touch archivo: crear una carpeta o archivo vacíos

Eso en cuanto a manejo de archivos, pero hay un par más que quiero destacar:

  • echo: escribe en salida estándar (normalmente, en la terminal) lo que uno le indique; puede ser un texto, una variable, etc.
  • cat archivo: concatena a la salida estandar (bah, escribe en pantalla) el contenido de un archivo (no recomiendo usarlo con binarios!)
  • man comando: uno de los comandos más útiles, muestra el manual (“página man”) del comando, si está instalado y hay un manual disponble

La gran mayoría de los comandos, como se habrán dado cuenta, toman argumentos. Es decir, uno indica con que trabajan. Pero no solo uno indica parámetros de esta manera, sino que también lo hace con “flags” (banderas). Estos indican no con qué, sino como se ejecuta el programa. Tomemos el ejemplo de ls. Normalmente, ls nos muestra los archivos y carpetas comunes (no ocultos), pero si ejecutamos:

ls -a

vemos que nos muestra todos (all) los archivos de la carpeta. Incluidas dos “carpetas” llamadas “.” y “..”, lo cual puede ser confuso. La “carpeta .” es la misma en la que estamos, y la “carpeta ..” es la carpeta padre, en la que se encuentra la carpeta actual. Si escribo cd .. paso a la carpeta superior (de /home/seba a /home). Otro ejemplo con flags es rm, que solo borra carpetas si le pedimos que haga un borrado recursivo con -r. Fíjense como, en el 99% de los casos, los flags son con un guión.

La terminal es realmente muy poderosa, pero eventualmente recae en los programas de terminal que tengamos a nuestra disposición. ¿Quieren que les recomiende un programa? ¡Pídanlo! Dejen un comentario, y un grupo de monos ninja yo voy a contestarles tan rápido como pueda.

Pero bash, es decir, la terminal, realmente brilla cuando nos metemos más en la sintaxis y creamos nuestros propios scripts. Para la próxima.

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s