Шпаргалка по tmux

X clipboard integration

It is possible to copy a tmux selection to the X clipboard (and to X primary/secondary selections), and paste from the X clipboard into tmux. The following tmux config file snippet integrates the X clipboard/selection with the current tmux selection using the program :

# Emacs style
bind-key -T copy-mode y send-keys -X copy-pipe-and-cancel "xsel -i -p && xsel -o -p | xsel -i -b"
bind-key C-y run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
# Vim style
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel -i -p && xsel -o -p | xsel -i -b"
bind-key p run "xsel -o | tmux load-buffer - ; tmux paste-buffer"

Note that it may be necessary to unbind the previous window shortcut with for the latter to work.

could also be used for this purpose. Unlike xsel, it works better when printing a raw bitstream that does not fit the current locale. Nevertheless, it is neater to use xsel because xclip does not close after it has read from the tmux buffer. As such, tmux does not know that the copy task has completed, and continues to wait for xclip to terminate, thereby rendering tmux unresponsive. A workaround is to redirect to :

# Vim style
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -sel clip > /dev/null"
bind-key p run "xclip -o -sel clip | tmux load-buffer - ; tmux paste-buffer"

Urxvt middle click

Note: To use this, you need to enable mouse support

First, you will need to download the perl script and place it into urxvts perl lib:

You will also need to enable that perl script in your .Xdefaults:

~/.Xdefaults
...
*URxvt.perl-ext-common:		osc-xterm-clipboard
...

Next, you want to tell tmux about the new function and enable mouse support (if you have not already):

~/.tmux.conf
...
set-option -ga terminal-override ',rxvt-uni*:XT:Ms=\E]52;%p1%s;%p2%s\007'
set -g mouse on
...

That’s it. Be sure to end all instances of tmux before trying the new MiddleClick functionality.

While in tmux, Shift+MiddleMouseClick will paste the clipboard selection while just MiddleMouseClick will paste your tmux buffer.
Outside of tmux, just use MiddleMouseClick to paste your tmux buffer and your standard to copy.

Manage tmux Sessions

Sometimes even multiple windows and panes aren’t enough and you need to separate the layouts logically by grouping them into separate sessions. Open the command prompt with Prefix then , then start a new session:

Command Result
Prefix + ( Switch to the previous session
Prefix + ) Switch to the next session
Prefix + s Display an interactive session list
Prefix + d detach from the current session
Prefix + $ rename a session in tmux
Prefix + L Select the most recently used session (or the last session)
List all available sessions
Zoom in on the active pane. Press the same combination again to exit zoom mode
Destroy all sessions and kill all processes

Работа с сеансами

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

Для того, чтобы отключиться от текущего сеанса, используете сочетание Ctrl-b d. Если вы нажмете Ctrl-b D, tmux предложит выбрать сеанс, от которого вы хотите отключиться. Тем самым вы будете отключены от этого сеанса, но он продолжит работать в фоне.

Теперь, когда вы отключились от сеанса, вы можете вернуться к нему в любое время. Для того, чтобы подключиться к сеансу, вам нужно сначала узнать, какие сеансы работают, с помощью команды

В результате вы получите список работающих сеансов, который будет выглядеть примерно так

Для того, чтобы подключиться к этому сеансу, при запуске tmux нужно указать идентификатор сеанса:

Обратите внимание, идентификатор (первая колонка вывода команды ) указывается в параметре. Если вы предпочитаете, чтобы у сеансов были более значимые имена, можно создать следующий сеанс следующим образом

Если вы предпочитаете, чтобы у сеансов были более значимые имена, можно создать следующий сеанс следующим образом

Будет создан новый сеанс под названием “database”.

Можно также переименовать сущестувющий сеанс:

Теперь, когда вам потребуется подключиться к этому сеансу, запустите . Если вы начнете работать с несколькими сеансами, эта функция начнёт иметь значение.

На этом мы закончим знакомство с tmux. Конечно же, мы раскрыли лишь часть функций и возможностей программы, но этого достаточно, чтобы начать работу. Дальше дело за вами!

Requirements

In order for to work, there must be a program that store data in
the system clipboard.

macOS

reattach-to-user-namespace

Note: Some versions of macOS (aka OS X) have been reported to work
without . It doesn’t hurt to have it installed.

  • OS X 10.8: Mountain Lion – required
  • OS X 10.9: Mavericks – required
  • OS X 10.10: Yosemite – not required
  • OS X 10.11: El Capitan – not required
  • macOS 10.12: Sierra – required
  • macOS 10.14: Mojave — required
  • macOS 10.15: Catalina — not required

The easiest way to use with is use to
use the
plugin.

To use it manually, use:

# ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l $SHELL"

To enable this:

  1. Go into iTerm2’s preferences.

  2. Go to the «General» tab.

  3. Check «Applications in terminal may access clipboard»

  4. In , ensure is turned on:

    $ tmux show-options -g -s set-clipboard
    set-clipboard on
$ brew install reattach-to-user-namespace

MacPorts

$ sudo port install tmux-pasteboard

Linux

  • (recommended) or (for X).
  • from wl-clipboard (for Wayland)

If you have 1.5 or newer and are using , the y in
and mouse selection will work without . See the
man page entry for the option.

RedHat & CentOS

$ sudo yum install xsel # or xclip

clip.exe is shipped with Windows Subsystem for Linux.

Настройка оболочки: zsh

Установка Oh My Zsh

Для установки вставьте в терминал следующий код:

По завершению будет создан файл конфигурации .

В этом файле есть множество настроек, которые можно активировать и отключать. Их мы здесь рассматривать не станем, так как они выходят за тему статьи.

В своем файле я сделал следующие изменения:

Эта конфигурация вносит следующие изменения.

  • Устанавливает как .
  • Загружает плагины, включенные с Oh My Zsh.
  • Автоматически запускает .

Каждое из этих изменений описывается ниже.

Тема Oh My Zsh

Смена приведет к полному изменению внешнего вида диалогового окна. На выбор представлено огромное число разных тем. Можете посмотреть их на GitHub.

Чтобы сработало, этот код должен находиться в конце .

Плагины Zsh

Oh My Zsh содержит кучу всяких плагинов для расширения терминала. Одна из их функций  —  предоставление полезных сокращений для часто используемых команд. Не все плагины загружаются по умолчанию, так как не все требуются для каждой конфигурации, а загрузка их чрезмерного количества просто излишне замедлит запуск.

Лично я загружаю следующие.

  • → предоставляет полезные сокращения команд .
  • → упрощает использование transfer.sh.
  • → позволяет автоматически запускаться при открытии терминала.
  • → удобные сокращения команд.
  • → позволяет использовать предпочтительный поисковый движок из командной строки, открывая его в браузере. Я им пользуюсь нечасто.

Customizing tmux

Customizing tmux is as easy as editing a text file. tmux uses a file called to store its configuration. If you store that file as (Note: there’s a period as the first character in the file name. It’s a hidden file) tmux will pick this configuration file for your current user. If you want to share a configuration for multiple users (e.g. if you should feel the urge to start tmux as super user (please think about this carefully!)) you can also put your tmux.conf into a system-wide directory. The location of this directory will be different accross different operating systems. The man page () will tell you the exact location, just have a look at documentation for the parameter.

Less awkward prefix keys

Probably the most common change among tmux users is to change the prefix from the rather awkward to something that’s a little more accessible. Personally I’m using instead but note that this might interfere with bash’s “go to beginning of line” command. On top of the binding I’ve also remapped my Caps Lock key to act as Ctrl since I’m not using Caps Lock anyways. This allows me to nicely trigger my prefix key combo.

To change your prefix from to , simply add following lines to your tmux.conf:

Sane Split Commands

Another thing I personally find quite difficult to remember is the pane splitting commands. I mean, seriously? to split vertically and to split horizontally? Who’s supposed to memorize that? I find it helpful to have the characters as a visual representation of the split, so I chose and for splitting panes:

Easy Config Reloads

Since I’m experimenting quite often with my tmux.conf I want to reload the config easily. This is why I have a command to reload my config on :

Fast Pane-Switching

Switching between panes is one of the most frequent tasks when using tmux. Therefore it should be as easy as possible. I’m not quite fond of triggering the prefix key all the time. I want to be able to simply say to go where I want to go (remember: is for , which is usually your key). With this modification I can simply press to go to the left pane (and other directions respectively):

Mouse mode

Although tmux clearly focuses on keyboard-only usage (and this is certainly the most efficient way of interacting with your terminal) it can be helpful to enable mouse interaction with tmux. This is especially helpful if you find yourself in a situation where others have to work with your tmux config and naturally don’t have a clue about your key bindings or tmux in general. Pair Programming might be one of those occasions where this happens quite frequently.

Enabling mouse mode allows you to select windows and different panes by simply clicking on them. I’ve found that this might mess a little bit with simply selecting text in your terminal using the mouse. You might experience the same, depending on your environment. So you should consider if this configuration is something that’s worth it for your use case:

Update for tmux 2.1:
As Jon Lillie pointed out in the comments, mouse mode has been . Once you are on tmux 2.1 (or later) you can activate the new mouse mode with a single command:

The new mode is a combination of all the old mouse options and fixes the text selection issues as well.

Stop renaming windows automatically

I like to give my tmux windows custom names using the key. This helps me naming my windows according to the context they’re focusing on. By default tmux will update the window title automatically depending on the last executed command within that window. In order to prevent tmux from overriding my wisely chosen window names I want to suppress this behavior:

Обработка нескольких сессий

Давайте откроем другое окно терминала и начнем новое Сессия под названием «Компьютерщик-2»:

tmux new -s geek-2

На этой сессии мы начнем :

dmesg -w

Теперь у нас есть наш оригинальный «Компьютерщик-1» сеанс, и новый называется «Компьютерщик-2».

Строка состояния показывает нам, что этот сеанс называется «Geek-2», и у него есть одно окно, которое работает ,

Если мы нажмем Ctrl + B, а затем D, мы отсоединим эту сессию.

Вернуться в «Компьютерщик-1» сеанс, мы нажимаем Ctrl + B, а затем S, чтобы увидеть список сессий.

Чтобы было понятно, это список сессий. Подобный дисплей, который мы видели ранее, представлял собой список окон за один сеанс.

Вы можете переместить желтую полосу выделения, нажимая стрелки вверх и вниз, Home и End. В нижней части отображается предварительный просмотр содержимого выделенного сеанса.

Если нажать стрелку вправо, отобразятся окна для выделенного сеанса.

Нажмите Enter, чтобы перейти к выделенному сеансу или окну, или Esc, чтобы выйти из списка сеансов без изменения сеансов. Если вы выбираете новый сеанс, ваш текущий отключается, а тот, который вы выбрали, прикрепляется.

Мы отделили сеанс «Компьютерщик-2», прежде чем мы это сделали. Тем не менее, вы можете сделать это с сеансами, которые по-прежнему подключены к своим исходным окнам терминала. Когда вы это сделаете, любые изменения экрана появятся одновременно в обоих сессий.

Команда может сделать это тоже с помощью аналогичного набора команд.

Разделение окон сеанса Tmux

Tmux имеет возможность разделить одно окно сеанса Tmux на несколько меньших окон, называемых панелями Tmux. Таким образом, мы можем запускать разные программы на каждой панели и взаимодействовать со всеми одновременно. Размер каждой панели можно изменять, перемещать и закрывать, не затрагивая другие панели. Мы можем разделить окно Tmux либо по горизонтали, либо по вертикали, либо по обоим сразу.

Разделить панели по горизонтали

Чтобы разделить панель по горизонтали, нажмите Ctrl + b и » (одинарная кавычка).

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

Разделить панели по вертикали

Чтобы разделить панель по вертикали, нажмите Ctrl + b и % .

Разделение панелей по горизонтали и вертикали

Мы также можем разделить панель одновременно по горизонтали и вертикали. Взгляните на следующий снимок экрана.

Сначала я сделал горизонтальное разделение, нажав Ctrl + b «, а затем разделил нижнюю панель по вертикали, нажав Ctrl + b% .

Как вы видите на скриншоте выше, я запускаю три разные программы на каждой панели.

Отправлять команды на все панели

В предыдущем примере мы запускали три разные команды на каждой панели. Однако также можно запустить отправку одних и тех же команд на все панели сразу.

Для этого нажмите Ctrl + b, введите следующую команду и нажмите ENTER:

:setw synchronize-panes

Теперь введите любую команду на любой панели. Вы увидите, что одна и та же команда отображается на всех панелях.

Убить панели

Чтобы убить панель, просто введите команду exit и нажмите клавишу ВВОД. Или нажмите Ctrl + b и x . Вы увидите подтверждающее сообщение. Просто нажмите «y», чтобы закрыть панель.

Moving on

If you’re curious now to learn what else tmux can do that’s a great thing. And luckily most of the stuff is quite simple to discover. Just type to see a list of all available commands and start experimenting.

Some of the commands that I’m using myself quite often are:

  • : make a pane go full screen. Hit again to shrink it back to its previous size
  • : Resize pane in direction of <arrow key>
  • : Rename the current window

On top of that there are plenty of resources out there that help you getting further with tmux. People like me are blogging about their tmux experience and share what they’ve discovered. You can find people sharing their tmux configurations in their dotfiles repos on Github. There’s even a book by Brian Hogan dedicated to tmux.

For now it’s best to discover some stuff on your own. Experiment, fool around and maybe try to use tmux in your daily work. It takes a while to get used to and you’ll probably feel slow in the very beginning. I can only encourage you to keep using it. Get a feeling for its functionality and in no time you’ll find out that your work with the terminal will be pure bliss and insanely fast.

If you’re interested in customizing your tmux experience I recommend that you read my Guide to Customizing your tmux.conf.

Footnotes

Во-первых, что такое TMUX?

1.1 сеанс и процесс

Типичный способ использования командной строки — открыть окно терминала (окно терминала, указанное в данном виде, называемым как «окно»), введите команду внутри.Это временное взаимодействие с пользователем называется «сеанс» (сеанс) 。

Важной особенностью сеанса является то, что окно, которое начинается с негосоединен вместеиз. Откройте окно, начинается сеанс; выключите окно, сеанс окончен, процесс внутри сеанса также будет прекращен, независимо от того, есть ли какая-либо работа

Типичный пример в том, чтоSSH Login.Удаленный компьютер, открыть удаленную команду выполнения окон. В это время сеть внезапно отключена, когда вошел в систему, это не порядка выполнения. Поскольку последняя сессия SSH прекратилась, процесс внутри исчезнет.

Чтобы решить эту проблему, сеанс и окно могут «разлагаться»: когда окно закрыто, сеанс не прекращается, но продолжает работать, подождать, пока вам не понадобится позже, пусть сеанс «связывает» другие окна.

1,2 роль TMUX

TMUX — это инструмент «Затвердевание» для сеанса и окна и полностью отделен их.

Подобные терминальные мультиплексоры также имеют экран GNU. TMux похож на это, но это еще проще в использовании.

Реализации

  • Byobu : профильная и конфигурационная утилита для GNU Screen и tmux.
  • dvtm : мозаичное управление окнами для консоли.
  • GNU Screen : прототип терминального мультиплексора, впервые выпущенный в 1987 году.
  • mtm : заявлено как «возможно, самый маленький полезный оконечный мультиплексор в мире»
  • splitvt : утилита разделенного терминала.
  • TD / SMP : представленный DEC на своихтерминалах VT330 / 340 , TD / SMP был проприетарным и широко поддерживался только их собственными терминальными серверами.
  • tmux : современный аналог экрана GNU, выпущенный в 2007 году; это BSD лицензии , позволяет несколько панелей (с дополнительной Xterm поддержкой мыши), и имеет интерфейс командногосценарии. tmux нацелен на то, чтобы разрешить совместное использование одного окна между несколькими терминалами, при этом другие окна в одном сеансе будут полностью разделены. tmux был частьюбазовой системы OpenBSD с версии 4.6 2009 года.
  • Twin («Текстовый режим среды WINdow»): полноценный оконный менеджер для текстовых окон. Первоначально он был запущен какпроект MS-DOS , позже был перенесен на Linux.

Запуск сессии tmux

Начать , просто введите его и нажмите Enter:

tmux

Окно терминала покажет строку состояния, когда вы находитесь в сессия.

В правой части строки состояния отображается имя хоста, а также время и дата. Левая сторона показывает следующую информацию о сеансе:

  • : Это имя сеанса. По умолчанию они нумеруются, начиная с нуля. Мы рассмотрим, как вы можете дать значимые имена для сессий ниже.
  • 0: Баш *: 0 указывает, что это первое окно в этом сеансе. Единственный процесс, запущенный в этом сеансе , Если вы запустите программу, ее имя появится здесь. Звездочка (*) означает, что это окно, на которое вы смотрите. Каждый раз, когда вы создаете новое окно в сеанс, номер его окна и название программы, запущенной в нем, добавляются в строку состояния.

Команда не дает вам строку состояния. Вы должны летать вслепую и полагаться на свое остроумие, чтобы знать, что происходит, что требует немного практики.

С другой стороны, вы не потеряете линейку оконных объектов недвижимости. Конечно, вы обычно расширяете окно терминала, чтобы использовать мультиплексор терминала. В этом случае потеря одной строки для строки состояния не является большой проблемой. Мы оставили здесь изображения окон терминала в размере по умолчанию, чтобы вы могли видеть информацию.

Команды даны используя нажатия клавиш, и есть две части этого

Сначала вы нажимаете Ctrl + B, чтобы получить Внимание. Затем вы быстро нажимаете следующую клавишу, чтобы отправить команду, Команды выдаются нажатием букв, цифр, знаков пунктуации или клавиш со стрелками

То же самое в , кроме того, что вы нажимаете Ctrl + A, чтобы привлечь его внимание. Чтобы закрыть окно, нажмите Ctrl + B, а затем быстро нажмите X

Строка состояния становится желтой. Затем вам будет предложено подтвердить, что вы хотите убить окно

Чтобы закрыть окно, нажмите Ctrl + B, а затем быстро нажмите X. Строка состояния становится желтой. Затем вам будет предложено подтвердить, что вы хотите убить окно.

Нажмите Y, чтобы закрыть окно, или N, если вы передумали. Вам не нужно нажимать Enter после этого; Y или N достаточно, чтобы зарегистрировать ваш выбор.

Если вы нажмете Y, окно закроется. Поскольку это единственное окно в этом сеансе, сеанс прекращается.

сеанс закрыт, и вы вернулись в командную строку, из которой вы запустили , Ты увидишь «”В окне терминала.

Это может показаться очевидным, но это подтверждение того, что вы закрыли сеанс и не оставили его отключенным и работающим. Мы обсудим отдельные сессии ниже.

Usage

Create a project

Create or edit your projects with:

Create or edit a local project where the config file will be stored in the
current working directory (in ) instead of the default
project configuration file location (e.g. ):

For editing you can also use . is aliased to
, to , and to . Please note that dots can’t be used in project
names as tmux uses them internally to delimit between windows and panes.
Your default editor () is used to open the file.
If this is a new project you will see this default config:

# ~/.tmuxinator/sample.yml

name: sample
root: ~/

# Optional tmux socket
# socket_name: foo

# Note that the pre and post options have been deprecated and will be replaced by
# project hooks.

# Project hooks

# Runs on project start, always
# on_project_start: command

# Run on project start, the first time
# on_project_first_start: command

# Run on project start, after the first time
# on_project_restart: command

# Run on project exit ( detaching from tmux session )
# on_project_exit: command

# Run on project stop
# on_project_stop: command

# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
# pre_window: rbenv shell 2.0.0-p247

# Pass command line options to tmux. Useful for specifying a different tmux.conf.
# tmux_options: -f ~/.tmux.mac.conf

# Change the command to call tmux.  This can be used by derivatives/wrappers like byobu.
# tmux_command: byobu

# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
# startup_window: editor

# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1

# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false

windows:
  - editor:
      layout: main-vertical
      # Synchronize all panes of this window, can be enabled before or after the pane commands run.
      # 'before' represents legacy functionality and will be deprecated in a future release, in favour of 'after'
      # synchronize: after
      panes:
        - vim
        - guard
  - server: bundle exec rails s
  - logs: tail -f log/development.log

Panes

Note that if you wish to use panes, make sure that you do not have in your project name. tmux uses to delimit between window and pane indices,
and tmuxinator uses the project name in combination with these indices to target the correct pane or window.

Panes are optional and are children of window entries, but unlike windows, they do not need a name. In the following example, the window has 2 panes, one running vim, the other guard.

windows:
  - editor:
      layout: main-vertical
      panes:
        - vim
        - guard

Note: If you’re noticing inconsistencies when using a custom layout it may
be due #651. See
for a workaround.

Dvtm

Dvtm (dynamic virtual terminal manager) представляет собой терминальный мультиплексор, по функциональности во многом близкий к tmux.
Он также включен в официальные репозитории большинства современных Linux-систем и устанавливается при помощи стандартного менеджера пакетов.
После запуска dvtm в верхней части экрана будет отображена строка состояния:

Управление dvtm организовано по тому же принципу, что и управление tmux. В качестве префиксной используется комбинация клавиш Ctrl+G. Понятие окна в dvtm интерпретируется совершенно иначе по сравнению с tmux. Для создания нового окна используется комбинация клавиш Ctrl+G+C. При нажатии этой комбинации экран будет разделен на две части; при этом каждая из них является отдельным окном:

При помощи той же самой комбинации клавиш можно создавать дополнительные окна:

Порядок расположения окон можно изменять. Выделяются следующие варианты расположения:

  • вертикальное (Ctrl+G+T) — текущее окно расположено в левой половине экрана; все остальные окна расположены в правой половине;
  • горизонтальное (Ctrl+G+B) — основное рабочее окно занимает верхнюю половину экрана, все остальные окна располагаются внизу;
  • режим сетки (Ctrl+G+G) — экран делится на части одинакового размера по количество созданных окон;
    полноэкранный режим (Ctrl+G+M) — текущее окно занимает весь экран.

Переходить от одного режима расположения окон к другому можно, нажимая омбинацию Ctrl+G+пробел.

Для управления окнами используются следующие клавиатурные комбинации:

  • Ctrl+G+X — закрыть текущее окно;
  • Ctrl+G+J — перейти в следующее окно;
  • Ctrl+G+K — перейти в предыдущее окно;
  • Ctrl+G+0…9 — перейти в указанное окно (цифры обозначают номер окна);
  • Ctrl+G+L — увеличить ширину текущего окна;
  • Ctrl+G+H — уменьшить ширину текущего окна;
  • Ctrl+G+Q — закрыть все окна и выйти из dvtm.

В dvtm имеется одна интересная функция, которой больше нет ни в одном из известных нам терминальных мультиплексоров: нажатие клавиш в текущем окне могут автоматически воспроизводиться во всех остальных открытых окнах. Нажмем комбинацию клавиш Ctrl+G+A. Если после этого нажать на какую-нибудь клавишу, нажатие сработает во всех окнах сразу.

Если ввести в текущем окне какую-либо команду, она также будет одновременно выполнена во всех открытых окнах. С помощью этой функции можно, например, осуществлять одновременную настройку нескольких удаленных серверов по одинаковой схеме.

В отличие от tmux, dvtm не поддерживает сохранения и возобновления сессий. Для этого используется dtach — вспомогательная утилита, которая обеспечивает возможность отключения от текущей сессии и последующего подключения к ней для любых консольных приложений. Устанавливается при помощи стандартного менеджера пакетов.

Чтобы получить возможность отключать сессии и снова подключаться к ним, нужно запустить dvtm под dtach:

$ dtach -c /tmp/dvtm-session -r winch dvtm

При работе с dtach нужно явно указывать сокет, с помощью которого идентифицируется сессия. Доступ к сессии целиком и полностью определяется доступом к сокету.

Чтобы покинуть dtach, нужно нажать комбинацию Ctrl+. Подключение к существующей сессии осуществляется при помощи команды:

$ dtach -a /tmp/dvtm-session -r winch

В заключение приведем небольшую шпаргалку — таблицу основных команд и клавиатурных комбинаций, используемых в screen, tmux и dvtm.

Управление сессиями

Операция screen tmux dvtm
Запустить новую сессию screen tmux
tmux new-session
tmux new-session -s
Возможность сохранения и возобновления сессий не поддерживается — для этого нужно устанавливать утилиту dtach, реализующую такую возможность для всех консольных приложений. Запуск dvtm под dtach осуществляется при помощи команды:
dtach -c /tmp/dvtm-session -r winch dvtm
Подключиться к уже созданной сессии screen -r tmux attach
tmux attach-session -s
tmux -a
dtach -a /tmp/dvtm-session -r winch
Отсоединиться от текущей сессии Ctrl+A Ctrl+D tmux detach ИЛИ Ctrl+B+D Ctrl+
Просмотреть список активных сессий screen -ls tmux ls ps aux | grep dtach
Удалить сессию screen -r -X quit tmux kill-session -t
Удалить все сессии Ctrl+A+ tmux kill-server

Управление окнами

Операция screen tmux dvtm
Cоздать новое окно Ctrl+A+C Ctrl+B+C Ctrl+G+C
Перейти в указанное окно Ctrl+B+0….9 Ctrl+G+0….9
Перейти в предыдущее окно Ctrl+A+P Ctrl+B+P Ctrl+G+J
Перейти в следующее окно Ctrl+A+N Ctrl+B+N Ctrl+G+K
Перейти в последнее активное окно Ctrl+A+L Ctrl+B+L
Показать список всех открытых окон Ctrl+A+»
Увеличить ширину окна Ctrl+B+Ctrl+N→ или Ctrl+B+Alt+→ (увеличивает с большим шагом) Ctrl+G+L
Уменьшить ширину окна Ctrl+B+Ctrl+← Ctrl+G+H
Закрыть текущее окно Ctrl+A+X Ctrl+B+X Ctrl+G+X

Как использовать команду nohup

Синтаксис команды следующий:

Команда не принимает никаких других параметров, кроме стандартных и .

Давайте посмотрим на следующий пример:

запускает команду на переднем плане и перенаправляет вывод файл . Этот файл создается в текущем рабочем каталоге . Если пользователь, выполняющий команду, не имеет прав на запись в рабочий каталог, файл создается в домашнем каталоге пользователя.

Если вы выйдете из системы или закроете терминал, процесс не завершится.

Запуск команды в фоновом режиме

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

Чтобы запустить команду в фоновом режиме , добавьте символ в конце команды:

Вывод включает идентификатор задания оболочки (в скобках) и идентификатор процесса:

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

Если по какой-то причине вы хотите прервать процесс, используйте команду за которой следует идентификатор процесса:

Перенаправление вывода в файл

По умолчанию перенаправляет вывод файл . Если вы хотите перенаправить вывод в другой файл, используйте стандартное перенаправление оболочки.

Например, чтобы перенаправить стандартный вывод и стандартную ошибку на вы должны использовать:

Чтобы перенаправить стандартный вывод и стандартную ошибку в разные файлы:

Использование

функциональные комбинации клавиш

tmux может управляться из присоединенного клиента посредством клавиатурных комбинаций системная кнопка с нажатой клавишей (Ctrl+b по умолчанию) за которой следует нажатие коммандной кнопки.

После нажатия Ctrl+B следующие клавиатурные комбинации могут быть использованы:

Общие комбинации

  • ? = Показать все клавиатурные комбинации.
  • d = Отсоеденить текущий клиент.
  • = Перейти к командной строке tmux

Создание и управление окнами

  • c = Создать новое окно
  • n = Перейти к следующему окну.
  • p = Перейти к предыдущему окну.
  • l = Перейти к предыдущему выбранному окну.
  • 0-9 = Выбрать окна от 0 до 9.
  • ' = Перейти к выбору индекса окна. Потом необходимо ввести номер о название чтобы перейти к соответствующему окну.
  • , = Переименовать текущее окно.
  • w = Выбрать окно в интерактивном режиме.
  • , then type list-windows enter = Display the list of windows.

Создание и управление панелями

  • " = Разделить текущую панель на две, верхную и нижнию.
  • % = Разделить текущую панель на две, левую и правую.
  • o = Выбрать следующую панель отображаемую в данном окне.
  • ; = Перейти в предыдущей активной панели
  • { = Поменять местами текущую панель с предыдущей
  • } = Поменять местами текущую панель со следующей панелью.
  • Ctrl+o = Rotate the panes in the current window forwards. * Alt+1 to Alt+5 = Arrange panes in one of the five preset layouts: even-horizontal, even-vertical, main-horizontal, main-vertical, or tiled. * x = Kill the current pane. * ! = Break the current pane out of the window

Операции копирования, вставки и прокрутка

Доступные «горячие клавиши» зависят от того, выбран режим emacs (по умолчанию) или vi. Параметр mode-keys можно задать в .tmux.conf для режима vi.

  • = Войти в режим копирования, чтобы скопировать текст или просмотреть историю.
  • = Вставить последний скопированный в буфер текст.
  • # = Список всех буферов вставки.
  • - = Удалить последний скопированный текстовый буфер.

Управление сессией

Запуск сессии

После запуска tmux создает сокет сессии в /tmp/S-<UID>/<Session Name>

tmux может быть запущен следующей командой:

Или, чтобы указать имя сессии при старте, выполните:

Информация о сессиях

Список tmux сессий для просмотра существующей информации о сессии:

0: 1 windows (created Thu Apr  9 09:09:03 2015)  (attached)

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

Другой способ перечислить сессии — это ввести длинный аргумент .

0: 1 windows (created Thu Apr  9 09:09:03 2015)  (attached)

Отобразится тот же результат, что и в предыдущей команде.

Переименование сессии

Простое использование tmux для запуска сеанса не предоставит сессию с удобным и понятным для человека именем.

Если имя сессии по умолчанию недостаточно описательно (, как правило, не описывает много), то её можно переименовать. Предположим, что Ларри-корова запустил tmux без указания имени сессии при запуске. Он начинает работу над компиляцией новой версии Portage и хочет изменить имя сессии в соответствии с текущей задачей. Чтобы изменить имя сессии, он сначала возьмет на себя управление tmux, нажав «магическую клавишу»: Ctrl+b, затем , которая переместит фокус в строку управления tmux. По умолчанию она должна стать желтой. Там он может набрать:

Где действующее (по умолчанию) имя сессии, а — это новое имя сессии. Чтобы переименовать при отсоединении от сессии tmux:

Продолжение сессии

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

Или используйте длинный способ присоединения к существующей сессии:

Демон-подобная операция

Чтобы запустить команду в сессии tmux без присоединения к сессии (как демон), используйте , а затем команду для выполнения в апострофах:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: