La ejecución de procesos paralelos en una interfaz gráfica de usuario (GUI) generalmente requiere terminales con pestañas. Pero ¿qué pasaría si sólo pudieras trabajar con interfaces de línea de comandos (CLI)? La respuesta es Tmux , que es la abreviatura de «multiplexor de terminal». Y en esta Guía Rápida de Tmux para Hackers vamos a abordar comandos esenciales y referencias rápidas.
Mejor aún, en Tmux, puedes desconectarte de una sesión sin perder su estado y luego volver a ella volviéndola a conectar. Esta funcionalidad de manos libres es útil cuando, por ejemplo, necesita realizar varias conexiones SSH porque, de forma predeterminada, una sesión SSH ocupa toda la CLI, lo que le impide trabajar en otras tareas en conjunto.
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
¿Qué es tmux?
Tmux, abreviatura de «multiplexor de terminal», es un programa de línea de comandos similar a tener varias pestañas de terminal abiertas en una GUI. A diferencia de una GUI, donde salir de una pestaña puede interrumpir un proceso en ejecución, las operaciones continúan ejecutándose en segundo plano incluso después de desconectar las sesiones involucradas.
La palabrería oficial describe a tmux como un multiplexor de pantalla, similar a GNU Screen . Básicamente, eso significa que tmux le permite colocar paneles de ventanas en mosaico en un entorno de línea de comandos. Esto, a su vez, le permite ejecutar o controlar múltiples programas dentro de una terminal.
Un caso de uso común para tmux es en un servidor remoto donde tiene un diseño común que siempre usa y desea una manera de entrar y salir rápidamente. Un ejemplo sería si se está conectando a través de un servidor de salto y tiene otras sesiones SSH remotas a las que le gustaría conectarse simultáneamente. De manera similar, si tiene que ingresar a Vim , puede usar tmux para obtener acceso a su shell o un REPL en la misma ventana de terminal para una experiencia similar a la de un IDE.
Esta guía explicará la instalación y el uso básico de tmux para que pueda empezar a utilizarlo. Alternativamente, puede omitir toda la lectura e ir directamente a los comandos que necesita saber en la sección Resumen de comandos principales.
Instalación de Ubuntu/Debian/Kali Linux
La instalación para Ubuntu es similar a la de Mac, excepto que usaremos el apt-get
que viene preinstalado. Tenga en cuenta que tendremos que ejecutar apt-get
como sudo
. Esto se debe a que una cuenta de usuario no tendrá suficientes privilegios para instalar tmux, por lo que sudo
nos permitirá instalarlo como superusuario.
1 . Actualice apt-get
sudo apt-get update
2 . Instalar tmux:
sudo apt-get install tmux
3 . Confirme que se instaló verificando la versión:
tmux -V
Términos de Tmux
Familiarícese con ellos, ya que suelen aparecer en discusiones relacionadas con Tmux.
Entrar y salir
tmux se basa en sesiones. Para iniciar una nueva sesión en tmux, simplemente escriba tmux new
su terminal. Una vez que esté en tmux, lo único que será visiblemente diferente es la siempre presente barra verde en la parte inferior (consulte la sección Cómo ponerse elegante con temas personalizados para conocer las opciones de personalización) .
Para salir, puedes escribir exit
si estás en un panel único y regresarás por donde viniste.
Una nota importante es que esa exit
no es la única forma de salir y, por lo general, no es la mejor. Para eso tenemos detach
.
Comandos Tmux
Puede ejecutar comandos de Tmux por nombre desde la CLI, como tmux
iniciar una nueva sesión. Cuando inicia Tmux, crea una nueva sesión de ventana única y la muestra en la pantalla.
Una línea de estado en la parte inferior muestra información de la sesión actual y se utiliza para ingresar comandos interactivos con el prefijo de la combinación de teclas de activación Ctrl+b (Linux) o control+b (macOS). Este disparador le dice a Tmux que esté atento a las pulsaciones de teclas de interés.
Ctrl+b solo se aplica a comandos cortos de una o dos teclas. Ctrl+b seguido del carácter de dos puntos (:) muestra un mensaje para que emita comandos específicos, después de lo cual presiona Enter para su ejecución.
Usando prefijo
Todos los comandos en tmux requieren el atajo de prefijo, que de forma predeterminada es ctrl+b
. Usaremos mucho el prefijo, así que es mejor simplemente guardarlo en la memoria. Después de ingresar ctrl+b
, puede ejecutar un comando tmux o escribir :
para obtener un mensaje de tmux.
Al ingresar el prefijo, tmux en sí no cambiará de ninguna manera. Entonces, si ingresa ctrl+b
y nada cambia, eso no significa necesariamente que lo haya escrito mal.
Atajos de Tmux
Ejecute lo siguiente desde la CLI:
DOMINIO | DESCRIPCIÓN |
---|---|
tmux | Inicie Tmux |
tmux -V | Verifique la versión de Tmux |
tmux list-keys | less | Listar todos los comandos |
tmux ls | Mostrar todas las sesiones |
tmux info | Mostrar cada sesión, ventana y panel |
tmux a | (Re)adjuntar a la sesión creada más recientemente |
man tmux | Mostrar manual completo de Tmux |
Ejecute estos comandos dentro de una sesión de Tmux:
DOMINIO | DESCRIPCIÓN |
---|---|
q | Después de que la ejecución de un comando genere una pantalla, ciérrela. Por ejemplo, Ctrl+b+? muestra una lista y al presionar una sola q tecla se cierra la lista. |
Ctrl+b<command> | Enviar <command> a Tmux en lugar de Shell CLI. Para cada uno de los siguientes elementos, reemplácelo <command> con la clave proporcionada. |
Ctrl+l | Borrar el contenido de la consola (la “l” es “L” en minúsculas) |
General<command> | |
? :list-keys | Listar todos los comandos |
: | Ingrese al modo de comando (muestre un mensaje para comandos Tmux detallados) |
t | Mostrar tiempo de computadora |
ventanas<command> | |
c | Crear nueva ventana |
, | Cambiar el nombre de la ventana actual |
p | Navegar a la ventana anterior |
n | Navegar a la siguiente ventana |
w | Ventanas de lista (que puede seleccionar y expandir/contraer con las teclas de flecha) |
Paneles<command> | |
% | Dividir verticalmente |
" | Dividir horizontalmente |
→ (tecla de flecha derecha) | Cambiar al panel derecho |
← (tecla de flecha izquierda) | Cambiar al panel izquierdo |
↑ (tecla de flecha hacia arriba) | Cambiar al panel superior |
↓ (tecla de flecha hacia abajo) | Cambiar al panel inferior |
Sesiones<command> | |
d | Desconectarse de la sesión |
Desplácese hacia abajo para ver comandos específicos en detalle.
Adjuntar, separar y matar
Como se mencionó, una mejor manera de salir de una sesión sin salirse de todo es ir a detach
la sesión. Para hacer esto, primero ingresa el comando de prefijo y luego el acceso directo de separación de d
:
ctrl+b d
Esto desconectará la sesión actual y lo devolverá a su shell normal.
Sin embargo, el hecho de que esté fuera no significa que su sesión esté cerrada. La sesión independiente todavía está disponible, lo que le permite continuar donde lo dejó. Para comprobar qué sesiones están activas puedes ejecutar:
tmux ls
Cada una de las sesiones de tmux tendrá un número asociado en el lado izquierdo (cero indexado según lo previsto por la naturaleza) . Este número se puede utilizar para adjuntar y volver a esta misma sesión. Por ejemplo, para la sesión número 1 escribiríamos:
tmux attach-session -t 1
o podemos ir a la última sesión creada con:
tmux a #
Sesiones Tmux
Crear nueva sesión
DOMINIO | DESCRIPCIÓN |
---|---|
tmux tmux new tmux new-session | Crear nueva sesión desde CLI |
Ctrl+b :new | Crear una nueva sesión desde dentro de Tmux |
tmux new -s sess0 | Crear nueva sesión llamadasess0 |
Ctrl+b :new sess0 | Crear una nueva sesión sess0 desde dentro de Tmux |
Listar todas las sesiones
DOMINIO | DESCRIPCIÓN |
---|---|
tmux ls tmux list-sessions | Mostrar todas las sesiones |
Ctrl+b s | Mostrar todas las sesiones desde dentro de Tmux |
Operaciones en sesiones
DOMINIO | DESCRIPCIÓN |
---|---|
tmux a tmux at tmux attach tmux attach-session | Adjuntar a la sesión creada más recientemente |
tmux a -t s0 | Adjuntar a la sesión s0 |
Ctrl+b<command> | |
$ | Cambiar nombre de sesión |
d | Desconectarse de la sesión |
w | Vista previa de sesión y ventana |
( | Ir a la sesión anterior |
) | Pasar a la siguiente sesión |
Sesiones de nombres
Ahora podríamos simplemente confiar en los números de sesión, pero nos haría la vida mucho más fácil si le damos nombres a nuestras sesiones según su uso previsto.
Para iniciar una nueva sesión con un nombre específico simplemente podemos hacer lo siguiente:
tmux new -s [nombre de la sesión]
Con las sesiones con nombre implementadas, ahora, cuando lo hacemos, tmux ls
vemos el nombre de la sesión. Asimismo, luego podemos adjuntar una sesión usando el nombre:
tmux a -t [nombre de la sesión]
Tenga en cuenta que lo sustituimos a
para attach-session
ayudar a ahorrar en pulsaciones de teclas.
Terminar (matar) sesiones
DOMINIO | DESCRIPCIÓN |
---|---|
tmux kill-ses tmux kill-session | Matar la última sesión activa |
tmux kill-ses -t s0 | Matar sesión nombrada s0 |
tmux kill-ses -a | Mata todas las sesiones excepto la actual. |
tmux kill-ses -a -t s0 | Mata todas las sesiones excepto s0 |
Ventanas tmux
DOMINIO | DESCRIPCIÓN |
---|---|
tmux new -s s1 -n w2 | Crear nueva sesión s1 y ventana w2 |
Ctrl+b<command> | |
c | Crear nueva ventana |
, | Cambiar nombre de ventana activa |
& | Cerrar la ventana activa (Tmux puede solicitarle que confirme su acción con y/n ) |
p | Navegar a la ventana anterior |
n | Navegar a la siguiente ventana |
w | Ventanas de lista (que puede seleccionar y expandir/contraer con las teclas de flecha) |
:swapw -s 0 -t 2 | Intercambiar ventanas 0 y 2(swapw is short for swap-window) |
:swapw -t -1 | Mover la ventana activa hacia la izquierda una posición |
Paneles Tmux
Administrar paneles
En un entorno de escritorio GUI, tiene ventanas. En tmux, tienes paneles. Al igual que las ventanas en una GUI, estos paneles le permiten interactuar con múltiples aplicaciones y, de manera similar, se pueden abrir, cerrar, cambiar de tamaño y mover.
A diferencia de un escritorio GUI estándar, estos paneles están en mosaico y se administran principalmente mediante accesos directos de tmux en lugar de un mouse (aunque se puede agregar funcionalidad de mouse ) . Para crear un nuevo panel, simplemente divide la pantalla horizontal o verticalmente.
Para dividir un panel horizontalmente:
ctrl+b "
Para dividir el panel verticalmente:
ctrl+b %
Puede dividir aún más los paneles utilizando la misma metodología. Por ejemplo, en la captura de pantalla anterior, la pantalla primero se dividió verticalmente usando ctrl+b %
y luego horizontalmente dentro del panel inferior usando ctrl+b
«.
Para pasar de un panel a otro, simplemente use el prefijo seguido de la tecla de flecha:
Ctrl+b [tecla de flecha]
Cambiar el tamaño de los paneles
Digamos que necesitamos un poco más de espacio para respirar para uno de nuestros paneles y queremos expandir el panel unas cuantas líneas. Para esto, ingresaremos al indicador de tmux:
Ctrl+b:
Desde allí podemos escribir resize-pane
seguido de una bandera de dirección: -U
arriba, -D
abajo -L
, izquierda y -R
derecha. La última parte es el número de líneas para moverlo.
Como ejemplo, si estamos en el panel superior y queremos expandirlo 2 líneas hacia abajo, haríamos lo siguiente:
ctrl+b :
resize-pane -D 2
Modo de copia Tmux
Puede copiar y pegar contenido de texto en Tmux en Modo Copiar. El búfer en Tmux es su portapapeles y buffer_0, buffer_1
, etc. corresponden a elementos del portapapeles copiados de una sesión de Tmux.
DOMINIO | DESCRIPCIÓN |
---|---|
Ctrl+b :setw -g mode-keys vi | Utilice claves vi en el búfer (vi: editor vim) |
Ctrl+b [ | Ingrese al modo de copia |
↑ | Desplazarse hacia arriba |
↓ | Desplácese hacia abajo |
q | Salir del modo de copia |
0 | Ir al principio de la línea |
ps | Ir al final de la línea |
g | Ir a la primera línea |
G | Ir a la última línea |
h | Mover el cursor hacia la izquierda |
l | Mover el cursor hacia abajo |
k | Mover el cursor hacia arriba |
I | Mover el cursor hacia la derecha |
b | Recorrer el contenido del texto hacia atrás, cursor en el primer carácter de cada palabra |
e | Atraviese el contenido del texto hacia adelante, cursor en el último carácter de cada palabra |
w | Recorrer el contenido del texto una palabra a la vez |
/ | Buscar hacia adelante |
? | Buscar hacia atrás |
n | Siguiente aparición de palabra clave |
N | Aparición anterior de palabras clave |
[Barra espaciadora] | Iniciar selección |
[Ingresar] | Copiar selección |
ESC | Selección clara |
Ctrl+b ] | Pegar selección |
Ctrl+b :show-buffer | Mostrar contenido del buffer_0 |
Ctrl+b :capture-pane | Copie todo el contenido visible del panel a un búfer |
Ctrl+b :list-buffers | Mostrar todos los buffers |
Ctrl+b :choose-buffer | Mostrar todos los buffers y pegar los seleccionados |
Ctrl+b :save-buffer buf.txt | Guardar el contenido del buffer enbuf.txt |
Ctrl+b :delete-buffer -b 1 | Borrarbuffer_1 |
Configuración de Tmux
Puede configurar Tmux a través del ~/.tmux.conf
archivo. Si no existe, créelo:
$ touch ~/.tmux.conf
Para recargar Tmux con la nueva configuración:
$ tmux source-file ~/.tmux.conf
Pulsaciones de teclas personalizadas
Agregue estos comandos para ~/.tmux.conf
modificar las teclas de función de Tmux. Cada comando abarca dos líneas. El comando de desvinculación desactiva la combinación de teclas predeterminada.
DOMINIO | DESCRIPCIÓN |
---|---|
unbind '"' bind - split-window -v | Cambie la combinación de teclas para dividir la ventana en dos paneles horizontales: reemplace Ctrl+b » predeterminado con Ctrl+b – (guión) |
unbind % bind | split-window -h | Cambie la combinación de teclas para dividir la ventana en dos paneles verticales: reemplace Ctrl+b % predeterminado con Ctrl+b | (tubería) |
unbind C-b | Reemplace la combinación de teclas de activación Ctrl+b con Ctrl+a |
Hacer que el modo de copia Tmux sea el predeterminado para las teclas vi
DOMINIO | DESCRIPCIÓN |
---|---|
setw -g mode-keys vi | Utilice claves vi en el buffer |
Personalización
Los siguientes comandos sirven para personalizar la barra de estado en la parte inferior de una ventana de Tmux:
DOMINIO | DESCRIPCIÓN |
---|---|
set -g status-justify [left|centre|right] | Alinea los nombres de las ventanas de Tmux hacia la izquierda/centro/derecha |
set -g status-left '...' | Reemplaza el nombre de la sesión actual con ‘…’ en la barra de estado |
setw -g window-status-format `#[fg=white,bg=black]#I` | Formatea los nombres de las ventanas de la siguiente manera: Formato de ventana predeterminado: Variables: : índice de ventana : nombre de sesión : nombre de ventana#I #S #W |
Para obtener instrucciones de formato detalladas: man tmux > /STYLES >
siga presionando la tecla «n» hasta llegar a la sección titulada «STYLES».
Para restablecer Tmux a la configuración predeterminada, elimine todas las líneas ~/.tmux.conf
y ejecute tmux kill-server
. Cierre todos los terminales CLI en ejecución, vuelva a abrir el terminal e inicie Tmux nuevamente.
Resumen de comandos primarios
Start new named session:
tmux new -s [session name]
Detach from session:
ctrl+b d
List sessions:
tmux ls
Attach to named session:
tmux a -t [name of session]
Kill named session:
tmux kill-session -t [name of session]
Split panes horizontally:
ctrl+b "
Split panes vertically:
ctrl+b %
Kill current pane:
ctrl+b x
Move to another pane:
ctrl+b [arrow key]
Cycle through panes:
ctrl+b o
Cycle just between previous and current pane:
ctrl+b ;
Kill tmux server, along with all sessions:
tmux kill-server
Preguntas frecuentes
¿Cómo se ingresan comandos en Tmux?
Puede ingresar comandos a través de la CLI con el prefijo tmux o ingresando a una sesión de Tmux y anteponiendo sus comandos con el activador Ctrl+b para comandos cortos y Ctrl+b+: (dos puntos) para comandos largos.
¿Cómo creo una sesión de Tmux?
Comando: tmux new
¿Cómo enumero todas las sesiones de Tmux?
Comando: tmux ls
¿Cómo cambio de pestaña en Tmux?
En una sesión de Tmux, Ctrl+bp o Ctrl+bn
¿Cómo uso Tmux con SSH?
1. Inicie una nueva sesión que contenga una ventana para cada instancia SSH.
2. Ejecute un comando SSH en cada ventana.
3. Cuando estés listo, desconéctate de la sesión.
Con la sesión SSH en segundo plano, puede utilizar el shell CLI para otros fines.
¿Por qué es útil Tmux?
Tmux puede ayudar a los usuarios a:
– Realizar procesamiento paralelo, como múltiples instancias SSH, web scraping, análisis de datos en tiempo real y depuración.
– Monitorear la asignación de recursos y el equilibrio de carga.
Si quieres saber mas de Tmux y Linux puedes tomar nuestro curso:
Aprende Linux desde 0 y prepara la Certificación LPIC-1.
Este curso empieza desde los inicios, enseñándote lo mas básico, acompañándote en cada paso y duda que tengas hasta llegar a los conocimientos necesarios para si gustas, puedas trabajar con Linux y rendir la certificación LPIC-1.
Me caracterizo por tener Mucha Practica en mis cursos, y este no es la excepción. Es más, te brindo Modelos de Exámenes de la certificación para que puedas practicar y ver lo que te espera al momento de rendir.
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 500.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma.
Empieza a aprender ya mismo y acompáñame en este increíble curso.
Lo que aprenderás:
- Automatizar Procesos en Linux con Bash
- Comandos de Linux desde lo básico hasta avanzado.
- Realizar Conexiones seguras con SSH desde Linux y Windows
- Certificarse en LPIC 1 Para tener mayor salida laboral
- Practicaras con modelos de exámenes REALES de la certificación LPIC 1
- Seguridad informática en Linux
- Redes en Linux
- Cómo realizar Tareas Administrativas
Inicia desde 0 en Linux. Prepara la Certificación LPIC-1 con todo el contenido Teórico, practica y modelos de Examen: https://achirou.com/certificacion-lpic-linux
No te detengas, sigue avanzando
La inteligencia de código abierto es un arte y una ciencia que evoluciona constantemente. Con más de 5000 herramientas recopiladas en este artículo, solo hemos arañado la superficie de las posibilidades infinitas que el OSINT ofrece. Al incorporar estas herramientas en tu caja de herramientas digital, te conviertes en un investigador más ágil y eficiente. Pero recuerda, con gran poder viene una gran responsabilidad; utiliza estas habilidades con ética y respeto por la privacidad. ¡Adelante, adéntrate en el fascinante mundo del OSINT y lleva tu capacidad de investigación al siguiente nivel!
Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera!
Universidad Hacking. Todo en Ciberseguridad. Curso Completo
Aprende Hacking Ético y Ciberseguridad sin necesitar conocimientos Previos. Practica Hacking Ético y Ciberseguridad aquí: https://achirou.com/universidad
El Hacking Ético y Ciberseguridad es Transversal a todo lo que sea Tecnología. Es decir, cualquier dispositivo inteligente, sea Celular, Computadora, o hasta hoy un Vehículo, debe haber Seguridad informática.
¿Esto que significa?
Que hoy más que nunca, se necesitan personas capacitadas en este rubro para trabajar.
Por esa razón cree esta formación profesional para compartirte mis conocimientos y experiencia en la materia y puedas iniciar en este mundo del Hacking Ético y Ciberseguridad.
Te voy a estar acompañando en el proceso de aprendizaje, donde si estas empezando desde 0, sin conocimientos previos, no es un impedimento ya que iniciaremos como si no supieras nada de la materia.
Y si sos una persona con conocimientos, podrás iniciar directamente en el nivel más avanzado o en el que tu elijas.
Como en todos mis cursos en udemy, tendrás muchísima practica para que materialices lo que vas aprendiendo.
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 500.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma.
Empieza a aprender ya mismo!
Recuerda que tienes Acceso de por vida al curso y recibirás las actualizaciones que se hagan sobre el mismo.
Lo que aprenderás
- Aprende Seguridad informática
- Te enseñare Hacking Ético
- Veremos Ciberseguridad
- La base principal del Hacking, Redes
- Esto es alternativo que puedes aprender, Programación (python)
- Necesitaras saber Python para, Hacking con Python
- Te enseñare Análisis de Malware, además haremos laboratorios, practicas y ejecutaremos Malware para que veas su comportamiento
- Te enseñare a reforzar tu Privacidad y Anonimato
- Aprenderás una de las herramientas mas populares por excelencia en el mundo del Hacking, Metasploit
- Es importante que aprendas Seguridad informática Mobile ya que usamos nuestro celular como una PC
- Veremos también el top 10 de Owasp Web
- Veremos también el top 10 de Owasp mobile
- Veremos también el top 10 de Owasp API
- Ante la demanda del mercado, te enseñare Seguridad informática para empresas
- Veras también la suit de herramientas de seguridad informática en un sistema operativo, Kali Linux
- Herramientas de hacking para el celular en Termux
- Seguridad informática en WordPress
- Análisis de trafico en Wireshark
Aprende Hacking Ético y Ciberseguridad sin necesitar conocimientos Previos. Practica Hacking Ético y Ciberseguridad aquí: https://achirou.com/universidad
Aprende con nuestros más de 100 cursos que tenemos disponibles para vos
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Sobre los autores
Álvaro Chirou
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes serguirme en mis redes:
Laprovittera Carlos
Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:
¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.