Что такое экран GNU?
Что такое экран GNU?
Ответ 1
Что такое экран GNU? Отлично!
Erm, немного более полезный ответ: он позволяет запускать несколько консольных приложений или команд в одном терминале. Вид вроде эмулятора с вкладками. Фактически, это именно то, что оно (просто не сделано с помощью обычных GUI-инструментов)
Почему это так здорово? Простой, вы можете запустить программу в сеансе экрана (запустите screen
и запустите оболочку по умолчанию, запустите screen myapp
и запустили myapp в сеансе), нажмите ctrl + a (последовательность управления экраном) и затем нажмите d (ctrl + a, d) для отсоединения.
Программа работает в фоновом режиме, но, в отличие от mycmd &
, вы можете запустить screen -r
, чтобы повторно подключить сеанс, и все так, как вы его оставили. Вы можете отправить ввод в команду, если это пользовательский интерфейс curses, все работает так же, как если бы это был "реальный" терминал.
Он очень популярен среди консольных IRC-клиентов - вы можете запустить (скажем) screen irssi
и снова подключить сеанс из любого места, из которого вы можете получить SSH.
Несколько полезных команд:
- ctrl + a, c, чтобы создать новый виртуальный терминал (или "окно" ) в сеансе
- ctrl + a, n и ctrl + a, p для циклического перехода через несколько окон
- ctrl + a, 1, чтобы выбрать окно 1, ctrl + a, 4, чтобы выбрать окно 4 и т.д.
- ctrl + a, ctrl + a для перехода между двумя последними активными окнами
- ctrl + a, shift + a (верхний регистр a) позволяет вам переименовать текущее окно
- ctrl + a, ` (для меня, что shift + 2 - метка кавычки) отображает окна, вы можете использовать стрелки и выбрать один. Также полезно с настройкой "tab bar", которую я укажу в секундах
Несколько других полезных вещей, на которые я наткнулся:
- Используйте флаг
-U
при запуске экрана, чтобы он поддерживал Unicode (например,screen -xU
) - Флаг
-x
позволяет повторно подключать один и тот же сеанс несколько раз. (-r
отключает существующие соединения) - Вы можете делать интересные вещи в строке состояния. У меня есть моя настройка для отображения
[ hostname ][ 0-$ bash (1*$ irssi) ][16/09 9:32]
(Запуск по имени хоста, у него два окна. Это задано строками hardstatus в моем .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}'