martes, 19 de septiembre de 2017

¿Qué es el Shell?

Cuando hablamos de la línea de comandos, realmente nos estamos refiriendo al shell. El shell es un programa que toma los comandos del teclado y los pasa al sistema operativo para ejecutarlos. Casi todas las distribuciones Linux contienen un programa shell del Proyecto GNU llamado bash. El nombre “bash” es un acrónimo de “Bourne Again SHell”, una referencia al hecho de que bash es un sustituto mejorado de sh, el programa Shell original de Unix escrito por Steve Bourne.


Emuladores de Terminal

Cuando utilizamos una interfaz gráfica de usuario, necesitamos otro programa llamado emulador de terminal para interactuar con el shell. Si buscamos en nuestros menús de escritorio, probablemente encontraremos uno. KDE usa konsole y GNOME usa gnome-terminal, aunque es probable que se llame simplemente “terminal” en nuestro menú. Hay muchos otros emuladores de terminal disponibles para Linux, pero todos hacen básicamente lo mismo; nos dan acceso al shell. Seguramente desarrollarás preferencia por uno u otro según el número de “extras” que tenga.

Tus primeras pulsaciones en el teclado

Pues empecemos. ¡Arranca el emulador de terminal! Una vez que se abre, deberíamos ver algo como esto:


 [me@linuxbox ~]$


Esto se llama shell prompt y aparecerá donde quiera que el shell esté listo para aceptar entradas. Aunque puede variar algo en apariencia según la distribución, normalmente incluirá tu nombredeusuario@nombredetumaquina, seguido del directorio de trabajo actual (veremos esto dentro de un poco) y un signo de dólar.

Si el último carácter del prompt es un signo de libra (“#”) en lugar de un signo de dólar, la sesión de terminal tiene privilegios de superusuario. Esto significa que o hemos iniciado la sesión como usuario root o hemos seleccionado un emulador de terminal que proporciona privilegios (administrativos) de superusuario.

Asumiendo que todo va bien por ahora, intentemos teclear algo. Introduce letras sin sentido en el prompt, como ésto:


 [me@linuxbox ~]$ kaekfjaeifj

Como el comando no tiene sentido, el shell nos dirá que nos da otra oportunidad:

 bash: kaekfjaeifj: command not found
 [me@linuxbox ~]$


Historial de Comandos

Si pulsamos la tecla de la flecha hacia arriba, veremos que el comando anterior “kaekfjaeifj” reaparece tras el prompt. Esto se llama Historial de Comandos. La mayoría de distribuciones Linux recuerdan los últimos 500 comandos por defecto. Pulsa la tecla de la flecha hacia abajo y el comando anterior desaparece.

Movimiento del Cursor

Recupera el comando anterior con la tecla de la flecha hacia arriba de nuevo. Ahora prueba las teclas de las flechas hacia la izquierda y la derecha. ¿Ves cómo podemos colocar el cursor en cualquier lugar de la línea de comandos? Esto hace que la edición de comandos sea fácil.

Prueba algunos comandos sencillos


Ahora que hemos aprendido a teclear, probemos algunos comandos sencillos. El primero es date. Este comando muestra la hora y fecha actual.


 [me@linuxbox ~]$ date
 Thu Oct 25 13:51:54 EDT 2007

Un comando relacionado es cal que, por defecto, muestra un calendario del mes actual.

 [me@linuxbox ~]$ cal
 Octubre 2017

 Su Mo Tu We Th Fr Sa
  1  2  3  4  5  6  7
  8  9 10 11 12 13 14
 15 16 17 18 19 20 21
 22 23 24 25 26 27 28
 29 30 31


Para ver la cantidad actual de espacio disponible en tus unidades de disco, escribe df:

 [me@linuxbox ~]$ df
 Filesystem 1K-blocks    Used Available Use% Mounted on
 /dev/sda2  15115452  5012392   9949716  34% /
 /dev/sda5  59631908 26545424  30008432  47% /home
 /dev/sda1    147764    17370    122765  13% /boot
 tmpfs        256856        0    256856   0% /dev/shm


De la misma forma, para mostrar la cantidad de memoria libre, escribe el comando free.

 [me@linuxbox ~]$ free
          total         used   free   shared buffers cached
 Mem:    513712       503976   9736        0    5312 122916
 -/+ buffers/cache:   375748 137964
 Swap:  1052248       104712 947536


Finalizando una sesión de terminal

Podemos finalizar una sesión de terminal cerrando la ventana del emulador de terminal, o escribiendo el comando exit en el prompt del shell:

 [me@linuxbox ~]$ exit

La consola tras el telón

Aunque no tengamos ningún emulador de terminal funcionando, algunas sesiones de terminal continúan funcionado detrás del escritorio gráfico. Llamados terminales virtuales o consolas virtuales, podemos acceder a estas sesiones en la mayoría de las distribuciones Linux pulsando Ctrl-Alt-F1 a Crtl-Alt-F6. Cuando accedemos a una sesión, presenta un prompt de acceso en el que podemos introducir nuestro usuario y contraseña. Para cambiar de una consola virtual a otra, presiona Alt y F1-F6. Para volver al escritorio gráfico, pulsa Alt-F7.


Resumiendo

Para empezar nuestro viaje, hemos presentado el shell y hemos visto la línea de comandos por primera vez y aprendido como empezar y terminar una sesión de terminal. También hemos visto como enviar algunos comandos sencillos y realizar una pequeña edición en la línea de comandos. No da tanto miedo ¿no?


Para saber más


Para aprender más sobre Steve Bourne, el padre del Bourne Shell, lee este artículo de Wikipedia:
Aquí hay un artículo sobre el concepto de los shells en informática:

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.