tmux is a terminal multiplexer
tmux
это терминальный мультиплексор, который также является источником его названияt(terminal) mux(multiplexer)
, вы можете управлять несколькими терминалами на одном экране!
существуетmac
выгода отiterm2, вы довольно удобно управляете несколькими окнами терминала. Но в линуксе,iterm2
Это вне досягаемости кнута,tmux
преимущества раскрываются.
Насколько я понимаю,tmux
Много преимуществ на Linux или Mac
-
Разделенный экран
Истинный,
iterm2
Разделение экрана также возможно, ноiterm2
Один недостаток в том, чтоiterm for Mac
. если вместеiterm2
а такжеssh
если,iterm2
Разделение экрана требует постоянногоssh <server>
, следствием этого является наличие нескольких пользовательских подключений, использующихwho
Команда для проверки количества зарегистрированных пользователей. -
attach
attach
Может играть роль в защите сцены не из-заssh timeout
И потерянная рабочая среда. -
Простое управление и возможность настройки
Вы можете использовать сочетания клавиш для быстрого переключения между несколькими окнами, панелями, вставки и копирования и бесконечной прокрутки.
Что касается того, насколько это красиво, то это отражено в настраиваемом стиле строки состояния, где вы можете установить стиль, расположение, стиль текущего окна и насыщенность информацией строки состояния. Напримерgpakosz/.tmuxКонфигурация
В этой главе будут рассмотрены следующие
- Как установить на contos/mac
tmux
- Автоматизируйте массовые установки с помощью ansible
tmux
-
tmux
Общие операции
- Оригинальный адрес:Мультиплексирование окон и tmux github
- Серия статей:Примечания по эксплуатации и обслуживанию сервера
Установить
Если вы на Mac, вы можете использоватьbrew install tmux
Установите TMUX, просто и быстро.
Но вы на Centos, если вы используете напрямуюyum
Для установки ПО будет установлена очень старая версия, и многие полезные функции будут недоступны. потом напрямую черезисходный код tmuxЭто хорошая идея, чтобы скомпилировать и установить его самостоятельно
# 安装软件依赖
$ yum install -y gcc automake libevent-devel ncurses-devel glibc-static
# 下载源代码
$ git clone git@github.com:tmux/tmux.git
# 切换到 2.8 版本
$ git checkout 2.8
$ cd tmux
# 编译源码
$ sh autogen.sh && ./configure && make
# 查看版本号
$ ./tmux -V
tmux 2.8
Автоматизируйте установку с помощью ansible
Использование исходного кода для компиляции и установки слишком тривиально и подвержено ошибкам, и может потребоваться установка на несколько серверов.tmux
, в этом случае используйтеansible
Выполнение автоматической установки является хорошим вариантом.оansible
Обратитесь к этой серии статейИспользуйте ansible для автоматизированной эксплуатации и обслуживания.
$ git clone git@github.com:shfshanyue/ansible-op.git
# 一次性给多服务器上安装 tmux
$ ansible-playbook -i hosts tmux.yml
tmux
Конфигурация этой доступной роли находится вмоя конфигурация tmuxначальство. Файл конфигурации выглядит следующим образом
# 安装依赖软件
- name: prepare
yum:
name: "{{item}}"
with_items:
- gcc
- automake
- libevent-devel
# 字符终端处理库
- ncurses-devel
- glibc-static
# 下载 tmux 源文件
- name: install tmux
git:
repo: https://github.com/tmux/tmux.git
dest: ~/Documents/tmux
version: 2.8
- name: make tmux
shell: sh autogen.sh && ./configure && make
args:
chdir: ~/Documents/tmux/
# 使 tmux 全局可执行
- name: copy tmux
copy:
src: ~/Documents/tmux/tmux
dest: /usr/bin/tmux
remote_src: yes
mode: 0755
# 使用我的配置文件
- name: clone config file
when: USE_ME
git:
repo: https://github.com/shfshanyue/tmux-config.git
dest: ~/Documents/tmux-config
- name: copy config file
copy:
src: ~/Documents/tmux-config/.tmux.conf
dest: ~/.tmux.conf
remote_src: yes
- name: delete tmux-config
file:
name: ~/Documents/tmux-config
state: absent
быстрый старт
период, термин
-
server
содержит несколькоsession
-
session
содержит несколькоwindow
-
window
похожий наiterm2
изTab
, в том числе несколькоpane
, следующий китайский будет переведен как окно -
pane
похожий наiterm2
изPane
, следующий китайский язык будет переведен на панель
запускать
# 新建一个 tmux session
$ tmux
Разделенный экран
существуетtmux
Используйте сочетания клавиш в средеprefix %
а такжеprefix "
полный разделенный экран
Посмотреть все ярлыки
prefix ?
tmux высокочастотный режим
Отправить ключ префикса на терминал
Я привык к<Crtl-s>
Чтобы быть ключом префикса, префикс по умолчанию устанавливается как<Ctrl-b>
.send-prefix
представляет отправку префиксного ключа на терминал,send-prefix -2
Представляет новую комбинацию клавиш, представляющую ключ префикса.
# 以下命令直接在 tmux 命令模式执行,或者加关键字 `tmux` 在 shell 中执行,或者写入配置文件 ~/.tmux.conf 中生效
# `prefix :` 可以进入 tmux 命令模式
$ set -g prefix2 C-s
$ bind C-s send-prefix -2
держите ssh подключенным
каждый раз новыйsession
Принесите свое имя, когдаattach
.
небольшая командаdetach
, ярлык по умолчанию<prefix> d
, сначала будетdetach
сбросить токsession
.
префикс по умолчанию
<Ctrl-b>
$ tmux new -s shanyue
# 或者使用快捷键 prefix + d
$ tmux detach
$ tmux attach -t shanyue
Быстрое перемещение панелей
Команда перемещения панелиselect-pane
, который можно настроить какvim
команда перемещения.
# 以下命令直接在 tmux 命令模式执行,或者加关键字 `tmux` 在 shell 中执行,或者写入配置文件 ~/.tmux.conf 中生效
# `prefix :` 可以进入 tmux 命令模式
# bind 绑定快捷键
# -r 可重复按键
# select-pane 选择面板
$ bind -r h select-pane -L
$ bind -r l select-pane -R
$ bind -r j select-pane -D
$ bind -r k select-pane -U
Среди них параметр-r
Представляет повторяющиеся ключи, такие какprefix r r
выражатьprefix r, prefix r
. Время нажатия клавиши должно быть передано черезrepeat-time
установить, как правило, 500 мс.
Кроме того, вы также можете включить поддержку мыши, чтобы быстро перемещать панель с помощью мыши.
Переименовать имя окна
rename-window
Для команды переименовать имя окна используется клавиша быстрого доступа по умолчаниюprefix ,
Но есть небольшая проблема, каждый раз после переименования имени окна, ввод нескольких пробелов будет автоматически переименовывать его снова, и мой труд снова будет уничтожен...
Вам нужно настроить следующие две конфигурации, чтобы отключить их, и, наконец, вы можете переименовать их.
# 以下命令直接在 tmux 命令模式执行,或者加关键字 `tmux` 在 shell 中执行,或者写入配置文件 ~/.tmux.conf 中生效
# `prefix :` 可以进入 tmux 命令模式
set -wg allow-rename off
set -wg automatic-rename off
Включить поддержку мыши
$ tmux set -g mouse on
По умолчанию поддержка мыши отключена, после включения мышь поддерживает копирование, прокрутку, переключение панелей, переключение окон и изменение размера.
Функция поддержки мыши очень мощная, до сих пор она успешно создавалаiterm2
. Но мне не очень нравится режим мыши, поэтому я его запретил.
Более того, после включения поддержки мыши любой может управлять моим терминалом, и при этом нет никакой силы.
сохранить текущий путь
Недавно открытыйpane
а такжеwindow
, сохранить текущий путь. Добавить аргументы к предыдущим командам-c
, указывающий путь к новому окну или панели.
Команда открытия новой панелиsplit-window
# 以下命令直接在 tmux 命令模式执行,或者加关键字 `tmux` 在 shell 中执行,或者写入配置文件 ~/.tmux.conf 中生效
# `prefix :` 可以进入 tmux 命令模式
bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
развернуть текущую панель
Командаtmux resize-pane -Z
, клавиша быстрого доступа по умолчаниюprefix z
. Для получения более подробной информации нажмитеprefix z
Войдите в полноэкранный режим, когда закончите, нажмите еще раз, чтобы возобновить. Довольно крутая функция.
кувырок
первое использованиеtmux
когда используешьwebpack
, выводится много, а полезные сообщения об ошибках затираются. В этот момент очень важно повернуть экран вверх. Теперь, чтобы сказатьtmux window
Следующие два режима,
-
default-mode
только что вошел
tmux
Режим по умолчанию. -
copy-mode
согласно с
prefix [
клавиша для входа в этот режим, аналогичныйvi(emacs)
изnormal mode
, поддерживает копирование, вставку, поиск и перелистывание страниц. конкретноvi
ещеemacs
Его можно обнаружить в соответствии со следующей командой, указывающей на просмотр глобальных настроек окна.mode-keys
, по умолчанию будетvi
, если нет, установите его вvi
бар~$ tmux show-window-options -g mode-keys
а также
vi
Команда та же, например, страница вверх и вниз (половина экрана) может использоватьсяC-d
так же какC-u
, конечно, вы также можете использоватьhjkl
.
Кроме того, вы также можете включить поддержку мыши и использовать колесо прокрутки для поворота экрана.
скопировать и вставить
сказано вышеcopy-mode
, а затем скопировать и вставить. Войтиcopy-mode
назад,v
начать выбирать,y
скопировать и выйтиcopy-mode
. использоватьprefix ]
вставить.
Копировать и вставлять в Linux — самая важная и практичная функция.
v & y
Для пользовательской конфигурации конфигурация выглядит следующим образом
bind -t vi-copy v begin-selection
bind -t vi-copy y copy-selection
Операция копирования сохранит содержимое вbuffer
, ознакомьтесь со следующими командами, чтобы иметь возможность более эффективно работать с буфером
$ tmux list-buffers # 列出所有 buffer
$ tmux show-buffer -b [name] # 显示最近 buffer,也可指定 buffer name
$ tmux choose-buffer    # 进入选择 buffer 界面,更加灵活
Кроме того, вы также можете включить поддержку мыши и использовать мышь для выделения текста.
Найти ключевые слова
с момента входаcopy-mode
,знакомыйvi
друзья должны знать, что поиск/
а также?
.
Быстро найти окно
Предположим, вы создали несколько новых окон и вам нужно быстро найти определенное окно.Хотя вы знаете содержимое этого окна, вы забыли номер окна.Как решить эту проблему?
Команда, которая имеет хорошее решение, этоfind-window
, лучше использовать сочетания клавиш по умолчаниюprefix f
. Введите ключевое слово содержимого окна, вы можете быстро найти окно, но есть небольшой недостаток, т.Не могу найти панель!
Last but not least
человек tmux!**Недостаточно быть опытным, не читая документацию, и недостаточно быть опытным, не читая исходный код. ** Поэтому обычно вам нужно читать больше документов и больше команд.
резюме
В этой главе вы сможете научиться использовать tmux на сервере для одновременного управления несколькими окнами, а в сочетании с использованием vim вы сможете работать на сервере в той мере, в какой хотите. Для использования, настройки и плагинов vim обратитесь к предыдущей главе.vim быстрый запуск, настройка и плагины.
Добро пожаловать в публичный аккаунт ** Shanyuexing **, я буду регулярно делиться некоторыми статьями о интерфейсе, бэкэнде, эксплуатации и обслуживании, а также будут ежедневные обзоры и сводки о технологиях и жизни, добро пожаловать, чтобы обратить внимание на биржи.