Краткое введение в tmux для программистов
Краткое введение в tmux для программистов
Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).
Вашему вниманию предлагается минималистическая шпаргалка, позволяющая быстро начать использовать tmux, а уж тонкую настройку, продвинутые команды и бесконечные хот-кеи желающие найдут, набрав man tmux.
Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.
После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)
В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0. 9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).
В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b « — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).
Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
Информационный портал по безопасности
Краткая шпаргалка по tmux (менеджеру терминалов)
Автор: admin от 24-08-2011, 16:22, посмотрело: 1410
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).
Вашему вниманию предлагается минималистическая шпаргалка, позволяющая быстро начать использовать tmux, а уж тонкую настройку, продвинутые команды и бесконечные хот-кеи желающие найдут, набрав man tmux .
Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.
После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)
В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0. 9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).
В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b « — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).
Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования».
Мир микроконтроллеров
Популярное
- Устройство и программирование микроконтроллеров AVR для начинающих — 143
- Трехканальный термостат, терморегулятор, таймер на ATmega8 — 70
- Двухканальный термостат, терморегулятор на ATmega8 — 66
Введение в язык программирования С (Си) для микроконтроллеров
В этой статье будут рассмотрены основные сведение о языке С, структура программы на языке С, дано понятие о функциях, операторах и комментариях данного языка программирования.
История создания языка C (Си)
Язык программирования C (Си) появился «стихийно» – ни одна компания не заказывала создания подобного языка. Его первая версия появилась на свет в 1972 г. в фирме Bell Laboratories, написал ее теперь уже всемирно известный программист Деннис Ритчи (Dennis MacAlistair Ritchie).
Ритчи рассчитывал, что созданный им язык программирования будет востребован в операционной системе UNIX, которая тогда была еще новинкой. Конечно, создавать новый язык Ритчи помогали и другие его коллеги программисты, но именно он внес наибольший вклад в становление этого языка. К новому языку первоначально не выдвигалось никаких требований, перед ним не ставилось никаких задач, фактически он возник как результат дружеского соревнования между небольшим кругом программистов.
Название C (Си) появилось так же стихийно, как и сам язык. Фактически, он стал преемником ранее созданного языка В (Би), разработанного автором операционной системы UNIX Кеном Томпсоном. В свою очередь, язык Би во многом был похож на языке BCPL, разработанный в Кембриджском университете. А язык BCPL основывался на идеях «старого как мир» Алгола-60.
Первым неформальным стандартом языка Си стало издание в 1978 г. книги Брайана Кернигана и Денниса Ритчи с названием «The ‘C’ Programming Language». Первоначально книга была издана в США, но потом была переведена и многократно переиздавалась во многих других странах мира. В 1989 г. язык Си был стандартизован ANSI (American National Standards Institute – американский национальный институт стандартов) и ISO (International Standard Organization — международная организация по стандартизации).
Но время шло и у пользователей языка Си появилась потребность в реализации новых функций, не поддерживавшихся языком. Учитывая все это, Бьерн Страуструп в начале 80-х (работавший все в той же самой Bell Laboratories) принял решение о расширении возможностей языка Си, который первоначально назвали как «Си с классами». Но в дальнейшем за его модификацией языка закрепилось другое название — Си++. Это название сохранилось за ним вплоть до настоящего времени.
Общие сведения о языке C (Си)
В настоящие дни C (Си) является многофункциональным языком программирования высокого уровня, подобным таким языкам как Pascal или Python, но в отличие от них он имеет возможность работы с командами низкого уровня, подобно языку ассемблера. Программу на языке С можно скомпилировать в машинный код практически для любого известного микропроцессора. Не исключением стали и микроконтроллеры – сейчас по популярности использования (особенно для начинающих) язык Си обогнал в них доминировавший до этого язык ассемблера. Программирование на языке С поддерживает и самая популярная в настоящее время программная платформа Atmel Studio (. ) для микроконтроллеров семейства AVR.
Сейчас уже можно с уверенностью сказать, что язык С стал своеобразным фундаментом, на котором строится все современное программирование – чего стоят хотя бы «Visual C» и «C Sharp». Основанные на нем языки программирования сейчас занимают доминирующее положение в мире программирования. А все началось с удачной структуры языка, разработанной в 1972 г. Деннисом Ритчи.
Файлы программ на языке Си имеют расширение .C, а простейшая структура программы выглядит следующим образом.
int main (void) /* главная функция: начало программы */
оператор программы;
оператор программы;
…
оператор программы;
> /* закрывающая скобка в конце программы */
Комментарии являются необязательным элементом программы, но они крайне желательны для лучшего понимания ее сути.
Назначение основных элементов программы на языке C (Си)
Заголовки
Символ # указывает на то, что представленная инструкция должна быть обработана препроцессором, который выполняет предварительную обработку текста программы перед началом компиляции и подключает внешние библиотеки.
Какие заголовки (управление портами ввода/вывода, функции задержки и т.д.) следует подключить определяется потребностями конкретной программы. Если вы забыли подключить необходимый заголовок, то программа не скомпилируется – компилятор выдаст сообщение об ошибке. К слову сказать, эти ошибки легко устраняются – ведь компилятор сам подсказывает какие заголовки следует подключить.
Функции
По сути программа на языке С представляет собой набор функций, каждая из которых может вызывать для выполнения любые другие функции. Функций в программе может быть много, но обязательной является только одна из них, называемая «main» («главная»). Выполнение программы на языке С начинается всегда с нее. Программист не может изменить название главной функции «main», но названия для всех других функций программы он может выбирать произвольно.
Функции в языке С легко узнать по их отличительному признаку – круглым скобкам после их имени. В общем случае в скобках содержится набор параметров, которые могут передаваться в функцию для ее работы, а также набор переменных, через которые функция может передавать результаты ее работы во внешнюю функцию (которая ее вызвала). Если скобки пустые, как например, в представленном примере с функцией main(), то это значит что у функции нет ни входных, ни выходных параметров.
Идущая следом за названием функции фигурная скобка <отмечает начало последовательности операторов, образующих тело функции. Закрывающая фигурная скобка > отмечает конец этой последовательности операторов. На этой скобке выполнение функции завершается.
Фигурные скобки также используются для того, чтобы объединить несколько операторов программы в составной оператор или блок.
Операторы
Как правило, тело функции в языке Си представляет собой набор операторов, в конце каждого из которых стоит точка с запятой ;. Можно размещать каждый оператор на своей строке или несколько операторов на одной строке – компилятору это неважно, главное чтобы они разделялись точкой с запятой (этот символ свидетельствует о конце оператора). Но для восприятия человеком, конечно, удобнее чтобы каждый оператор располагался на отдельной строке. Допускается использование и пустых строк чтобы визуально отделить структурные элементы программы.
Операторы выполняются последовательно в том порядке, в котором они записаны. Но структура программы не обязательно должна быть линейной – при наличии циклов и условий возможны пропуски выполнения отдельных операторов (условия) или многократное выполнение одних и тех же операторов (циклы).
Комментарии
Комментарии — это примечания, помогающие понять смысл программы. В языке Си текст комментариев записывается между значками /* */ . То, что написано между этими значками, компилятору совершенно неважно – он все это игнорирует. Это важно только для человека, который анализирует текст программы.
Комментарии можно размещать как на одной строке с операторами, так и на разных (обычно ниже или выше строки с оператором). Комментарии могут занимать несколько строк и для них не обязательно наличие в конце точки с запятой.
Наличие комментариев считается хорошим стилем программирования поскольку позволяет лучше понимать смысл программы не только ее автору (особенно по прошествии некоторого времени, в течение которого он над ней не работал), но и другим людям, которые в дальнейшем будут работать с этой программой.
Внутри комментариев нельзя использовать символы, определяющие начало и конец комментариев. К примеру, неправильная запись внутри комментария:
/* комментарии к программе /* управления электродвигателем */ */
/* комментарии к программе управления */ электродвигателем */
Язык Си для микроконтроллеров AVR поддерживает и другой метод записи комментариев — строка, начинающаяся с символов //. К примеру
// Это комментарий в одну строку
В качестве итога можно отметить, что для написания хорошо читаемой программы целесообразно придерживаться следующих правил:
- размещайте один оператор на строке;
- применяйте пустые строки для «отделения» одной логической части программы от другой;
- используйте комментарии.
KAZARIN OnLine
Blog about IT, Me, My travels, vacations, etc…
Обживаемся в консоли: Tmux + Vim
Это не полноценная статья, скорей краткая заметка, которая является наброском сценария для будущего скринкста.
И хоть про оба этих, несомненно замечательных инструмента в сети уже есть не мало материала, я добавлю еще немного от себя — как обычно это будет краткая выжимка с ссылками на куда более подробные источники. Итак, поехали!
Что это
Это терминальный мультиплексор. Он позволяет создавать несколько терминалов (или окон), каждый из которых выполняет отдельную программу, а так же управлять этими терминалами на одном экране. Tmux может быть отвязан от экрана и продолжать свою работу в фоновом режиме, а позже — привязан вновь.
Откуда взялось
Пришел к нам из мира openbsd как и много чего хорошего, где был разработан как замена screen.
Зачем это
позволяет работать с несколькими сессиями в 1 окне. Вместо нескольких окон терминала к серверу — вы можете использовать одно. Позволяет подключаться/отключаться к текущему состоянию сессии. Запущенные программы и процессы продолжают работать.
Теперь подробней
Философия tmux — при запуске, tmux запускает сервер с 1 или более сессий. В каждой сессии может быть одно и боле окон, из 1 и более областей. Итого у нас парадигма сессия-окно-область:
Если проводить аналогию с миром GUI:
- сессия — для Вас как отдельное рабоче место, Ваш компьютер
- окно — аналог рабочего стола (или набора виртуальных рабочих столов)
- панель- окно приложения
Что вы можете делать с tmux:
- Одновременно держать несколько запущенных задач на одном экране. причем это не обязательно будет ваша локальная машина
- Оставлять задачу запущенной в фоне,
- Отключаться и подключаться к ней запускать в фоне задачу, которую обычно сложно перевести в формат фоновой, например регулярно чт-то выводящей на экран
- Составлять свой собственный консольный рабочий стол, собственную IDE и т.д.
- Кооперативно подключаться к одной сессии несколькими пользователями
Основные моменты
0. Prefix-key или управляющая комбинация клавиш. По умолчанию это Ctrl+B. Нажатие этой комбинации уведомляет tmux о том что дальше пойдет ввод управляющей клавиши, означающей команду. Короче это способ послать команду в tmux.
Команды и конфигурация. Следует различать два вида команд:
- Команды отдаваемые внутри tmux сессии — это Prefix комбинация + клавиша —
- Внешние команды — набираются вместе с командой Tmux —
- Конфиг — просто набор внешних команд, записанных в файл и выполняемых при старте tmux.
Кстати по дефолту конфига нет. Сгенерировать можно так: tmux show -g | cat >
1. Сессии
Основная единица измерения. При простом запуске вы запускаете свою первую сессию с именем 0. Можно и сразу ее поименовать:
- tmux new-session -s’my rails project’
- tmux rename-session -t 1 «my session»
Для сессии же вы задаете глобальные настройки. Управлять сессией просто:
- tmux new — создать новую сессию с окном
- prefix + d — отсоединиться
- tmux list-session — список сессий с числом окон
- tmux attach -t 0 или 1 — присоединиться к той или иной сессии вместо номера можно начать вводить имя, если сессия поименованная
можно и переключаться на ходу:
- pefix + s — список сессий с переключениями
2. Окно
Каждая сессия делится на окна и запускается уже с одним окном по умолчанию.
- prefix + c — создать еще окно
создаются они с номером и их так же можно именовать:
В строке статус бара у вас показан список всех окон в рамках сессии. активное отмечено * :
- prefix + w — список окон с переключением
- prefix + 0-9 переключиться на окно
- prefix + n/p — следующее или предыдущее окно
3. Панели
Каждое окно может быть разделено на несколько панелей. По сути одно окно это уже и есть одна панель. Панель- это экземпляр шела или любой другой запущенной программы ( по умолчанию просто запускается шел):
- prefix + q (Показать номера панелей; перейти в область по нажатии клавиши, соответствующей номеру)
- prefix + % (Разделить окно вертикально)
- prefix + « “split-window” (Разделить окно горизонтально)
перемещаться по панелям
Вы можете сразу задавать сессию с одним пред настроенным окном. Пред настройка включает в себя указание числа панелей, их размещения и то, что в них будет запущено:
# Create pane horizontally, $HOME directory, 50% width of current pane
tmux split-window -h -c $HOME -p 50 vim
#Сreate new pane, split vertically with 75% height
tmux split-window -p 75
Скроллинг внутри панели
- prefix + PgUp — вход в «режим скролинга», после чего:
- PgUp, PgDown — скроллинг;
Все это лишь базовые возможности Tmux. Очень базовые. на самом деле он может куда больше- например вы можете создавать пред настроенные конфигурации, добавлять плагины, изменять внешний вид.
Список домашнего чтения
Что это
Если кратко — это командно-ориентированный консольный текстовый редактор, с довольно высоким порогом вхождения, который позволяет Вам редактировать произвольный текст или код не отрывая руки от клавиатуры. И нет, сеть не в огромном сочетании «горячих клавиш» ( хотя тут вы их можете запрограммировать сколько душе угодно), это именно команды и их сокращения, что повышает производительность при работе с текстом. В чем же отличие от горячих клавишь, спросите Вы? Нельзя нажать сразу несколько горячих клавиш, а вот отдать сразу несколько команд — можно. Плюс возможности этого редактора расширяются огромным числом плагинов.
Звучит не очень убедительно но тут лучше просто попробовать, чем слушать и читать.
Откуда взялось
Пришел к нам как дальнейшая эволюция редактора Vi, а тот вообще из эпохи динозавров)
Зачем это
Как я уже говорил, он позволяет очень удобно и быстро (естественно при наличии некоего навыка) работать с любым текстовым файлом- просто текст, код, конфиг, верстка и т.д. Помимо этого, этот текстовый редактор входит в базовый состав утилит почти любого Linux дистрибутива, от Ubuntu Server до OpenWRT. Поэтому умея работать с ним ( любить при этом не обязательно) — вы точно будете во всеоружии!
Теперь подробней
Философия vim — для начало нужно уяснить себе, что этот редактор работает в нескольких режимах последовательно. Для начала это режим редактирования и режим команд. В первом — вы пишете текст, во втором Вы работаете с файлом. В том числе и с текстом.
Чтобы не уподобляться 100500 мануалам в духе «как выйти из Vim перед этим сделать то и то». Вы можете пойти и почитать на эту тему, благо есть тонна отличных учебных пособий, например:
- OpenVim — интерактивный онлайн учебник.
- Vim Adventures — приключенческая игрушка.
Плюс на Youtube есть куча всевозможных обучающих видео. Но на мой взгляд (чисто ИМХО), есть два более простых и удобных способа:
- Vimtutor — Не интерактивный а наоборот, очень простой учебник, который представляет собой приложение к vim. Если вы пользователь linux/unix, просто введите эту команду и выполняйте то что там написано.
- Найдите какой нибудь сборник основных команды в виде картинки (например такой) и начните использовать!
Для начала, давайте соберем основные комбинации клавиш и команды, чтобы быть «в теме». Я буду совмещать отдельные команды и их наиболее часто (опять же, ИМХО) встречающиеся комбинации.
- i / insert — вход в режим редактирования
- Esc — выход в режим команд
- х в режиме команд — удалит букву под курсором
- d — удаление:
- dw, de — удалит следующее за курсором слово. «w» — включая пробел и «e» — не включая его
- d$ — удалить все от курсора и до конца строки
- d^ — от начала строки идо курсора
- d*число* или *число*d — сколько раз повторить команду удаления, например d4w — удалить 4 слова от курсора и далее вправо.
- dd в начале строки — удалить строку, 2dd — удалить две строки
- r*символ которым заменяем* — набираем, установив курсор над заменяемым символом.
- Для строки:
- dd — в начале вырезаемой строки
- p — в конце строки, после которой надо вставить
- Для слова:
- dw / d$ — в начале слова/ подстроки которые вырезаем.
- p — после слова/подстроки куда вставить
- u — отменить последнюю операцию
- Ctrl+R — вернуть последнюю операцию
- U -отменить все изменения в строке
- h, j, k, l — Перемещение вверх/вниз, вправо/влево. Их можно заменить стрелками, но Vim-гуру рекомендуют привыкнуть именно к этим клавишам перемещения, чтобы не убирать пальцы с основной клавиатурной панели.
- /*регулярное выражение* — поиск выражения/строки.
- %*скобка* — поиск парной скобки относительно введенной
Все эти команды набираются в командном режиме (как неожиданно, не правда ли!), просто по ходу пьесы. Однако есть еще один тип команд — внешние. Имеется ввиду по отношению к редактируемому тексту. Эти команды начинаются с символа»:» и вводятся либо целиком, либо сокращенно:
- :edit / :e *filename* — открыть файл
- :quit / :q — выйти
- :write / :w *filename* — сохранить. Если не указать имя, сохранит файл под текущим именем. Если имени нет, попросит ввести.
Так же мы можем выполнить команды из операционной системы, используя конструкцию :!*commandname*
Расширение функционала
Но теперь займемся более интересным вопросами. Vim несомненно отличный редактор, но его сила еще и в том, что он обладает впечатляющим набором плагинов и возможностью настройки и программирования своей работы.
По умолчанию, для Vim не создается конфигурационный файл. Но мы можем сделать его — создайте в корневом каталоге файл «.vimrc» и заносите туда настройки. Ряд настроек можно почерпнуть из документации. Вот пример очень простого файла настройки:
set number
set showcmd
set incsearch
set hlsearch
set expandtab
set tabstop=4
set softtabstop=4
syntax on
- включает нумерацию строк в редакторе
- Включается история команд
- Включает инкрементальный поиск (поиск по мере ввода строки)
- Включить подсветку поиска
- Заменить табуляцию на отступы пробелами
- Отступ табуляцией теперь будет = 4 пробелам
- Включается подсветка синтаксиса
Плагины
Для начала, нам необходим менеджер плагинов. Среди прочих равных я для себя выбрал vim-plug. там же, на странице есть и инструкция по установке. Ставится одной командой в консоль + добавляется секция в конфигурационный файл, позволяющая автоматически устанавливать и подключать плагины:
Из приглянувшихся мне (как не разработчику) плагинов, я бы выделил следующие:
- nerdtree — позволяет открывать дерево каталогов / дерево файлов и папок вашего текущего проекта прямо в окне vim
- тема оформления gruvbox. Кстати, еще больше тем и конфигов по оформлению можно найти вот тут.
- YouCompleteMe— автодополнение для популярных языков программирования (мне как минимум интересен Python)
- Auto Pairs — автоматическая добавка и удаление таких парных элементов как различные скобки
- CtrlP— быстрый поиск по вводимой строке.
Шпаргалка по tmux
Tmux — это терминальный мультиплексор или иными словами, вы можете в одном терминале запустить несколько терминальных сессий и переключаться между ними или даже разместить их в одном окне, а также отключиться от сессии оставив её работать в фоне, а затем вернуться и посмотреть результат, это может быть очень удобно при работе по SSH. Если вы раньше пользовались утилитой screen, то tmux — это её аналог, который имеет намного больше функций.
Эта статья — небольшая шпаргалка по Tmux, в которой мы разберем установку программы, основные её возможности и команды, а также некоторые приемы использования. После прочтения статьи вы сможете полноценно пользоваться утилитой.
Установка Tmux
Здесь все просто. Для установки программы в Ubuntu выполните следующую команду:
sudo apt install tmux
А для установки в CentOS:
sudo yum install tmux
Синтаксис и опции команды Tmux
Синтаксис команды предельно простой, для создания новой сессии достаточно запустить утилиту без параметров. Для подключения к уже существующей придется использовать дополнительные опции. Вот основной синтаксис:
tmux команда опции
Что касается опций, то в большинстве вам придется использовать только две — это -t (target) — которая указывает цель, к которой будет применяться команда, например, идентификатор сессии или подключенного клиента, а также -s (session) — который обычно используется для обозначения источника, над которым будет выполняться действие.
Команды tmux для управления сессиями, которые вы можете использовать:
- attach-session (attach) — подключиться к уже существующей сессии. В параметре необходимо передать опцию -t и идентификатор сессии;
- detach-session (detach) — отключить всех клиентов (или переданного с помощью опции -t) от сессии, переданной в опции -s;
- has-session — проверить существует ли сессия, аналогично, надо передать идентификатор сессии;
- kill-server — остановить все запущенные сессии;
- kill-session — завершить сессию переданную в параметре -t;
- list-clients — посмотреть клиентов, подключенных к сессии -t;
- list-sessions (ls) — вывести список всех запущенных сессий;
- new-session — создать новую сессию, можно передать имя сессии в опции -s и стартовую директорию в опции -c;
- rename-session — переименовать сессию, нужно передать идентификатор сессии и новое имя;
Конечно, у tmux намного больше команд, но мы не будем рассматривать их в этой статье. В основном, команды будут использоваться для подключения и отключения от сессий, все остальные действия выполняются с помощью горячих клавиш и их тут тоже достаточно.
По умолчанию для активации сочетания клавиш нужно нажать Ctrl+B, отпустить, а потом нажать нужную клавишу. Вот основные сочетания клавиш tmux, которые вам понадобятся:
- Ctrl+b c — создать новое окно;
- Ctrl+b w — выбрать окно из списка;
- Ctrl+b 0-9 — открыть окно по его номеру;
- Ctrl+b , — переименовать текущее окно;
- Ctrl+b % — разделить текущую панель по горизонтали;
- Ctrl+b « — разделить текущую панель по вертикали;
- Ctrl+b стрелка — перейти на панель, находящуюся в стороне, куда указывает стрелка;
- Ctrl+b Ctrl+стрелка — изменить размер текущей панели;
- Ctrl+b o — перейти на следующую панель;
- Ctrl+b ; — переключаться между текущей и предыдущей панелью;
- Ctrl+b x — закрыть текущую панель;
- Ctrl+b [ — войти в режим копирования (подробнее ниже);
- Ctrl+b ] — вставить из внутреннего буфера обмена tmux;
- Ctrl+b d — отключится от текущей сессии;
- Ctrl+b : — открыть командную строку.
Для начала работы этих горячих клавиш будет достаточно. Шпаргалка tmux завершена, теперь перейдем к примерам работы с программой.
Как пользоваться tmux
1. Создание сессии
Чтобы создать новую сессию достаточно выполнить команду без параметров:
Также можно создать сессию командой new-session и задать ей удобное имя:
tmux new-session -s losst
2. Разделение окна на панели
Окно сессии можно разделить на несколько панелей. Чтобы выполнить разделение по горизонтали нажмите Ctrl+b отпустите, а затем нажмите Shift+»:
Аналогично можно разделить панель по вертикали, нажав Ctrl+b, а затем Shift+%:
Размер активной панели можно менять нажав Ctrl+b, а потом Ctrl и стрелка:
А для переключения между панелями используйте клавиши Ctrl+b и стрелка. Сначала не привычно, но потом удобно.
3. Поддержка мышки
По умолчанию поддержка мышки отключена, но если вы работаете в графическом окружении, вы можете её включить. Это даст несколько преимуществ: вы сможете выбирать активную панель мышкой, копировать текст во внутренний буфер обмена, менять размер панелей, использовать прокрутку для просмотра истории вывода и так далее. Для этого откройте файл
/.tmux.conf и добавьте туда следующие строки:
set-option -g -q mouse on
bind-key -T root WheelUpPane if-shell -F -t = «#
bind-key -T root WheelDownPane if-shell -F -t = «#
Сохраните изменения, нажмите Ctrl+b :, а потом выполните такую команду чтобы перезагрузить tmux:
Настройка tmux завершена, теперь мышь будет работать.
4. Копирование и вставка
Одна из достаточно важных операций при работе с терминалом — это возможность что-то скопировать и куда-то перенести. После активации поддержки мышки вы можете просто выделить участок текста мышкой и он автоматически скопируется во внутренний буфер tmux.
Если вы хотите иметь возможность скопировать в системный буфер обмена, перед тем как выполнять действия мышкой зажмите Shift:
Кроме того, в tmux есть управление копированием и вставкой с помощью клавиш. Для перехода в режим копирования нажмите Ctrl+B [, затем переместите курсор к нужному месту с помощью стрелок. Кстати, этот режим можно использовать также для прокрутки. Потом нажмите Ctrl+пробел для начала выделения, выделите нужный фрагмент стрелками и нажмите Ctrl+w для копирования.
Чтобы вставить текст из внутреннего буфера обмена нужно нажать сочетание клавиш Ctrl+b ]. Для выхода из режима копирования используйте q или Esc.
5. Окна tmux
Кроме панелей в tmux можно открывать окна. Это аналог рабочих столов в Linux. Каждое окно привязано к определенной цифровой кнопке и имеет свой набор панелей. Для создания нового окна нажмите Ctrl+b c:
Список окон выводится внизу окна терминала. Для переключения на нужное окно нажмите Ctrl+b и номер окна.
6. Отключение от сессии
Чтобы отключиться от текущей сессии достаточно нажать сочетание клавиш Ctrl+b d.
После отключения все запущенные в сессии программы продолжат работать и вы всегда сможете снова подключиться и посмотреть их вывод. Это удобно при подключении по SSH, которое всегда может разорваться.
7. Подключение к сессии
Посмотреть список сессий можно командой ls:
А для подключения используйте attach:
tmux attach -t losst
Ещё можно посмотреть список клиентов, подключенных к сессии:
Выводы
В этой статье мы разобрали основные команды tmux, а также как пользоваться этой утилитой. Я для себя открыл tmux не давно. Слышал о программе довольно давно, но никак не доходили руки попробовать, а потом попробовал и уже не могу без неё обойтись.
Обзор терминальных мультиплексоров: Tmux и Dvtm
Терминал принадлежит к числу наиболее часто используемых инструментов администратора. Нередко во время работы приходится одновременно держать открытыми несколько вкладок терминала: одну — для управления веб-сервером, другую — для управления базой данных, третью — для копирования файлов и т.п. Когда открытых вкладок очень много, отслеживать одновременно все процессы становится трудно, и это существенно усложняет работу. Существуют специальные программы, c помощью которых можно решить проблему множественных терминалов. Они называются терминальными мультиплексорами.
Терминальные мультиплексоры позволяют одновременно работать с несколькими терминальными сессиями в одном окне. Принцип их работы заключается в следующем: терминал с множественными вкладками создается на удаленной машине; на локальной машине окно терминала делится на несколько частей, и в каждой из них могут быть запущены любые приложения и процессы. От удаленной машины можно отключиться (текущая сессия будет сохранена), а затем снова подключиться к ней и продолжать работу.
Самым известным и распространенным терминальным мультиплексором является, конечно же, GNU Screen. При всех своих преимуществах он отличается некоторым неудобством в работе. Неудачно реализована, например, операция разделения экрана на части: при отключении от текущей сессии и последующем ее возобновлении порядок расположения частей не сохраняется.
В последнее время широкое распространение получили и другие терминальные мультиплексоры, более наглядные и удобные в работе — например, tmux и dvtm, которым и посвящена эта статья.
Tmux работает под Linux и под MacOS; он включен в официальные репозитории большинства современных Linux-систем и может быть установлен при помощи стандартного менеджера пакетов.
Запустим tmux при помощи следующей команды:
В нижней части экрана появится строка состояния:
Управление всеми терминальными мультиплексорами осуществляется так: сначала нажимается так называемая префиксная комбинация клавиш, а после нее — клавиша, управляющая той или иной функцией. В tmux по умолчанию в качестве префиксной установлена комбинация Ctrl+B. Чтобы разделить экран терминала на две половины вертикальной чертой, нужно сначала нажать Ctrl+B, а затем — % (т.е. Shift+5):
Каждую из получившихся вкладок можно также разделить на две части горизонтальной чертой при помощи комбинации клавиш Ctrl+B ” (сначала нажимаем Ctrl+B, а затем — “).
Разделить окно на две части можно также при помощи команд:
(разделить на две части горизонтально)
(разделить на две части вертикально)
Чтобы перейти из одной части окна в другую, нажимаем сначала Ctrl+B, а затем — клавиши ←, ↑, → и ↓.
Чтобы создать новое окно, нажмем комбинацию клавиш Ctrl+B+C. В рамках одной сессии может быть задействовано неограниченное количество окон; каждое из них может быть в свою очередь разделено на части. Переключение между окнами осуществляется при помощи следующих комбинаций:
- Ctrl+B+ 0…9 — перейти в указанное окно;
- Ctrl+B P — перейти в предыдущее окно;
- Ctrl+B N — перейти в следующее окно;
- Ctrl+B L — перейти в предыдущее активное окно (т.е. в то, из которого ранее был осуществлен переход в текущее окно);
- Ctrl+B X — закрыть окно (это можно также сделать при помощи команды exit).
Текущую сессию tmux можно прервать, нажав комбинацию клавиш Ctrl+B+D. Чтобы возобновить прерванную сессию, нужно ввести команду:
Прерванная сессия будет восстановлена; при этом все данные и процессы будут сохранены.
Эту команду можно ввести и в сокращенном виде:
Чтобы вывести на экран список сессий, нужно выполнить следующую команду:
Завершение открытой сессии осуществляется при помощи команды:
Чтобы завершить все открытые сессии одновременно, нужно ввести команду:
Рекомендации по настройке
Отображение строки состояния в нижней части экрана можно отключить. Для этого введем следующую команду:
А чтобы отключенная строка состояния отображалась снова — команду:
Можно изменить положение строки состояния и сделать так, чтобы она находилась не в нижней, а в верхней части экрана:
Цвет строки состояния изменяется при помощи следующей команды:
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. Если после этого нажать на какую-нибудь клавишу, нажатие сработает во всех окнах сразу.(UPD. Наши читатели сообщают, что аналогичная функция имеется и в tmux: tmux set synchronize-panes on).
Если ввести в текущем окне какую-либо команду, она также будет одновременно выполнена во всех открытых окнах. С помощью этой функции можно, например, осуществлять одновременную настройку нескольких удаленных серверов по одинаковой схеме.
В отличие от tmux, dvtm не поддерживает сохранения и возобновления сессий. Для этого используется dtach — вспомогательная утилита, которая обеспечивает возможность отключения от текущей сессии и последующего подключения к ней для любых консольных приложений. Устанавливается при помощи стандартного менеджера пакетов.
Чтобы получить возможность отключать сессии и снова подключаться к ним, нужно запустить dvtm под dtach:
При работе с dtach нужно явно указывать сокет, с помощью которого идентифицируется сессия. Доступ к сессии целиком и полностью определяется доступом к сокету.
Чтобы покинуть dtach, нужно нажать комбинацию Ctrl+\. Подключение к существующей сессии осуществляется при помощи команды:
Более подробная информация о dtach представлена на официальной man-странице .
В заключение приведем небольшую шпаргалку — таблицу основных команд и клавиатурных комбинаций, используемых в 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 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 |
Воспроизводить нажатия клавиш во всех открытых окнах | — | tmux set synchronize-panes on | Ctrl+G A |
Закрыть текущее окно | Ctrl+A X | Ctrl+B X | Ctrl+G X |
Вглубь ядра: знакомство с LTTng
Продолжаем цикл публикаций на тему трассировки и профилирования ядра Linux. Сегодня мы хотели бы поговорить об одном интересном инструменте для трассировки ядра — LTTng, разработанном канадским программистом и исследователем Матьё Денуайе. С его помощью можно получать информацию о событиях как в пространстве ядра, так и в пользовательском пространстве. LTTng уже давно включён в официальные.
IPMI ― обзор технологии
Чтобы удаленно управлять состоянием серверной платформы, системные администраторы и инженеры пользуются технологией IPMI, которая значительно упрощает им жизнь. Теперь не надо каждый раз бежать к серверу, чтобы нажать на кнопку перезагрузки ― своевременно реагировать на критические неполадки можно сидя дома в уютном кресле. В этой статье рассмотрим основные компоненты IPMI и детали работы технологии. Что такое.
Краткое введение в tmux для программистов
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
tmux — консольный оконный менеджер, похожий на GNU Screen, но отличающийся от него рядом серьёзных усовершенствований.
Основные преимущества tmux в сравнении с GNU Screen:
- Ясная и прозрачная клиент-серверная модель (например, можно без проблем подключать разные окна к разным сеансам);
- Простой интерфейс командной строки;
- Единый синтаксис команд в конфигурационном файле, в командной строке оболочки и в командной строке tmux;
- Простота написания скриптов;
- Множество буферов вставки;
- Комбинации клавиш vi/emacs;
- Простой синтаксис командной строки, поддерживающий вывод внешних команд shell.
Функция | Клавиша |
---|---|
Справка по командам | ? |
Командная строка | : |
Увести tmux в фон | d |
Создать новое окно | c |
Следующее окно | n |
Предыдущее окно | p |
Выбрать окно под соответствующим номером | 0-9 |
Предыдущее окно | l |
Выбрать окно из списка | w |
Выбрать сессию | s |
Разделить окно вертикально | « |
Разделить окно горизонтально | % |
Листать «слои» | Space(пробел) |
Удалить фрейм | ! |
Переместить фрейм вверх | < |
Переместить фрейм вниз | > |
Следущий фрейм | o |
Изменить размеры фрейма | Alt + Стрелки |
Удалить окно | & |
Обновить клиент | r |
Часы | t |
Найти окно | f |
Переименовать окно | , |
Изменить номер окна | . |
Перейти в режим копирования | [ |
Вставить содержимое буфера обмена | ] |
Этого набора клавиатурных сочетаний должно хватить на первых, и не только порах.
После «детача», вернуть tmux на родину можно передав ему параметр attach :
В случае если сессий несколько, то можно посмотреть их список с помощью ls , и выбрать нужную передав к attach ещё и аргумент в виде номера сессии:
Теперь мой файл конфигурации tmux’а. Находиться он должен в $HOME/.tmux.conf :
Думаю, из комментариев понятно что к чему, но хочу уделить особое внимание назначению комбинаций клавиш, и статусбару.
Как видно действия клавишам назначаются с помощью bind-key , которому передаётся ключ -n (новая комбинация), затем клавиша, и выполняемое действие. Помимо внутренних команд tmux’а, можно так же выполнять внешние команды. Вот небольшой пример:
При составлении своих комбинаций клавиш можно использовать дополнительные (не буквенные) клавиши : Ctrl — C, Alt — M, Up, Down, Left, Right, BSpace, BTab, DC(Delete), End, Enter, F$(где $ число от 1 до 20), Home, IC(Insert), NPage(PageUp), PPage(PageDown), Space (пробел), Tab.
Основной префикс так же можно установить так:
Немного о статус баре tmux
Статус бар в tmux делится на две части: левую, и правую. В каждую из частей можно вывести желаемую информацию. Формат довольно простой. Используются специальные символы:
- #(shell-command) — Любая внешняя команда
- #[attributes] — Изменение цвета, или атрибута статус бара
- #H — Имя хоста локального компьютера
- #F — Текущий флаг окна
- #I — номер текущего (активного) окна
- #P — Список всех фреймов
- #S — Имя сессии
- #T — Заголовок текущего окна
- #W — Имя текущего окна
- ## — Символ решётка — ‘#’
Снова небольшой пример:
Для левой части задётся зелёный цвет, имя хоста и значение по умолчанию. Для правой жёлтый цвет, внешняя команда с аргументами, снова значение по умолчанию, и время в собственном формате с помощью внешней команды date. В примере комбинируются собственные спец. символами, с теми, что по умолчанию.
И последнее о чём хочу сегодня написать — использование в скриптах. В самом начале, я писал что в tmux предоставляет большие возможности для использования его из различных скриптав. Контролировать из командной строки можно почти всё: начиная от перерисовки определённого окна, и кончая изменением размеров фрейма. Я же приведу простой пример, как можно запускать заранее несколько окон с разным набором программ:
Кстати в tmux просто отличный man, который я советую почитать всем заинтересованным в этой программе.
Введение в язык программирования C
C — это достаточно «древний» язык программирования, он сформировался в начале 70-х. Не смотря на это, C — живой язык в том смысле, что он активно применяется в настоящее время. Он был придуман, использовался и используется для написания существенных частей программного кода Unix-подобных операционных систем. Также на нем пишут утилиты, компиляторы и реже прикладные программы. Поэтому C называют системным языком программирования.
Его живучесть можно объяснить тем, что принципы работы операционных систем относительно универсальны, они не подвержены тому прогрессу и разнообразию, которые можно наблюдать в среде десктопного и мобильного ПО, Web-приложений. C не является языком достаточно высокого уровня, он ближе к архитектуре компьютера. В результате программы на C получаются компактными и быстрыми.
C не поддерживает объектно-ориентированного программирования. Поддержка ООП реализована в C++. Хотя последний возник на основе языка C, он не является его «продолжением», а представляет собой отдельный язык, который можно изучать, не зная C. Однако изучение C полезно перед знакомством с его «продвинутым младшим братом», т.к. синтаксис языков похож, C не перегружает мозг начинающего программиста сверхвозможностями и приучает к пониманию сути происходящего.
Подходит ли C для первого знакомства с программированием? Если вы не обучаетесь в вузе по специальности, связанной с IT, то нет. C предполагает понимание организации и принципов работы аппаратного обеспечения, в частности – памяти. Здесь многое делается с помощью указателей, они играют ключевую роль; эта тема достаточно сложная для понимания и обычно не изучается в школе.
Конечно, с помощью C можно изучать основы программирования и не изучать при этом указатели. Однако человек будет думать, что знает C, мало зная о нем по существу. Язык C был создан разбирающимися в устройстве «железа» профессиональными программистами для написания операционной системы UNIX. Его не задумывали как язык для обучения начинающих.
Среды и компиляторы для программирования на C
Если вы пользуетесь одним из дистрибутивов GNU/Linux, вам подойдет любой текстовый редактор с подсветкой синтаксиса, также понадобятся GCC и терминал.
Существуют редакторы для программистов, включающие различные дополнения, в том числе терминал, просмотр каталогов и др. Например, Geany или Atom.
C – компилируемый язык программирования. В GNU/Linux для получения исполняемых файлов используется GCC – набор компиляторов, включающий в том числе компилятор для C. Чтобы из исходного файла (обычно таким файлам дают расширение *.с) получить исполняемый, надо выполнить в терминале команду примерно следующего вида:
, где gcc — команда, запускающая программу, выполняющую компиляцию и иные действия; -o – ключ, сообщающий, что мы вручную указываем имя исполняемого файла; hello – имя получаемого исполняемого файла; hello.c – имя файла с исходным кодом. Имя исполняемого файла можно не указывать:
В этом случае исполняемый файл будет иметь имя по умолчанию a.out.
Для Windows существует свой набор компиляторов – MinGW. Его можно использовать самостоятельно, однако он входит в состав простой среды разработки Dev-C++, которая может оказаться хорошим выбором для обучения программированию на языках C и С++.
При сохранении выбирайте тип файла «C source files (*.c)». Компиляция и запуск программы выполняется при нажатии клавиши F9. После исполнения программа сразу закрывается и результат невозможно увидеть. Чтобы этого не происходило, прописывают две дополнительные строки: #include и getch(). (Возможно это не актуально для более новой версии Dev-C++.)
«Hello World» в GNU/Linux:
«Hello World» в Windows:
С другой стороны, существует большое количество кроссплатформенных сред разработки. Например, Eclipse + модуль CDT, KDevelop, CLion. Последняя платна, выпускается компанией JetBrains – лидером в разработке IDE, однако имеет 30-ти дневный триальный период, чего может быть достаточно для обучения. CLion удобнее других IDE.
«Hello World» на C
На примере простейшей программы сразу отметим некоторые особенности языка программирования C.
В языке C роль основной ветки программы берет на себя функция main(). Эта функция всегда должна присутствовать в законченной программе на языке C, и исполнение программы начинается именно с нее. Однако объявленные внутри нее переменные не являются глобальными, их область видимости простирается только на main(). Тем не менее в языке программирования C почти весь программный код заключается в функции, и функция main() является главной и обязательной.
По умолчанию функция main() возвращает тип данных int, поэтому можно не указывать тип возвращаемых данных. Однако компилятор в этом случае выносит предупреждение.
Функция printf() предназначена для вывода данных. Ее назначение аналогично процедуре write() языка Pascal и функции print() в Python. Функция printf() после вывода не выполняет переход на новую строку. Поэтому для перехода используется специальный символ, который обозначается комбинацией \n. Законченные выражения на языке C разделяются точкой с запятой.
В языке C функции ввода-вывода не являются частью языка. Например, в Python нам не надо импортировать никакой модуль, чтобы пользоваться функциями print() и input(). В C же мы не можем просто вызвать функцию printf(), т.к. в самом C ее просто нет. Эту функцию, а также ряд других, можно подключить с помощью заголовочного файла stdio.h. Именно для этого в начале программы прописана строка #include . Include с английского переводится как «включить», а stdio есть сокращение от «стандартный ввод-вывод (input-output)».
В заголовочных файлах (они оканчиваются на *.h) обычно содержаться объявления тех или иных функций. Объявление — это просто описание функции: какие параметры она принимает и что возвращает. Сам код функции (определение) находится не в заголовочном файле, а в библиотеках (других файлах), которые могут быть уже скомпилированы и расположены в системных каталогах. Перед компиляцией программы запускается препроцессор языка C. Помимо прочего он включает в начало файла программы содержимое указанных в ней заголовочных файлов.
Практическая работа
Закомментируйте 1 первую строчку кода программы HelloWorld. Попробуйте скомпилировать программу. Удалось ли получить исполняемый файл? Какое предупреждение выдал компилятор?
1 // — однострочный комментарий на языке C; /* … */ — многострочный комментарий на языке C.
Начало работы с tmux
Что такое tmux?
По мнению авторов tmux:
tmux представляет собой терминал мультиплексора. Что такое терминальный мультиплексор? Это позволяет легко переключаться между несколькими программами в одном терминале, отделять их (они продолжают работать в фоновом режиме) и прикрепить их к другому терминалу. И сделать намного больше.
Установка tmux
Установка очень проста, если у вас есть Ubuntu или Debian, то установить tmux можно с помощью следующей команды:
После установки для запуска tmux запустите tmux в окне терминала.
Конфигурация и ключевой префикс
Глобальный файл конфигурации находится в файле /etc/tmux.conf и специфичный файл конфигурации пользователя находится в файле
/.tmux.conf. П о умолчанию префикс Ctrl-b но если вы хотите изменить его на Ctrl-a (префикс GNU Screen по умолчанию), необходимо добавить следующий код в ваш файл
Управление сессиями
tmux разработан на модели клиент-сервер, который означает, что сеанс хранится на сервере и сохраняются после выхода из системы SSH.
Следующая команда создаст новую сессию под названием mysession:
Для присоединения к сессии запустите:
Чтобы перечислить все выполняемые сессии:
Вы можете убить сессию, используя следующую команду:
Часто используемые команды сессии
Управление окнами (вкладками)
Каждый сеанс может иметь несколько окон. По умолчанию все окна нумеруются, начиная с нуля.
Часто используемые команды окон (вкладок)
Управление панелью
С tmux, вы можете разделить окна на несколько панелей.
Часто используемые команды панели
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.