Conceptos Básicos de BASH: Introducción a BASH

Esta guía es una introducción amigable para los principiantes del shell BASH (https://www.gnu.org/software/bash/), terminal y conceptos generales de Linux, como es la organización de archivos. Lo más probable es que, si aún no te estás acercando a la edad de jubilación, los ordenadores que has ido utilizado siempre habrán tenido una interfaz gráfica de usuario (GUI). Cuando inicias tu SBC ODROID, eres recibido con un agradable escritorio Ubuntu MATE no muy diferente al de Windows 10 u OS X. Por el contrario, un shell o un intérprete de línea de comandos como BASH parece más bien una reliquia de hace 50 años, entonces ¿por qué deberías abandonar la comodidad de contar con una GUI?

Hay varias respuestas para esto:

  • Eres un poco vago, como yo. Es mejor pensar unos minutos en el problema y automatizar una tarea tediosa y repetitiva en lugar de hacerla tú mismo.
  • Su SBC no tiene salida de video, como el HC1 o el HC2, o tienes la placa en otro lugar a la que te conectas solo a través de la red. Las GUI por la red consume ancho de banda y resulta un poco molesto trabajar; el retraso de todo lo que haces debido a la latencia añadida terminará desesperándote con el tiempo. Las soluciones de línea de comandos generalmente son más receptivas y más fáciles de usar en conexiones remotas.
  • Deseas entender mejor el funcionamiento del sistema y tener un mayor control sobre él. Esto también se logra mejor con la línea de comando en el shell. Se trata de una capa inferior a la GUI. Tu pequeño ODROID es como una caja negra, tienes un control exhaustivo y puedes hacer más cosas de las que puede hacer solo con la GUI.

Figure 1 - The Ubuntu Mate desktop is a modern GUI
Figura 1 - El escritorio Ubuntu Mate es una moderna interfaz gráfica de usuario (GUI)

Figure 2 - The BASH command prompt seems like a relic
Figura 2 – La línea de comandos BASH parece más bien una reliquia

Comencemos ahora por terminal con el shell BASH por defecto y veamos cómo puede ayudarnos con todo esto. En Ubuntu MATE, simplemente presiona CTRL-TAB-T para abrir el terminal o shell.

Ventana de terminal

Al usar el método abreviado, abrimos un terminal de caracteres de 80×24 (usando el perfil por defecto, que puede ser cambiado, copiado y editado) con la línea de comando en la parte superior. El prompt que aparece se compone de tu nombre de usuario (generalmente ODROID), el nombre de la máquina, dos puntos, la ruta o el directorio de trabajo, y un signo $ que identifica que eres un usuario normal. Con el usuario root se muestra una # en su lugar, tal y como puedes ver en la Figura 2. Más adelante, personalizaremos esto a nuestro gusto.

Puesto que empiezas en tu directorio de inicio, éste se muestra con el signo ~ para abreviarlo. El comando ls te muestra el contenido de tu directorio de trabajo, similar a abrir el Explorador de archivos.

¿Qué es un Shell?

Este terminal ejecuta el shell BASH. Un shell es un intérprete de línea de comandos que se ejecuta en una ventana de texto, el terminal. El estándar para Linux es BASH. BASH también puede leer y ejecutar comandos desde un script, llamado script shell.

Hasta ahora, no es muy espectacular. Sin embargo, si usas ls -l o ll para abreviar, recibes más información de la que te proporciona el Explorador de archivos sin tener que ir al menú de Preferencias para cambiar la configuración. Pero espera, aún hay más. Si deseas ver un buen árbol de lo que tienes en tu directorio de inicio, intente ejecutar el comando tree. Si no lo tienes instalado, instálalo ejecutando: $ sudo apt update && apt install tree Dependiendo de la cantidad de archivos que tengas, pueden aparecer más o menos resultados. Limita el resultado solo a los directorios con tree -d, y si tiene muchos niveles que no te interesan en este momento, puede limitar a, por ejemplo, 2 niveles usando el árbol -d -L 2. Cuando usa un comando, puede obtener un resumen abreviado con:

 $ <command></command> --help
or usar:
<command></command> $ man
para una página del manual completa de ello.

Sistema de archivos

Con el comando ls /, obtienes el contenido del directorio raíz. Todo lo demás a lo que puedes acceder está vinculado a una rama de su árbol. Para una vista general, usa el siguiente comando:

 $ tree -d -L 1 /
Los directorios que ves siguen un estándar, el Estándar de Jerarquía del Sistema de Archivos (FHS). Los que nos interesan son principalmente:

  • /bin - binarios de comandos esenciales que deben estar disponibles en modo de usuario único para todos los usuarios, por ejemplo, cat, ls, cp.
  • /boot - archivos del cargador de arranque como el disco RAM initrd, el kernel y los blobs del árbol del dispositivo ARM para la placa. Estos también se encuentran en /media/boot, el lugar donde se monta la partición FAT32 desde la cual arranca la SBC ODROID.
  • /dev - los archivos de dispositivo para todo lo que se conecta al ODROID. /dev/mmcblk0 es la eMMC, /dev/mmcblk0p1 es la primera partición en la eMMC, la partición de arranque FAT32 para el procesador ARM. /dev/mmcblk0p2 es la partición del sistema que es tu partición raíz si arranca desde la eMMC. En caso de utilizar la tarjeta SD, es mmcblk1 en lugar de mmcblk0.
  • /etc - Este es el lugar de todos los archivos de configuración del sistema.
  • /home - Los directorios de inicio para los usuarios. Con la configuración estándar, tienes /home/ODROID para el usuario de ODROID, el método abreviado para el directorio de inicio de cada usuario es ~.
  • /lib - librerías para los programas en /bin y /sbin.
  • /media - Punto de montaje para el almacenamiento extraíble como memorias USB. La partición de arranque para el procesador ARM también se monta aquí.
  • /mnt - Sistemas de archivos montados temporalmente.
  • /opt - Software opcional. Cosas como ffmpeg, Google Chrome, Skype, TeamViewer. Si desea ver lo que hay aquí, tree -d /opt o simplemente ls opt te proporciona una vista general.
  • /proc - Sistema de archivos virtual que proporciona información del proceso y del kernel, habitado por el sistema.
  • /root - Directorio de inicio para el usuario root, el superusuario.
  • /run - Información sobre el sistema desde el último arranque.
  • /sbin - Binarios esenciales del sistema como mount, iw, fdisk, mkfs.
  • /srv - Datos servidos por este sistema. Si tiene uno de los nuevos HC1 o HC2 o generalmente utiliza tu ODROID como servidor de archivos, el lugar recomendado para montar tu disco duro sería
  • /srv/samba o /srv/ftp o /srv/nfs.
  • /sys - Información sobre dispositivos, drivers y algunos servicios del kernel. Desde aquí se controlan bastante los SBCs. Para controlar el ventilador en un XU4, deberías usar:

$ echo 0 > /sys/devices/platform/pwm-fan/hwmon/hwmon0/automatic
para apagarlo y
 $ echo 255 > /sys/devices/platform/pwm-fan/hwmon/hwmon0/automatic
para encenderlo de nuevo

  • /tmp - archivos temporales, a menudo no se conservan al reiniciar el sistema.
  • /usr - Contiene la mayoría de las utilidades y aplicaciones del (multi-)usuario. Tiene su propia jerarquía con /usr/bin, /usr/lib, /usr/local, /usr/sbin y así sucesivamente.
  • /var - Archivos de variables como registros logs y archivos spool.

Comandos útiles

Ahora que conoces el diseño de tu sistema, ¿Qué otros comandos son útiles en terminal además de ls y tree? En las siguientes entregas, trataremos:

  • Los comandos más básicos, uso, aplicación para los SBCs ODROID
  • Qué sucede durante el arranque y el inicio de sesión con respecto a BASH
  • Personalizar el prompt BASH
  • Breve introducción al scripting, incluyendo variables, pruebas, bucles
  • Simples líneas que son muy útiles en la línea de comandos

Be the first to comment

Leave a Reply