Consolas con diferentes sabores

Posiblemente bash sea el programa interprete de comandos más conocido y usado. Se suele llamar al interprete de comandos SHELL.  Cuando usamos una consola virtual en GNU/Linux es posible que estemos usando bash inmediatamente después de hacer login correctamente.

Si estamos usando una distro sin interface gráfica cuando el ordenador termina de realizar la secuencia de arranque llegará a un punto en el que nos pide login. Si escribimos el nombre de usuario y password correctos accederemos al interprete de comandos y ese es muy posible que sea bash por defecto ya que suele venir en la mayoría de distros GNU/Linux.

Vamos a poder cambiar de consola virtual (vc) pulsando las siguiente combinación de teclas:

  • Control+alt+F1 –> vc/1 –> /dev/tty1
  • Control+alt+F2 –> vc/2 –> /dev/tty2
  • Control+alt+F3 –> vc/3 –> /dev/tty3
  • Control+alt+F4 –> vc/4 –> /dev/tty4

Si accedemos a vc/2 y hacemos login vamos a poder ejecutar el programa tty y ver que realmente estamos usando el dispositivo /dev/tty2 .

Una vez comprobado esto vamos a ver que shell (interprete de comandos) estamos usando. Esto se hace imprimiendo en pantalla el contenido de la variable de entorno $SHELL.

$ echo $SHELL

Si nos suelta /bin/bash es que estamos tirando de bash. El tema es que aparte de bash existen muchas otras. Podemos usar si nos viene en gana otras en vez de usar bash.

Si hacemos un echo $TERM vamos a  ver la terminal que estamos emulando y eso NO es lo mismo que la SHELL.

Una vez soltado este rollo vamos a ver cosas interesantes.

# En mi sistema. ¿Cuantos tipos de shells validas puedo usar?

Con validadas me refiero a que permitan login. Pues esto lo vemos haciendo un cat a /etc/shells y por ejemplo veremos esta salida:

/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/fish

En el archivo /etc/passwd podemos cambiar que shell queremos que utilice un determinado usuario y cada vez que inicie sessión la variable $SHELL será diferente y al mismo tiempo tendría que estar usando la shell que ha especificado.

Si cambiamos a por ejemplo el usuario benito la shell /usr/bin/fish y pulsamos control+alt+f1 vamos a poder allí hacer login y comprobar que estamos usando fish en vez de bash.

Si no disponemos de fish podemos instalarlo en distros como GNU/Linux Debian así:

$ apt-get install fish

# Cambiar de shell sin editar a mano /etc/passwd

Podemos hacer el cambio usando la herramienta chsh sin necesidad de ser root. Esto permite que un usuario cambie de interprete escribiendo por ejemplo esto:

$ chsh -s /bin/dash

Eso cambiará pidiendo la password del usuario para hacer login a dash como la shell que tendrá el usuario que lo ejecuta.

# Algunas de las consolas más usadas

Los interpretes de comandos más populares son:

  • SH – No se utiliza tanto como Bash en el mundillo GNU/Linux pero allí estará seguramente si la necesitas.
  • DASH – En 1997 se portó la shell ash de NetBSD (ash de Almquist shell) a GNULinux. Dash es descendiente de ash e intenta ser una implementación de sh compatible con POSIX. Intenta ser lo más pequeño posible.
  • BASH – Bourne Again Shell GNU. Basada en SH (La bourne de Unix). Es la que suele venir por defecto en la mayoría de distros y suele ser la que llevan por defecto configurada los usuarios del sistema.
  • CSH – Creada para emular algunas características del lenguaje C a la hora de usarla como entorno de programación.
  • KSH – La consola Korn (ksh) fue diseñada para tomar las mejores funcionalidades de las consolas bourne y C y mejorarlas. Cuenta con pocos seguidores pero muy fieles al parecer.
  • ZSH – Zsh intenta ir un paso más allá de la consola Korn y añadir mejoras a las funcionalidades típicas de las consolas.

Evidentemente que existen más pero no es cuestión de estar relatando cada una de las existentes.

próximo Publicación

Atrás Publicación

Dejar una contestacion

© 2018 [ MIERDA TV ]

Tema de Anders Norén