Anatomía de la terminal y BASH en GNU/Linux

bash terminal linuxEn los sistemas UNIX el shell es un programa informático que interpreta ordenes (Wikipedia), basado en la shell, se crea BASH por parte del proyecto GNU. Podemos verlo abriendo un emulador de terminal en sistemas GNU/Linux y Mac OS o directamente en un sistema sin entorno gráfico. Existen también maneras de emularlo en entornos Microsoft Windows, pero no es 100% nativo, aunque recientemente hay un proyecto que intenta llevar la consola bash de manera fácil al sistema botnet Microsoft Windows 10.

Al ser clon de la shell de UNIX, la mayoría de las aplicaciones son ejecutables tanto en BASH como en shell, tenemos acceso tanto a parámetros, funciones matemáticas, los conocidos operadores relacionales, redireccionamiento y otras funciones más.
Muchos de los comandos que se usan a diario son los conocidos man, cd, ls, rm, cp, mkdir, etc. Aunque existen decenas más para gestión de archivos, usuarios, procesos, incluso para acceso remoto y sistema y gestión de la red.

La terminal

Aqui es donde sucede la magia y donde podemos crear, modificar y explorar las opciones del bash. Existen tres ficheros en el directorio de usuario necesarios para BASH. Estos ficheros permiten al usuario configurar el entorno de su cuenta automáticamente cuando entra en el sistema, cuando arranca un subshell o ejecutar comandos cuando sale del sistema.

Los nombres de estos ficheros son Si ninguno de estos ficheros existe en el directorio del usuario, /etc/profile es utilizado por el sistema como fichero de configuracion de bash.

.bash_profile es el el mas importante de los tres. Es leido y los comandos incluidos en el, ejecutados, cada vez que el usuario entra en el sistema. Cualquier cambio hecho en este fichero no tendra efecto hasta que salgamos y entremos en el sistema de nuevo. Bash permite dos sinonimos para este fichero, .bash_login y .profile. Si .bash_profile no existe, el sistema buscara primero .bash_login y luego .profile. Solamente uno de estos ficheros es leido, en el caso que existan simultaneamente.

El fichero bashrc

Es leido cuando el usuario arranca un subshell, escribiendo por ejemplo bash en la linea de comandos. Esto nos permite ejecutar diferentes comandos para la entrada al sistema o para la ejecucion de un subshell.

Si queremos configurar la cantidad de comandos que se almacenan en el historial, modificamos estas lineas:

En este caso, si queremos habilitar los colores de la terminal solamente cambiamos force_color_prompt a yes:

Estas lineas nos permiten jugar con la indicación del hostname y nombre de usuario, incluso sustituyendo el signo de dolar o el simbolo de arroba por otro de tu preferencia, también acepta cambiar colores:

Aqui una lista de los colores aceptados:

Podemos cambiar y crear alias, es decir, atajos para comandos que usamos frecuentemente y nos ayudan a hacer más rápida alguna tarea:

Otra parte divertida y útil puede ser colorear las páginas de manual, solamente usando estas lineas y ampliamente configurables como desees:

funny colored man pages yay!

Si bien la terminal con BASH o shell no acepta la cantidad de plug-ins y nuevas caracteristicas como la fantástica ZSH, es una buena manera de conocer una de las partes más importantes en un sistema tipo UNIX, asi que espero que sea útil y nos den ganas de explorar más por las herramientas que podemos encontrar en nuestros sistemas GNU/Linux y tipo UNIX.

Acerca de Denisse

Denisse
Edward Snowden es mi novio <3

Visita también

Firefox 57 ya esta entre nosotros, 2 veces más rápido que antes!!

El navegador web más popular del mundo acaba de anunciar su versión 57 con su …

Deja una respuesta

8 Comentarios En "Anatomía de la terminal y BASH en GNU/Linux"

Notificarme las
avatar
Johnny
Invitado

A mi no me ha funcionado. He puesto los siguientes colores en .bashrc:
man() {
env \
LESS_TERMCAP_mb=$(printf “\e[01;31m”) \
LESS_TERMCAP_md=$(printf “\e[01;35m”) \
LESS_TERMCAP_me=$(printf “\e[0m”) \
LESS_TERMCAP_se=$(printf “\e[0m”) \
LESS_TERMCAP_so=$(printf “\e[01;33m”) \
LESS_TERMCAP_ue=$(printf “\e[0m”) \
LESS_TERMCAP_us=$(printf “\e[04;36m”) \
man “$@”
}
pero al usarlo en la consola, por ejemplo man ps, me sale:
env: « »: No existe el archivo o el directorio
: no se encontró la orden
: no se encontró la orden
: no se encontró la orden
: no se encontró la orden
: no se encontró la orden
: no se encontró la orden
Este mensaje aparece en un bucle infinito. No veo el fallo, espero que alguien me pueda echar una mano.
Si a alguien mas le pasa, que sepa que con simplemente eliminar esas entradas,guardar y salir para volver a abrir la terminal se soluciona.

wpDiscuz