Siempre demasiado cerca...

Nociones básicas antes de ejecutar los programas

Bueno, aquí llegamos a la temida línea de comandos, que en realidad no es tan mala ni difícil de manejar si entiendes un poco que estás haciendo. En realidad, cuando estamos delante de un computador nos pasamos casi todo el día clickeando aquí y allá, o sea, presionando botones en interfaces gráficas. Cada vez que hacemos eso estamos lanzando código, instrucciones que no vemos pero que son recibidas por los programas y ejecutadas. Aquí, en vez de hacer un click, lo que haremos será escribir lo que queremos que pase, simple!.

La estructura de directorios en GNU/Linux

Para aquellos que han decidido aventurarse en el mundo GNU/Linux, bien directa o por virtualización, indico a continuación algunas cuestiones para que puedan situarse rápidamente.

Unas de las ventajas de este software libre es que puedes encontrar en la web toda la información que necesites, lo recomendable para buscar puede ser escribir el nombre de la distribución que se esté usando (Debian, UBUNTU, OpenSUSE, etc.) y el problema sobre el que se tiene dudas: instalaciones, configuraciones, uso de programas, todo esta disponible abiertamente y bien explicado por los usuarios. En nuestro caso somos usuarios de UBUNTU XX.04 LTS, que son las versiones con soporte a largo plazo.

Si entras en el sistema por primera vez y abres el equivalente al explorador de carpetas (en GNOME se llama Nautilus), veras que la estructura parece similar a la de Windows. En GNU/Linux todo se configura mediante archivos y estos están situados en carpetas estratégicas las cuales puedes encontrar si presionas en Other Locations en la imagen de la izquierda. Es la parte más específica.

Sin embargo, dentro de tu Home, las cosas son más parecidas. Hay algunas carpetas ya creadas automáticamente que son iguales a las que aparecen en cualquier sistema Windows o Mac. Lo que si varía es la ruta para llegar a ellas, dado que en GNU/Linux sería, por ejemplo, /home/nombre_usuario/Documents. Cada usuario principal que se crea en el sistema tendrá su propio home y solo podrá ver sus contenidos, salvo que tenga privilegios de administrador. En la imagen puedes ver mi disco duro, con las carpetas que vienen por defecto (están ingles porque lo instalo así, me cansé de los líos entre el punto y la coma para los decimales y cosas por el estilo, pero tú puedes elegir tu propio idioma natal). Las secciones a la izquierda en rojo, por orden de arriba a bajo, indican los accesos a las carpetas pre-definidas, las conexiones a discos duros o cuentas de Internet, los accesos directos que creas a voluntad para aquellas carpetas que usas mucho y el resto del sistema (tranquilo, sin permisos puedes ver pero no tocar).

El uso de la terminal o línea de comandos

El programa que usamos para trabajar en línea de comandos se llama terminal y todos los sistemas operativos tienen una (si, incluso Mac). Si abrimos una terminal directamente sobre el icono que representa el programa veremos algo parecido a lo que aparece en la foto (sin mis flechas y comentarios, claro). El primer texto indica el usuario activo en el sistema (con el que se ha accedido), luego de la arroba, el nombre que se ha asignado al computador (es el nombre con el que aparecerá cuando lo buscas en red) y el último símbolo indica los privilegios con los que se está ejecutando el terminal ($ usuario normal, # superusuario o administrador).  

El objetivo, en nuestro caso, es posicionar la terminal en la carpeta de trabajo. Eso puede hacerse escribiendo cd ruta-completa, o bien desde el explorador de carpetas, con el botón derecho en el lugar que queremos, elegir la opción abrir terminal. En ese caso, la posición del terminal aparecerá tal como aparece en la imagen de arriba. Para verificar que estamos en el lugar adecuado podemos escribir el comando ls y nos devolverá el contenido de la carpeta.

Compilando y dando permisos de ejecución a los programas

Si los programas se descargan por primera vez, en realidad son archivos simples de texto que pueden leerse en cualquier editor de texto (otra cosa es entender el lenguaje de programación, claro). En este sentido recomiendo que instales Geany, es un editor de código con interfaz gráfica multiplataforma y fácil de usar, que hará más llevadera la lectura de los programas (pone en colores las letras, entre otras cuestiones, haciendo más fácil distinguir los comentarios). Cada programa tiene en la cabecera la licencia más permisiva de todas, la llamada MIT License, más que nada para facilitar su uso, cambio, mejora, etc., con el único objetivo de citar la fuente. En la imagen inferior puedes ver un ejemplo de todo el procedimiento al que hacemos alusión.

Volviendo al tema de la ejecución, una vez tenemos los programas descargados en nuestro pc y situados en la carpeta de trabajo tenemos que, o compilarlos (construir el equivalente al *.exe en Windows) si están escritos en lenguaje de programación C, o bien darles permisos de ejecución si fueran scripts en Bash o Python. Unos y otros pueden distinguirse fácilmente por la extensión asociada (*.c, *.py o *.sh). Para el primer caso, si abres el archivo con la fuente de programación veras la línea de compilación que debe ser escrita en la terminal: por ejemplo, tal como mostramos en la imagen inferior, el programa main_seae.c se compilaría escribiendo gcc main_seae.c -o main_seae -lm (ver imagen inferior). Hay que tener mucho cuidado que el ejecutable no se llame exactamente igual que el archivo de texto, de otra forma sobrescribiríamos el primero. No obstante, para facilitar esta labor, en la sección de material de apoyo incluimos un script en Bash que realiza este cometido.

Para los otros dos es más fácil, los buscamos en el explorador de carpetas, seleccionamos el archivo, presionamos el botón derecho y buscamos propiedades. En el cuadro que aparece vamos a la sección permisos y en la parte inferior veremos un recuadro que indica que se permitirá la ejecución de este programa. Si somos más valientes, también podemos usar el terminal y escribir chmod +x filename. De otra forma no funcionarán los programas.