Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
fullcircle:32:советы_ч_8 [2010/06/18 22:35] |
fullcircle:32:советы_ч_8 [2010/06/22 20:03] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Покоряй и Властвуй: Советы по работе в терминале. Часть 7====== | + | ====== Покоряй и Властвуй: Советы по работе в терминале. Часть 8====== |
<style right> | <style right> | ||
Строка 13: | Строка 13: | ||
- [[..:31:советы_ч_7|Советы по работе в терминале - Часть 7]] | - [[..:31:советы_ч_7|Советы по работе в терминале - Часть 7]] | ||
- [[..:32:советы_ч_8|Советы по работе в терминале - Часть 8]] | - [[..:32:советы_ч_8|Советы по работе в терминале - Часть 8]] | ||
+ | - [[..:33:советы_ч_9|Советы по работе в терминале - Часть 9]] | ||
+ | - [[..:34:советы_ч_10|Советы по работе в терминале - Часть 10]] | ||
+ | - [[..:35:советы_ч_11|Советы по работе в терминале - Часть 11]] | ||
+ | - [[..:36:советы_ч_12|Советы по работе в терминале - Часть 12]] | ||
+ | Прежде, чем мы начнём, я вынужден признать ошибку. Читатель Stefan Eike указал на то, что в прошлом выпуске я пропустил символ «t» в команде: | ||
+ | |||
+ | <code>sudo smartctl -H /dev/sda</code> | ||
+ | |||
+ | Поэтому спасибо Stefan за подсказку, и простите все, кто столкнулся с проблемами из-за этой команды. | ||
+ | |||
+ | 15 ноября я получил письмо от корректора Brian Jenkins. Он написал, что хотел бы увидеть статью, посвящённую GNU Screen, так как он начал её использовать и считает очень полезной. Brian, вот твоя статья! Я снова хочу поблагодарить его за напоминание о Screen, ведь я всё время собирался написать о ней, когда думал о новой статье. После того, как он посоветовал эту тему, я решил, что это отличная идея написать одну-две статьи. Я наверняка напишу ещё одну статью в следующем месяце и расскажу о Screen больше. Я решил, что буду использовать Screen по максимуму все эти недели и настрою её так хорошо, как смогу. В конце концов, нельзя писать о приложении, с которым никогда не работал. | ||
+ | |||
+ | В этой статье я расскажу про установку, использование (горячие клавиши и т.д.), настройку .screenrc, а также о плюсах и минусах Screen. В следующем месяце я сосредоточусь на продвинутом использовании Screen (мультисессии, Screen поверх SSH и др.). Таким образом, читатель будет иметь необходимые знания для понимания следующей части, а я смогу рассказать не о том, как использовать программу, а почему. Так что же такое GNU Screen? GNU Screen — это терминальный мультиплексор. Если это ни о чём вам не говорит, терминальный мультиплексор, по сути дела, создаёт серию «виртуальных» терминалов внутри другого терминала или tty-экрана. Эти виртуальные терминалы можно присоединять к новому терминалу или другой учётной записи, отсоединять их и т.д. Вы можете спросить себя: «Почему просто не открыть несколько терминалов?». Так можно поступить, и я сам привык использовать несколько терминалов, но Screen предлагает вам возможность работы со множеством виртуальных терминалов в одной экранной сессии, подобно вкладкам (да, я знаю, что есть эмуляторы терминалов с поддержкой вкладок). Однако Screen также позволяет вам передать всю сессию, включая вкладки, в новый терминал, другую учетную запись или tty экран. | ||
+ | |||
+ | Конечно, лучший способ понять, что такое Screen — установить и попробовать его. Для установки Screen на компьютер введите команду: | ||
+ | |||
+ | <code>sudo apt-get install screen</code> | ||
+ | |||
+ | После установки вы можете протестировать Screen, просто набрав: | ||
+ | |||
+ | <code>screen</code> | ||
+ | |||
+ | Вы увидите, что открылся... пустой терминал! Screen выглядит в точности как терминал, если запускать его без аргументов, хотя вы можете увидеть, что это действительно Screen, нажав C-a d (т.е. «CTRL + a», затем «d»). Вы увидите терминал, который вы открыли прежде, со строкой: | ||
+ | |||
+ | <code>[detached]</code> | ||
+ | |||
+ | Это значит, что экранная сессия, запущенная раньше, была отсоединена, но не закрыта. | ||
+ | |||
+ | Чтобы посмотреть полный список горячих клавиш в Screen, воспользуйтесь ссылкой в секции «Читайте также». Вот некоторые из них, которые я часто использую: | ||
+ | |||
+ | * Ctrl + a, d — отсоединяет экран | ||
+ | * | ||
+ | * Ctrl + a, 0-9 — переключает на соответственный виртуальный терминал в сессии экрана | ||
+ | * | ||
+ | * Ctrl + a, Ctrl + a — переключает на предыдущее окно | ||
+ | * | ||
+ | * Ctrl + a, Ctrl + c — создаёт новое окно с оболочкой и переключается на него | ||
+ | * | ||
+ | * Ctrl + a, k — закрывает текущее окно | ||
+ | |||
+ | Отсоединив свой экран, возможно, вы захотите узнать, как вернуть его обратно. Если вы введёте следующую команду в терминале, вы получите список экранов: | ||
+ | |||
+ | <code>screen -ls</code> | ||
+ | |||
+ | Мой список выглядит так: | ||
+ | |||
+ | <code>There is a screen on: | ||
+ | |||
+ | 17153.pts-0.lswest-netbook (Detached) | ||
+ | |||
+ | 1 Socket in /tmp/screens/S-lswest. | ||
+ | |||
+ | Или, если ввести команду из этой экранной сессии: | ||
+ | |||
+ | There is a screen on: | ||
+ | |||
+ | 17153.pts-0.lswest-netbook (Attached) | ||
+ | |||
+ | 1 Socket in /tmp/screens/S-lswest.</code> | ||
+ | |||
+ | После просмотра этого списка вы, возможно, запутаетесь. По сути, здесь приводится список файлов, которые созданы каждой экранной сессией в /tmp/screens/S-<username>/. Также тут отображается статус этого экрана (присоединён, отсоединён и т.д.). Чтобы переподключиться или «присоединить» экранную сессию, нужно выполнить следующую команду: | ||
+ | |||
+ | <code>screen -r <name of screen></code> | ||
+ | |||
+ | Для примера выше команда будет: | ||
+ | |||
+ | <code>screen -r 17153.pts-0.lswest-netbook</code> | ||
+ | |||
+ | Конечно, все мы ленивы, поэтому мы будет использовать только числовой ID (в данном случае 17153). ID достаточно для доступа к локальной сессии экрана, однако, если вы захотите подключиться к удалённой сессии, вам нужно указать ID полностью. | ||
+ | |||
+ | |||
+ | Можно предложить небольшую настройку, которая может оказаться полезной, — писать номер экрана в приглашении Bash или Zsh. Это можно сделать, добавив переменную «$WINDOW» в строку приглашения, после чего она покажет значение текущего открытого окна. Если у вас 3 открытых окна в экранной сессии, и вы в командной оболочке в экране 1 (нумерация начинается с 0, поэтому 1 означает второй экран), вы увидите значение 1. Текст из моей настройки приведён ниже. | ||
+ | |||
+ | Это приглашение в Z-Shell, оно не будет работать в Bash, но вы поймёте, как его использовать. Файл проверяет, есть ли значение в $WINDOW, и если есть, он отображает его в приглашении. В комментариях видно, как выглядят приглашения в обоих случаях. Мне это показалось очень полезным при работе с Screen. | ||
+ | |||
+ | Последнее, о чём я хочу рассказать в этом месяце — создание файла .screenrc, который содержит настройки Screen. Мой файл .screenrc выглядит как текст справа, на странице 7 (основанный на .screenrc пользователя rson с форумов ArchLinux). | ||
+ | |||
+ | Комментарий «hardstatus alwayslastline» — это пример того, как это выглядит в результате. Все другие команды хорошо документированы. В результате экран выглядит так: (Рис 1.) | ||
+ | |||
+ | Это начальный .screenrc. Потребуется несколько статей, чтобы рассказать хотя бы про половину того, что можно настроить. Я просто оставлю .screenrc как он есть с комментариями. В разделе «Читайте также» вы найдёте ссылку на сайт, который расскажет о всех возможных настройках файла .screenrc. | ||
+ | |||
+ | И самое последнее, о чём мне нужно рассказать в этой статье — как выйти из screen. Есть два способа: | ||
+ | |||
+ | - Ctrl + a, \ — выходит из screen и закрывает все окна; | ||
+ | - закрыть все окна кроме оболочки, а затем набрать. | ||
+ | |||
+ | <code>exit</code> | ||
+ | |||
+ | Если у кого-то остались ещё вопросы, или он хочет попросить рассказать о конкретном аспекте Screen, просто напишите мне на lswest34@gmail.com. То же самое касается тех, кто может предложить идеи статей любого вида, или вопросы о CLI. Желаю всем приятных выходных и хорошего нового года. | ||
+ | |||
+ | ----------------------- | ||
+ | Читайте также: | ||
+ | Описание горячих клавиш http://www.gnu.org/software/screen/manual/html_node/Default-Key-Bindings.html#Default-Key-Bindings | ||
+ | |||
+ | краткий список настроек .screenrc файлов и Screen в целом http://www.math.utah.edu/docs/info/screen_9.html | ||
+ | |||
+ | --------------------------------------- | ||
+ | |||
+ | <style center> | ||
+ | //[[..:32|К содержанию номера]]// | ||
+ | |||
+ | //[[:fullcircle|К архиву журналов]]// | ||
+ | </style> | ||
+ | |||
+ | {{tag>Система Администрирование Full_Circle BASH}} |