Вопрос
Что такое экран GNU?
Решение
Что Экран GNU?Большой!
Хм, немного более полезный ответ:он позволяет запускать несколько консольных приложений или команд в одном терминале.Что-то вроде эмулятора терминала с вкладками.На самом деле, это именно то, что есть (только это не делается с помощью обычных наборов инструментов GUI)
Почему это так здорово?Все просто: вы можете запустить программу в сеансе экрана (Выполнить screen
и он запускает оболочку по умолчанию, запустите screen myapp
и оно запускает myapp в сеансе), нажмите Ctrl+а (последовательность управления экраном), а затем нажмите д (Ctrl+а,д) отсоединиться.
Программа продолжает работать в фоновом режиме, но, в отличие от выполнения mycmd &
, Вы можете запустить screen -r
переприсоединить сессию, и все будет так, как вы оставили.Вы можете отправлять входные данные в команду, если это пользовательский интерфейс проклятий, все по-прежнему работает так же, как если бы это был «настоящий» терминал.
Он очень популярен среди консольных IRC-клиентов — вы можете запустить (скажем) screen irssi
и повторно подключите сеанс из любого места, откуда доступен SSH.
Несколько полезных команд:
- Ctrl+а, с создать новый виртуальный терминал (или «окно») в сеансе
- Ctrl+а, н и Ctrl+а, п циклически просматривать несколько окон
- Ctrl+а, 1 чтобы выбрать окно 1, Ctrl+а, 4 выбрать окно 4 и т. д.
- Ctrl+а, Ctrl+а для переключения между двумя последними активными окнами
- Ctrl+а, сдвиг+а (заглавная а) позволяет переименовать текущее окно
- Ctrl+а, ` (для меня это сдвиг+2 - кавычка) перечисляет окна, вы можете использовать стрелки и выбрать одно.Также полезно с настройкой «панели вкладок», которую я перечислю через секунду.
Еще несколько полезных вещей, на которые я наткнулся:
- Использовать
-U
поставьте флаг при запуске экрана, чтобы он поддерживал Юникод (например,screen -xU
) - А
-x
Флаг позволяет вам повторно подключать один и тот же сеанс несколько раз.(-r
разрывает существующие соединения) - Со строкой состояния можно делать интересные вещи.У меня есть настройки для отображения
[ hostname ][ 0-$ bash (1*$ irssi) ][16/09 9:32]
(Работает по имени хоста и имеет два окна.Это установлено строками жесткого статуса в моем .screenrc (в конце ответа).
startup_message off
vbell off
hardstatus alwayslastline
hardstatus string '%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{=b kR}(%{W}%n*%f %t%?(%u)%?%{=b kR})%{= kw}%?%+Lw%?%?%= %{g}]%{=y C}[%d/%m %c]%{W}'