Инструменты пользователя

Инструменты сайта


subjects:administration:tmux

Это старая версия документа!


tmux

tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Аналог screen.

Полезно
  • github.com/tmux/tmux/wiki/Getting-Started

Управление

Управление осуществляется через модификатор. По-умолчанию это: Ctrl+b, много где пишут сокращённо: C-b. Нажимается модификатор, а потом нужная комбинация.

Панели

Ctrl+b %Вертикальное разбиение
Ctrl+b "Горизонтальное разбиение
Ctrl+b Space4 предустановки (по очереди)
Ctrl+b стрелкаперейти на панель, находящуюся в стороне, куда указывает стрелка
Ctrl+b Ctrl+стрелкаизменить размер текущей панели
Ctrl+b oперейти на следующую панель
Ctrl+b ;переключаться между текущей и предыдущей панелью
Ctrl+b xзакрыть текущую панель

Окна

Ctrl+b cНовое окно
Ctrl+b 0…9Перейти в окно
Ctrl+b wПосмотреть окна
Ctrl+b ,переименовать текущее окно

Сессии

Ctrl+b sсписок рабочих сессий
Ctrl+b dотключится от текущей сессии
Ctrl+dотключение

Choosing sessions, windows and panes

There are two key bindings to enter tree mode:

  • Ctrl+b s starts showing only sessions and with the attached session selected;
  • Ctrl+b w starts with sessions expanded so windows are shown and with the current window in the attached session selected.

This is a list of the keys available in tree mode without pressing the prefix key:

Key Function
Enter Change the attached session, current window or active pane
Up Select previous item
Down Select next item
Right Expand item
Left Collapse item
x Kill selected item
X Kill tagged items
< Scroll preview left
> Scroll preview right
Ctrl+s Search by name
n Repeat last search
t Toggle if item is tagged
T Tag no items
Ctrl+t Tag all items
: Prompt for a command to run for the selected item or each tagged item
O Change sort field
r Reverse sort order
v Toggle preview
q Exit tree mode

Tree mode is activated with the choose-tree command.

Detaching other clients

:!: Принудительный разрыв соединений других клиентов:
Ctrl+b Shift+d → стрелками выбрать →Enter.

A list of clients is available by pressing C-b D (that is, C-b S-d).

This is a list of the keys in client mode without the movement and tagging keys that are the same as tree mode:

Key Function
Enter Detach selected client
d Detach selected client, same as Enter
D Detach tagged clients
x Detach selected client and try to kill the shell it was started from
X Detach tagged clients and try to kill the shells they were started from

Other than using client mode, the detach-client command has a -a flag to detach all clients other than the attached client.

Другое

Ctrl+b tчасы
Ctrl+b ?Справка по горячим клавишам

Режим копирования

Ctrl+b [войти в режим копирования
space – выделение; Enter – копирование
Ctrl+b ]вставить из внутреннего буфера обмена tmux

Режим копирования

Если вы хотите иметь возможность скопировать в системный буфер обмена, перед тем как выполнять действия мышкой зажмите Shift.

Кроме того, в tmux есть управление копированием и вставкой с помощью клавиш.

  • Ctrl+b [ либо Ctrl+b PageUp — для перехода в режим копирования.
  • space — для начала выделения. Где-то написано: Ctrl+пробел
  • Enter — для копирования. Где-то написано: Ctrl+w
  • PageUp / PageDownдля прокрутки.
  • q или Escдля выхода из режима копирования.
  • Ctrl+b ] — вставить текст из внутреннего буфера обмена.

Команды

Команды tmux для управления сессиями, которые вы можете использовать:

  • attach-session (attach) – подключиться к уже существующей сессии. В параметре необходимо передать опцию -t и идентификатор сессии;
  • detach-session (detach) – отключить всех клиентов (или переданного с помощью опции -t) от сессии, переданной в опции -s;
  • has-session – проверить существует ли сессия, аналогично, надо передать идентификатор сессии;
  • kill-server – остановить все запущенные сессии;
  • kill-session – завершить сессию переданную в параметре -t;
  • list-clients – посмотреть клиентов, подключенных к сессии -t;
  • list-sessions (ls) – вывести список всех запущенных сессий;
  • new-session – создать новую сессию, можно передать имя сессии в опции -s и стартовую директорию в опции -c;
  • rename-session – переименовать сессию, нужно передать идентификатор сессии и новое имя;
  • tmux ls – Посмотреть список сессий.
  • tmux at – Подключиться к существующей сессии.
  • tmux list-keys – Список горячих клавиш.

Запуск

tmux attach || tmux new

Сперва попытаться подключиться к уже существующему сеансу tmux, если он существует, а если такого ещё нет — создаёте новый.

Автозапуск

Чтобы автоматически запускать tmux, отредактируйте ~./bashrc.

Расшифровка условий

  • [ -z «$TMUX» ] — если сессия tmux
  • [ -n «$SSH_TTY» ] — если SSH
  • [ «$EUID» -ne 0 ] — если не root.
  • [ $- =~ i ] – test for interactive terminal to allow tools like Ansible to work.

Автозапуск на сервере

Для запуска tmux на удаленном сервере при входе в систему через SSH (и только SSH):

if [ -z "$TMUX" ] && [ -n "$SSH_TTY" ] && [ $- =~ i ]; then
    tmux attach-session -t ssh || tmux new-session -s ssh
    exit
fi

Необходимо проверять $SSH_TTY вместо $SSH_CONNECTION, что бы работал SFTP.

Автозапуск на Desktop

При любом входе:

if [ -z "$TMUX" ] && [ "$EUID" -ne 0 ] && [ $- =~ i ]; then
    tmux attach-session -t default || tmux new-session -s default
    exit
fi

Автозапуск на Linux (универсальный)

################################################################################
#tmux on start
P_NAME="$(ps -o comm= $PPID)"; # Название проги, запустившей терминал: $P_NAME
 
if [[ $- =~ i ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_TTY" ]]; then # SSH
	TMUX_SESSION="ssh $P_NAME"
	tmux attach-session -t $TMUX_SESSION || tmux new-session -s $TMUX_SESSION && exit
elif [[ $- =~ i ]] && [[ -z "$TMUX" ]] && [[ "$EUID" -ne 0 ]]; then # not root
	TMUX_SESSION="$P_NAME"
	#tmux at || tmux && exit
	tmux attach-session -t $TMUX_SESSION || tmux new-session -s "$TMUX_SESSION" && exit
fi
[[ -n "$TMUX" ]] && tmux ls # Вывод списка сессий
################################################################################

Конфигурация

~/.tmux.conf

Немного о статус баре tmux

Статус бар в tmux делится на две части: левую, и правую. В каждую из частей можно вывести желаемую информацию. Формат довольно простой. Используются специальные символы:

  • #(shell-command) - Любая внешняя команда
  • #[attributes] - Изменение цвета, или атрибута статус бара
  • #H - Имя хоста локального компьютера
  • #F - Текущий флаг окна
  • #I - номер текущего (активного) окна
  • #P - Список всех фреймов
  • #S - Имя сессии
  • #T - Заголовок текущего окна
  • #W - Имя текущего окна
  • ## - Символ решётка - ‘#’

Пример конфигурации

.tmux.conf
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
 
## set the default TERM
#set -g default-terminal "xterm"
#set -g default-terminal screen-256color
set -g default-terminal xterm
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g status-keys vi
set -g history-limit 10000
 
setw -g mode-keys vi
# Мышь
# До версии 2.1
#set -g mouse-resize-pane on
#set -g mouse-select-pane on
#set -g mouse-select-window on
#set -g mode-mouse on
# С версии 2.1
#setw -g mouse on
set -g mouse on
#
setw -g monitor-activity on
 
# Reload tmux config
bind r source-file ~/.tmux.conf
 
#
set-option -g allow-rename off # prevent window-status-format show very long path
set-option -g automatic-rename on
set-window-option -g automatic-rename on # rename window to reflect current program
set-option -g default-command bash
 
#
set -g display-time 1500 # Время в миллисекундах, сколько будут отображаться сообщения (в статусбаре к примеру)
 
# THEME
 
# The colors available to tmux are:
# * black, red, green, yellow, blue, magenta, cyan, white.
# * bright colors, such as brightred, brightgreen, brightyellow, brightblue, brightmagenta, brightcyan.
# * colour0 through colour255 from the 256-color set.
# * default
# * hexadecimal RGB code like #000000, #FFFFFF, similar to HTML colors.
#
# You can use [bg=color] and [fg=color] to adjust the text color and background within for status line text. This works on status-left and status-right.
 
# Настройки стутусбара
#set -g status-utf8 on
set -g status on
set -g status-interval 30
set -g status-position bottom # Позиция стутусбара
 
# Цвета статусбара
set -g status-fg white
set -g status-bg default
 
#
set -g status-left-length 40 # max-size
set -g status-left-fg yellow
set -g status-left-bg default
#set -g status-left '(#S) #[fg=green]#(whoami)#[fg=yellow]@#[fg=green]#H '
#set -g status-left '(#S)#[fg=white]:#[fg=red]#(tmux ls|wc -l)#[default] #[fg=green]#(whoami)#[fg=yellow]@#[fg=green]#H#[default]┇'
set -g status-left '#[bg=yellow,fg=black]#S#[fg=red,bg=white]#(tmux ls|wc -l)#[default] #[fg=green]#(whoami)#[fg=yellow]@#[fg=green]#H#[default]┇'
#
set -g status-right-length 30 # max-size
set -g status-right-fg green
set -g status-right-bg default
# set -g status-right ' #(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=yellow]%H:%M#[default] '
set -g status-right '#[fg=yellow]┇#[default]#(cut -d " " -f 1-3 /proc/loadavg)#[default]#[fg=black,bg=white,dim]%H:%M#[default]'
 
# Цвета активных окон
set-window-option -g window-status-current-fg black
set-window-option -g window-status-current-bg brightyellow
set-window-option -g window-status-current-attr bright
 
# Цвета заголовков окон - ГЛЮЧИТ
set-window-option -g window-status-fg blue
set-window-option -g window-status-bg white
set-window-option -g window-status-attr dim
 
# Цвета командной строки
set -g message-fg default
set -g message-bg default
set -g message-attr bright
#
subjects/administration/tmux.1683114351.txt.gz · Последние изменения: 2023/05/03 14:45 —

На главную страницу Обучение Wikipedia Тестирование Контакты Нашли ошибку? Справка

Записаться на занятия

Ошибка Записаться на занятия к репетитору

Телефоны:

  • +7 (910) 874 73 73
  • +7 (905) 194 91 19
  • +7 (831) 247 47 55

Skype: eduVdom.com

закрыть[X]
Наши контакты