…без капли сожаления.
Всем привет! Много лет использовал screen (оконный менеджер терминала) во FreeBSD для работы в консоли. Удобно, знаете ли, зайти на сервер, вызывать screen -R, запустить обновление приложений, нажать Ctrl-A D и выйти из терминала. Исходя из моих потребностей, всё, что нужно от оконного терминала — это висеть где-то в фоне и восстанавливать окна при обрыве связи.
И с этим у screen проблемы — иногда screen -R не срабатывает и приходится вызывать screen -ls для просмотра всех сессий. Потом нужно подключиться к правильной сессии по числовому идентификатору. Это даже звучит как долгий и неудобный процесс.
Однажды мне окончательно это надоело, и я решил перейти на tmux (привет, Илья!).
На FreeBSD ставится элементарно:
[root@server]$ pkg install tmux
Updating FreeBSD-ports repository catalogue...
FreeBSD-ports repository is up to date.
Updating FreeBSD-ports-kmods repository catalogue...
FreeBSD-ports-kmods repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
tmux: 3.7b [FreeBSD-ports]
Number of packages to be installed: 1
The process will require 1 MiB more space.
Proceed with this action? [y/N]: y
[1/1] Installing tmux-3.7b...
[1/1] Extracting tmux-3.7b: 100%
По умолчанию перед каждой командой надо нажимать Ctrl-B, но я уже привык к другому, поэтому пишем небольшой конфиг (~/.tmux.conf):
# Префикс теперь Ctrl-A
set -g prefix C-a
# История в 2500 строк
set-option -g history-limit 2500
# Выключаем старый префикс
unbind C-b
# Включаем новый
bind C-a send-prefix
# "C-A |" вертикальное разделение окон
bind | split-window -h -c "#{pane_current_path}"
# "C-A -" горизонтальное разделение
bind - split-window -v -c "#{pane_current_path}"
# Выключаем старые комбинации
unbind '"'
unbind '%'
Затем добавляем alias с названием tmux-restore в ваш ~/.bash_profile:
alias tmux-restore='tmux attach || tmux new'
На этом настройка завершена, с чем я вас и поздравляю.
На работе (а я нашёл работу!) я использую только tmux-restore и разделение окна по горизонтали. Такие дела.