jueves, 11 de abril de 2013

Introduciéndonos en la shell de Ubuntu

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Es la hora de la verdad, ya hemos instalado nuestro primer Linux. Lo tenemos todo reluciente ahí, luciendo en nuestro monitor. ¿A que no es tan distinto de Windows?

Lo primero antes de empezar a funcionar en Ubuntu, o en la distribución que uno escoja, es familiarizarse con el entorno. Hay cosas que cambian de nombre, otras que resultarán completamente nuevas y algunas, las habrá, que se echarán de menos. Podemos empezar afirmando que en GNU/Linux TODO tiene nombre, hasta la tontería más boba recibe algún tipo de denominación. Por ejemplo, lo que en Windows es simplemente el explorador de archivos en Ubuntu, openSUSE o Fedora es Nautilus, Dolphin o Konqueror, dependiendo de si estamos entornos GNOME o KDE; la ventana de comandos o shell tiene variantes como bash, dash, sh o ksh; los programas de instalación y configuración en sistemas derivados de Debian se llaman apt, aptitude y dpkg; en openSUSE el software responsable de la configuración y mantenimiento del sistema atiende por YaST; los derivados de Red Hat como Fedora utiliza la herramienta yum... En fin, es algo que iremos viendo poco a poco.

Pero lo que pretendo es que vayamos cogiendo soltura con el terminal. Los menús y el entorno gráfico son tan intuitivos como en Windows así que lo que merece atención es la línea de comandos a través del terminal.

Al terminal se le denomina también ventana de shell. Una shell es un software que permite interactuar con el sistema por medio de órdenes o comandos, y visualmente es una ventana con un prompt (línea que representa el nombre del usuario que uno haya escogido y el localhost o nombre que se haya dado al PC separados por una arroba, seguido de dos puntos, una tilde y el símbolo del dólar). Esto puede cambiar según la distribución, pero ya he dicho que vamos a centrarnos en Ubuntu. Así es como se verá nuestro prompt:



nombre_de_usuario@localhost:~$

La ventana de comandos, terminal o shell se parecen al antiguo MS-DOS pero conviene recordar que UNIX en anterior a que Bill Gates pensara en inventar MS-DOS.

Hay varios tipos de shell, que responden de forma distinta en función de los parámatros bajo los que hayan sido creadas. La más popular es bash, pero existen otras como sh (versión anterior de bash), tschcshksh y zsh. Yo he probado alguno otra y... mejor que quedo con bash. Si quisiéramos cambiar a otra utilizaríamos el comando chsh (change shell):



:~$ chsh
nombre_de_shell
:~$

Asumamos que tras terminar de teclear una línea pulsamos la tecla enter.Las shells instaladas se encuentran en el directorio /binPodemos ver un listado de ellas instaladas listando el archivo /etc/shells con ayuda del comando cat:



:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
:~$ 

También podemos cambiarla de una sola vez, ejecutando el comando con la opción -s y, a continuación, escribiendo la ruta de la shell que deseamos, por ejemplo, sh.


:~$ chsh -s /bin/sh
:~$

Si quisiéramos volver a bash no tenemos más que cerrar la terminal. Cuando la volvamos a abrir volveremos a estar con la shell bash. O podemos volver a ejecutar cualquiera de los comandos anteriores. Este:


:~$ chsh
nombre_de_shell
:~$


Y este otro:


:~$ chsh -s /bin/bash
:~$

Son conceptos durillos de asimilar para un recién llegado, pero si queremos exprimir nuestro Linux hay que empezar a pegarse con ellos.
Y hablando de pegar, Ian Dury pedía al frente de los Blockheads que le golpearan con un palo rítmico a finales de lo 70 en este mítico tema.