Что такое экран 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}'