1

Использование команды screen в Linux - эффективный способ иметь несколько "окон" для работы. Один экран может быть оболочкой bash, другая командная строка mysql, открытая для базы данных, и еще одна сессия vim для редактирования файлов исходного кода.

В Windows можно использовать alt-tab для быстрого изменения фокуса на другое окно. Под Linux мне может понадобиться:

  1. Введите Ctrl-a + "d" (чтобы отсоединить текущий экран)
  2. Введите «screen -ls», чтобы увидеть pid для активных экранов (при условии, что я не помню pid другого экрана)
  3. Введите "screen -r [pid]" (чтобы возобновить выбранный экран)

Теперь обычное использование командной строки может быть быстрым после получения соответствующих команд и ярлыков. Однако переключение между экранами не кажется элегантным и быстрым по сравнению с простым нажатием Alt-tab в Windows. На самом деле, это кажется обширным, неуклюжим и утомительным, чтобы набирать команды и pid.

(Пункт 3 выше можно немного улучшить, набрав "scr" + Ctrl-r, чтобы вернуться к истории команд, предполагая, что я получил доступ к другому экрану ранее, но он все еще не очень элегантен)

Итак, мне интересно, есть ли способ быстрого переключения между экранами с помощью одного или нескольких нажатий клавиш - предпочтительно тот, который не требует повторной настройки каждый раз, когда начинается новый сеанс терминала с сервером.


Обновление: как указывает г-н Листер, терминальное приложение на рабочих столах Linux (и даже в Windows в виде замазки) само по себе предоставляет возможность открывать несколько консолей и быстро переключаться между ними, например Ctrl+PgUp/Dn в Ubuntu. Однако в этом случае я использую базовый терминал bash на автономном сервере в облаке, поэтому принятое решение является идеальным в том смысле, что описанная функциональность находится в bash на самом сервере и не зависит от открытия дополнительных соединений. на сервер.

1 ответ1

2

Зачем запускать отдельные экземпляры экрана вообще. То, что я думаю, вы хотите сделать, может быть сделано гораздо более эффективно (как в виде ресурсов, так и с меньшим количеством набрав, как показано ниже :)

  1. Запустите только один экземпляр экрана.
  2. Контроль - A C

Теперь у вас есть одна экранная программа с двумя активными оболочками.

Вы можете переключаться между окнами с помощью Control - A number.
Вы можете просмотреть, какие окна запущены с помощью Control A "
Вы можете назначить имя текущему активному окну с помощью Control - A A

Если у вас есть несколько экранов, которые вы используете последовательно, вы можете сделать это в .screenrc. Пример sunch файла, который запускает 4 оболочки одновременно и назначает легко запоминающиеся имена:

$ cat ~/.screenrc
vbell off
startup_message off
screen -t ele        0
screen -t OS         1
screen -t A2         2
screen -t Universes  3

И только с одним запущенным экраном нет необходимости в screen -ls . Подойдет любой screen -d и screen -r или screen -x .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .