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 **, я буду регулярно делиться некоторыми статьями о интерфейсе, бэкэнде, эксплуатации и обслуживании, а также будут ежедневные обзоры и сводки о технологиях и жизни, добро пожаловать, чтобы обратить внимание на биржи.