mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-11-23 14:17:02 +03:00
243 lines
7.0 KiB
Markdown
243 lines
7.0 KiB
Markdown
|
---
|
||
|
category: tool
|
||
|
tool: tmux
|
||
|
contributors:
|
||
|
- ["mdln", "https://github.com/mdln"]
|
||
|
translators:
|
||
|
- ["Ferran Pelayo", "https://github.com/ferranpm"]
|
||
|
filename: LearnTmux.txt
|
||
|
lang: es-es
|
||
|
---
|
||
|
|
||
|
[tmux](http://tmux.sourceforge.net) permite crear, controlar y acceder a
|
||
|
multiples terminales desde una sola ventana. Puede desconectarse una sesión de
|
||
|
la ventana, seguir corriendo en segundo plano y volver a conectar otra ventana
|
||
|
más tarde.
|
||
|
|
||
|
|
||
|
```
|
||
|
|
||
|
tmux [command] # Correr un comando de tmux
|
||
|
# 'tmux' sin comando crea una nueva sesión.
|
||
|
|
||
|
new # Crear una nueva sesión
|
||
|
-s "Session" # Crear una sesión con nombre
|
||
|
-n "Window" # Crear una ventana con nombre
|
||
|
-c "/dir" # Empezar en el directorio "/dir"
|
||
|
|
||
|
attach # Atar la ventana a la ultima sesión iniciada
|
||
|
-t "#" # Atar la ventana a la sesión "#"
|
||
|
-d # Desatar la ventana de la sesión
|
||
|
|
||
|
ls # Listar las sesiones abiertas
|
||
|
-a # Listar todas las sesiones abiertas
|
||
|
|
||
|
lsw # Listar ventanas
|
||
|
-a # Listar todas las ventanas
|
||
|
-s # Listar todas las ventanas de la sesión
|
||
|
|
||
|
lsp # Listar paneles
|
||
|
-a # Listar todos los paneles
|
||
|
-s # Listar todos los paneles de la sesión
|
||
|
-t # Listar paneles de la aplicación en el target
|
||
|
|
||
|
kill-window # Eliminar la ventana actual
|
||
|
-t "#" # Eliminar la ventana "#"
|
||
|
-a # Eliminar todas las ventanas
|
||
|
-a -t "#" # Eliminar todas las ventanas menos la "#"
|
||
|
|
||
|
kill-session # Eliminar la sesión actual
|
||
|
-t "#" # Eliminar la sesión "#"
|
||
|
-a # Eliminar todas las sessiones
|
||
|
-a -t "#" # Eliminar todas las sessiones menos la "#"
|
||
|
|
||
|
```
|
||
|
|
||
|
|
||
|
### Atajos de teclado
|
||
|
|
||
|
Para controlar una sesión atada se usa la combinación llamada 'Prefijo' + atajo.
|
||
|
|
||
|
```
|
||
|
----------------------------------------------------------------------
|
||
|
(C-b) = Ctrl + b # 'Prefijo' por defecto requerido para usar los atajos
|
||
|
|
||
|
(M-1) = Meta + 1 -o- Alt + 1
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
? # Listar todos los atajos de teclado
|
||
|
: # Insertar un comando de tmux
|
||
|
r # Forzar refresco gráfico del cliente
|
||
|
c # Crear una nueva ventana
|
||
|
|
||
|
! # Quitar el panel actual de la ventana
|
||
|
% # Dividir el panel actual en dos (derecha e izquierda)
|
||
|
" # Dividir el panel actual en dos (arriba y abajo)
|
||
|
|
||
|
n # Cambiar a la siguiente ventana
|
||
|
p # Cambiar a la ventana anterior
|
||
|
{ # Cambiar el panel por el panel anterior
|
||
|
} # Cambiar el panel por el siguiente panel
|
||
|
|
||
|
s # Seleccionar y atar el cliente a una sesión distinta
|
||
|
de forma interactiva
|
||
|
w # Seleccionar una ventana de forma interactiva
|
||
|
0 to 9 # Seleccionar una ventana (del 0 al 9)
|
||
|
|
||
|
d # Desatar el cliente actual de la sesión
|
||
|
D # Escojer un cliente a desatar
|
||
|
|
||
|
& # Eliminar la ventana actual
|
||
|
x # Eliminar el panel actual
|
||
|
|
||
|
Up, Down # Cambiar al panel de arriba, debajo, izquierda o derecha
|
||
|
Left, Right
|
||
|
|
||
|
M-1 to M-5 # Ordenar los paneles
|
||
|
|
||
|
C-Up, C-Down # Dimensionar el panel actual en pasos de una celda
|
||
|
C-Left, C-Right
|
||
|
|
||
|
M-Up, M-Down # Dimensionar el panel actual en pasos de cinco celdas
|
||
|
M-Left, M-Right
|
||
|
|
||
|
```
|
||
|
|
||
|
|
||
|
### Configurar ~/.tmux.conf
|
||
|
|
||
|
El fichero tmux.conf se puede configurar para establecer unas opciones por
|
||
|
defecto, igual que .vimrc o init.el para vim o emacs.
|
||
|
|
||
|
```
|
||
|
# Ejemplo tmux.conf
|
||
|
# 2014.10
|
||
|
|
||
|
|
||
|
### General
|
||
|
###########################################################################
|
||
|
|
||
|
# Activar UTF-8
|
||
|
setw -g utf8 on
|
||
|
set-option -g status-utf8 on
|
||
|
|
||
|
# Limite del historico de comandos
|
||
|
set -g history-limit 2048
|
||
|
|
||
|
# Index Start
|
||
|
set -g base-index 1
|
||
|
|
||
|
# Ratón
|
||
|
set-option -g mouse-select-pane on
|
||
|
|
||
|
# Forzar volver a cargar el fichero de configuración
|
||
|
unbind r
|
||
|
bind r source-file ~/.tmux.conf
|
||
|
|
||
|
|
||
|
### Atajos de teclado
|
||
|
###########################################################################
|
||
|
|
||
|
# Quitar C-b como prefijo por defecto
|
||
|
unbind C-b
|
||
|
|
||
|
# Establecer ` como nuevo prefijo
|
||
|
set-option -g prefix `
|
||
|
|
||
|
# Volver a la ventana anterior cuando el prefijo se pulsa dos veces
|
||
|
bind C-a last-window
|
||
|
bind ` last-window
|
||
|
|
||
|
# Intercambiar entre C-a y ` como prefijo pulsando F11/F12
|
||
|
bind F11 set-option -g prefix C-a
|
||
|
bind F12 set-option -g prefix `
|
||
|
|
||
|
# Preferencias de los atajos
|
||
|
setw -g mode-keys vi
|
||
|
set-option -g status-keys vi
|
||
|
|
||
|
# Mover entre paneles con atajos de vim
|
||
|
bind h select-pane -L
|
||
|
bind j select-pane -D
|
||
|
bind k select-pane -U
|
||
|
bind l select-pane -R
|
||
|
|
||
|
# Cambiar/Saltar de ventana
|
||
|
bind e previous-window
|
||
|
bind f next-window
|
||
|
bind E swap-window -t -1
|
||
|
bind F swap-window -t +1
|
||
|
|
||
|
# Divisiones de paneles
|
||
|
bind = split-window -h
|
||
|
bind - split-window -v
|
||
|
unbind '"'
|
||
|
unbind %
|
||
|
|
||
|
### Tema de colores
|
||
|
###########################################################################
|
||
|
|
||
|
# Barra de estado
|
||
|
set-option -g status-justify left
|
||
|
set-option -g status-bg black
|
||
|
set-option -g status-fg white
|
||
|
set-option -g status-left-length 40
|
||
|
set-option -g status-right-length 80
|
||
|
|
||
|
# Bordes de paneles
|
||
|
set-option -g pane-active-border-fg green
|
||
|
set-option -g pane-active-border-bg black
|
||
|
set-option -g pane-border-fg white
|
||
|
set-option -g pane-border-bg black
|
||
|
|
||
|
# Color de los mensajes
|
||
|
set-option -g message-fg black
|
||
|
set-option -g message-bg green
|
||
|
|
||
|
# Colores del estado de las ventanas
|
||
|
setw -g window-status-bg black
|
||
|
setw -g window-status-current-fg green
|
||
|
setw -g window-status-bell-attr default
|
||
|
setw -g window-status-bell-fg red
|
||
|
setw -g window-status-content-attr default
|
||
|
setw -g window-status-content-fg yellow
|
||
|
setw -g window-status-activity-attr default
|
||
|
setw -g window-status-activity-fg yellow
|
||
|
|
||
|
|
||
|
### UI
|
||
|
###########################################################################
|
||
|
|
||
|
# Notificaciones
|
||
|
setw -g monitor-activity on
|
||
|
set -g visual-activity on
|
||
|
set-option -g bell-action any
|
||
|
set-option -g visual-bell off
|
||
|
|
||
|
# Titulos de las ventanas
|
||
|
set-option -g set-titles on
|
||
|
set-option -g set-titles-string '#H:#S.#I.#P #W #T' # window number,program name,active (or not)
|
||
|
|
||
|
# Formato de la barra de estado
|
||
|
set -g status-left "#[fg=red] #H#[fg=green]:#[fg=white]#S#[fg=green] |#[default]"
|
||
|
|
||
|
# Mostrar estadisticas de rendimiento en la barra de estado
|
||
|
# Requiere https://github.com/thewtex/tmux-mem-cpu-load/
|
||
|
set -g status-interval 4
|
||
|
set -g status-right "#[fg=green] | #[fg=white]#(tmux-mem-cpu-load)#[fg=green] | #[fg=cyan]%H:%M #[default]"
|
||
|
|
||
|
```
|
||
|
|
||
|
|
||
|
### Referencias
|
||
|
|
||
|
[Tmux | Home](http://tmux.sourceforge.net)
|
||
|
|
||
|
[Tmux Manual page](http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1?query=tmux)
|
||
|
|
||
|
[Gentoo Wiki](http://wiki.gentoo.org/wiki/Tmux)
|
||
|
|
||
|
[Archlinux Wiki](https://wiki.archlinux.org/index.php/Tmux)
|
||
|
|
||
|
[Display CPU/MEM % in statusbar](https://stackoverflow.com/questions/11558907/is-there-a-better-way-to-display-cpu-usage-in-tmux)
|