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

¿Cómo instalar Parole Media Player XFCE en Ubuntu, Linux Mint y derivadas?

En esta ocasión vamos a explicar como se instala Parole Media Player XFCE en Ubuntu, …

Deja una respuesta

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

Notificarme las
avatar
Ordenar por:   Los más recientes | Los más antiguos | Más votados
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… Leer más »
lomje
Miembro

Ante todo muy bueno el articulo. Tengo una consulta que hacer. Uso Archlinux (manjaro), entorno xfce. Tuve que armarme de un script utilizando la herramienta xrandr debido a problemas en la resolucion de pantalla. Este script.sh lo debo ejecutarlo como root cada vez que entro y me tome los cambios ya que la resolucion vuelve a la anterior cada vez que salgo y entro de la pc. Como y donde puedo configurar mi script para hacer un cambio permanente con la resolucion de pantalla???

Saludos y gracias

Noel
Admin

¿Usar ArchLinux o Manjaro? son distribuciones diferentes eh
De todas formas, tu solución pasaría por automatizar el inicio de tu script con el inicio del pc, de forma que cuando entres este como tu quieras ya que se esta ejecutando.
La otra opción en toquetear “xorg.conf”, asignando manualmente estos cambios.

trackback

[…] En 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.  […]

Eduardo Inda Populista
Invitado

La foto del articulo.?? De un fedora core del año catapum??? Super actual!!!!

Noel
Admin

Siempre hay que recordar los orígenes no? jaja veo que te llamo la atención una captura retro.

Daniel
Invitado

Interesante Post, uno nunca deja de aprender en GNU/Linux, esa es la gracia del sistema. Saludos.

wpDiscuz