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

Edward Snowden es mi novio <3

8
Deja una respuesta

avatar
6 Hilos de comentario
2 Respuestas de hilo
0 Seguidores
 
Comentario más reaccionado
El hilo de comentarios más caliente
5 Autores de comentarios
JohnnyguidoAnatomía de la terminal y BASH en GNU/Li...NoelEduardo Inda Populista Autores de comentarios recientes
  Suscribirse  
Los más recientes Los más antiguos Más votados
Notificarme las
Johnny
Invitado
Johnny

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.

lomje
Miembro
lomje

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
Invitado

¿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
Eduardo Inda Populista

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

Noel
Invitado

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.

Centro de preferencias de privacidad

Cookies imprescindibles

Se usan para saber si ya aceptaste nuestras políticas y para servir más rápidos los contenidos.

gdpr

Cookies de terceros

Usamos cookies de terceros en las que se almacenan externamente para conocer tus usos de navegación, si ya estás suscrito al boletín y los elementos compartidos en redes sociales

_ga, _gid

Suscríbete gratis

Suscríbete gratis

Recibe las últimas noticias y novedades de LiGNUx en tu email.
Sin publicidad, sin Spam.

Gracias por suscribirte a LiGNUx.