Cómo hacer que nuestra terminal luzca mejor? Parte1

Durante mucho tiempo hemos administrado servidores Linux y en contadas ocasiones (casi nunca) estos cuentan con interfaz gráfica, pero eso no significa que nuestra vida en la terminal tenga que ser aburrida o descolorida… Hoy les presento algunas opciones con las cuales no solo sus terminales lucirán mejor, sino que también incrementarán su productividad.

NOTA: Todos los comandos que se usarán en este artículo fueron testeados en una VM corriendo Ubuntu 20.04, y en otra corriendo Debian 11, aunque debe de servir para cualquier otro sistema operativo

1- Cómo tener varias sesiones, ventanas y paneles en nuestra terminal: Tmux

Como los propios creadores de Tmux lo definen: tmux es un multiplexor de terminales: permite crear, acceder y controlar varios terminales desde una única pantalla. tmux puede separarse de una pantalla y continuar ejecutándose en segundo plano, y luego volver a adjuntarlo. Existe su alternativa Terminator, pero personalmente prefiero Tmux. Es un screen con esteroides.

Tal vez todas las palabras anteriores resulten conocidas, pero no se puedan asociar en primer momento con las terminales, pero poco a poco las iré explicando.

1.1- Instalación:

Por defecto tmux viene instalado en Ubuntu server, pero en Debian hay que instalarlo. El proceso de instalación es bien sencillo, solo basta con correr:

apt install tmux

1.2- Sesiones:

Pueden pensar en las sesiones como procesos terminales en background, las cuales serán fácilmente invocadas una vez sean creadas. Se pueden tener tantas como se desee, incluso se las puede nombrar (si a la hora de crear una sesión no se le nombra, tmux le asignará números ordenados).

Crear una sesión es sencillo, aunque hay varias formas en dependencia de lo que se desee:

# Crear una sesión nueva sin nombre
tmux new

# Crear una sesión nueva, esta vez con el nombre check_logs
# tmux new -s [nombre de la sesion]
tmux new -s check_logs

Una vez que corramos alguno de los comandos anteriores, una nueva sesión se abrirá:

Por ahora no es necesario hacer nada, termine el tour, y luego podrá experimentar. Por ahora salgamos de esta sesión. Hay dos maneras de salir:

Esta primera no cierra la sesión, sino que la pone a correr en background (el termino correcto sería detatch session)
Presionando la combinación de teclas: CtrlB + D (Presione la tecla Ctrl, sin soltarla presione la tecla B, suelte ambas y presione la tecla D)

La otra forma sí que cierra la sesión es sencillamente:

exit

Por ahora elija la primera opción, o sea detatch session pues el próximo paso es listar las sesiones que se tienen corriendo:

tmux ls

Como se ve, se mantiene la sesión hello que anteriormente se había creado. Ahora, si queremos acceder a ella nuevamente, se puede attach:

tmux a -t hello

Si se corre el anterior comando, tmux nos llevara a la terminal de la sesión hello. Si se da el caso de que tenemos varias sesiones corriendo, y queremos acceder a la última, solo hay que escribir:

tmux a

1.3- Ventanas:

Dentro de una sesión de tmux se pueden tener ventanas, piense en las ventanas como si fueran… diferentes ventanas de una misma aplicación, solo que esta aplicación es otra terminal!!!

Para probar las ventanas solo inicie una nueva sesión como se mostró en la sección anterior. Una vez dentro de la nueva sesión solo basta con presionar la combinación de teclas:

CtrlB+C
# (Presione la tecla Ctrl, sin soltarla presione la tecla B, suelte ambas y presione la tecla C)

Esto creará una nueva ventana:

Como se muestra en la imagen tenemos dos ventanas (0 y 1), de las cuales se puede saltar de una a la otra. Pero primero vamos a cambiarle el nombre a la ventana en la cual estamos, para ello simplemente presione la combinación de teclas:

CtrlB+,
#(coma)
# Presione primero la tecla Ctrl y sin soltarla, presione la tecla B, luego una vez soltadas ambas teclas, presiona la tecla de que su teclado imprime el caracter coma (,)

Ponga el nombre deseado, en mi caso usare: world. Una ponga el nombre y presione ENTER le saldrá algo muy parecido a:

Pongamos a correr algo en esta ventana:

Y ahora cambiemos de ventana. Para ello solo basta fijarse en el número que sale antes del nombre de la ventana. En este caso tenemos [0:bash-] [1:world*], y simplemente enviar la combinación:

# CtrlB+[número de la ventana que desea poner en el primer plano]
CtrlB+0

E iremos a la ventana 0, la cual aún no tiene nombre. Por qué no se lo cambiamos siguiendo los pasos anteriores? Esta vez la ventana llevara por nombre pizza:

Como puede apreciar, a la derecha de la ventana en la que se está posicionado actualmente existe un *!!! Si queremos cambiar nuevamente a la ventana 1, solo basta con:

CtrlB+1

Si se quiere cerrar una ventana, solo basta con:

CtrlB+X

Se escribe la tecla y, y la ventana se cierra.

1.4- Paneles:

Esta es quizás la parte más divertida de todas, resulta que puedes tener más de una terminal en la misma terminal (terception?). Cómo? Sencillo: una vez este dentro de la ventana de su selección solo presione la combinación de teclas:

CtrlB+ "

Esto creará un panel horizontal:

CtrlB+ »

Esto creará un panel horizontal:

Pero se puede hacer más aún: ahora crearemos un panel vertical, para ello solo presione la combinación de teclas:

CtrlB+%

Como se aprecia en la imagen el panel en el que se está trabajando estará enmarcado en verde, de esta forma será más fácil de identificar.

Para moverse entre los paneles es bien intuitivo, solo basta con:

CtrlB+[Teclas de dirección]
CtrlB+Arriba
CtrlB+Izquierda

Una forma tal vez más visual de acceder al panel q se desea, es través de la combinación (el número en color rojo será el panel actual):

CtrlB+q+[Número del panel]
CtrlB+q+1

Podemos darles tamaño a nuestros paneles también! Las siguientes combinaciones harán la magia:

CtrlB+[Flechas de dirección laterales] # ESTA VEZ SIN SOLTAR EL CTRLB
CtrlB+Ctrl[Flechas de dirección verticales]

Un ejemplo de cómo podría quedar:

Para cerrar los paneles la combinación de teclas es la misma que para cerrar ventanas:

CtrlB+X

1.5- Configuraciones:

Hay muchas configuraciones para hacerle a tmux, pero la idea de este artículo es solo dar una base, obtenida aquí, así que en las configuraciones me limitaré a mostrar solo unas pocas.

Si tmux es instalado desde los repos su archivo de configuración estará escondido, por esto, hay que generarlo:

tmux show -g > ~/.tmux.conf

Ahora para editarlo, solo basta con:

nano ~/.tmux.conf

Para, dentro de una sesión, crear nuevas ventanas, cerrarlas y cambiar entre ellas estilo navegadores modernos, hay que agregar las siguientes líneas:

bind-key -n C-t new-window
bind-key -n C-w kill-window
bind-key -n C-Tab next-window

Normalmente cuando abrimos una sesión y movemos la ruedita del mouse, tmux nos muestra los últimos comandos escritos en la terminal, cuando nosotros esperamos que mueva la pantalla hacia arriba para poder ver lo se hizo con anterioridad, para sobrescribir este comportamiento, agregar al archivo de configuración:

set -g mouse on

1.6 Haciendo el tmux (y la terminal en general) más atractiva a la vista:

Ya conocemos una herramienta para mejorar nuestra productividad, ahora toca otra parte divertida. Primeramente vamos a mejorar la consola usando Synth-Shell. Synth-Shell funciona dentro de tmux.

Según sus propios autores:

Synth-shell mejora la experiencia y la productividad de su terminal mediante una combinación de pequeños scripts bash.

Y como puntos remarcables:

  • Informe de estado del sistema
  • Indicador de bash elegante
  • Promete mejorar la experiencia del ls
  • Alias predefinidos para comandos como: grep, free, sudo

Antes de instalar es necesario instalar las fuentes de las letras:

apt install fonts-powerline

El proceso de instalación es sencillo:

git clone --recursive https://github.com/andresgongora/synth-shell.git && \
chmod +x synth-shell/setup.sh && \
cd synth-shell && \
./setup.sh

Una vez que el proyecto es clonado desde GitHub y se corre el setup.sh comenzara el proceso de configuración y deberán ser respondidas algunas preguntas:

Una vez instalado podremos husmear dentro de sus archivos… Por ejemplo:

nano synth-shell/synth-shell/alias.sh

alias grep='\grep --color=auto'
alias pacman='\pacman --color=auto'
alias tree='\tree --dirsfirst -C'
alias dmesg='\dmesg --color=auto --reltime --human --nopager --decode'
alias free='\free -mht'
alias sudo='\sudo '
if [ "$PS1" ]; then
        complete -cf sudo
fi

Una vez salga y entre al usuario root:

 

Hay que instalar el greeter para cambiar el saludo, que se encuentra en la carpeta:

~/synth-shell/synth-shell/synth-shell-greeter/./setup.sh

Hay que hacer lo mismo para el prompt:

/home/user/synth-shell/synth-shell/synth-shell-prompt/./setup.sh

Una vez completado salga y entra nuevamente al usuario:

Si se desea configurar los colores o el saludo inicial se puede hacer, si se instalo el script utilizando la configuración global, las configuraciones se encontraran en:

/etc/synth-shell

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Autores:

  • Frank Morales
  • Franco Díaz

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

1 comentario

  1. Google Chrome 46.0.2490.76 Google Chrome 46.0.2490.76 LG LG
    Mozilla/5.0 (Linux; Android 5.0.1; LG-H340n Build/LRX21Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36

    ¡Excelente artículo! Muy bien explicado.?

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*