notes/tmux/tmux.md

5.9 KiB
Raw Blame History

TMUX

Установка

tmux

apt-get install tmux

TPM (Tmux Plugin Manager)

https://github.com/tmux-plugins/tpm

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

добавить в конфиг ~/.tmux.conf

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

Dracula Theme

https://draculatheme.com/tmux


Конфиг (пользовательский / системный)

~/.tmux.conf
/etc/tmux.conf

Включить поддержку мыши (в конфиг добавить)

set -g mouse on

Запуск (без параметров будет создана сессия 0)

tmux

новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.

tmux new -s session1

Окна
Ctrl+b с - новое окно
Ctrl+b w - список окон. переключиться курсором вверх-вниз
Ctrl+b & - закрыть окно, нужно подтвердить y
Ctrl+b { - переместить активное окно влево по кругу

Переключение
Ctrl+b n - следующее окно
Ctrl+b p - предыдущее окно
Ctrl+b 0 - переключиться на номер окна

Деление окна
Ctrl+b " - деление окна горизонтально или tmux split-window -h
Ctrl+b % - деление окна вертикально или tmux split-window -v
Ctrl+b стрелки - переход между панелей, либо режим мыши
Ctrl+b+стрелки - изменение размеров панелей или Ctrl+b Ctrl+стрелки. Или мышью - потянуть за край панели.
Ctrl+b z - zoom, выделить окно, повторное нажатие вернёт обратно Ctrl+b space - смена разделения на предопределённые расположения Ctrl+d - закрыть текущее окно Ctrl+b x - закрытие окон, нужно подтвердить y или exit

Сессии
Ctrl+b d - отключение от сессии или tmux detach
tmux ls - список сессий

Подключиться к работающей сессии
tmux attach - подключение к сессии, либо к единственной, либо последней созданной
tmux attach -t session1 - подключение к сессии session1
Ctrl+b s - выбрать сессию
tmux kill-session -t session1 - завершение сессии
tmux kill-server - завершить все сессии


tmux list-commands - cписок поддерживаемых команд

Разделяемая сессия между 2-мя пользователями

Чтобы несколько пользователей могли подключиться к одной сессии tmux, можно выполнить следующие шаги:

  • создать общую группу и добавить пользователей в эту группу
su -
TMUX_GROUP=tmuxgroup
groupadd $TMUX_GROUP
usermod -aG $TMUX_GROUP user1
usermod -aG $TMUX_GROUP user2
  • создать директорию с битом setgid, в которой будет создаваться сокет разделяемой сессии tmux
mkdir /var/tmux
chgrp $TMUX_GROUP /var/tmux
chmod g+ws /var/tmux
  • создать общую сессию
tmux -S /var/tmux/shared-session
  • второй пользователь может подключиться к созданной сессии
tmux -S /var/tmux/shared-session attach

Заблокировать пользователя после завершения работы

После завершения совместной работы можно заблокировать учётную запись второго пользователя, чтобы не было возможности несанкционированного подключения к узлу.

usermod -L user2

Чтобы разблокировать пользователя, вводим:

usermod -U user2

Текущий статус блокировки учётной записи

da2001@bastion:~ $ sudo passwd -S tmuxuser
tmuxuser L 04/08/2024 0 99999 7 -1
da2001@bastion:~ $ sudo passwd -S da2001
da2001 P 04/04/2022 0 99999 7 -1
da2001@bastion:~ $ 

где

  • L - учётная запись заблокирована
  • P - учётная запись разблокирована