Відмінності між версіями «Screen»

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
(Створена сторінка: = Основні комбінації клавіш для screen = {| class="wikitable" ! Дія !! Комбінація клавіш !! Опис |- | Запу...)
 
 
(Не показано одну проміжну версію цього користувача)
Рядок 31: Рядок 31:
 
|-
 
|-
 
| Створення розділеного екрану || <code>Ctrl-a S</code> || Створення розділеного екрану.
 
| Створення розділеного екрану || <code>Ctrl-a S</code> || Створення розділеного екрану.
 +
|-
 +
| Видалення всіх розділених областей, окрім активної || <code>Ctrl-a Q</code> || Закриває всі розділені області, окрім активної.
 
|-
 
|-
 
| Видалення розділеного екрану || <code>Ctrl-a X</code> || Видалення розділеного екрану.
 
| Видалення розділеного екрану || <code>Ctrl-a X</code> || Видалення розділеного екрану.
Рядок 118: Рядок 120:
 
| Відновити потік даних || <code>Ctrl-q</code> || Відновити (розморозити) вивід тексту в терміналі.
 
| Відновити потік даних || <code>Ctrl-q</code> || Відновити (розморозити) вивід тексту в терміналі.
 
|}
 
|}
 +
 +
 +
== Налаштування termcapinfo ==
 +
Налаштування термінальної інформації для `xterm` у файлі `.screenrc`.
 +
 +
'''Команда:'''
 +
<code>termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'</code>
 +
 +
'''Пояснення:'''
 +
* <code>\E[r</code> – Встановлює область прокрутки на повний розмір вікна.
 +
* <code>\E[m</code> – Скидає всі атрибути (стилі, кольори) до початкових значень.
 +
* <code>\E[2J</code> – Очищає весь екран.
 +
* <code>\E[H</code> – Переміщує курсор на початкову позицію (1, 1).
 +
* <code>\E[?7h</code> – Вмикає режим переносу рядка (wraparound mode).
 +
* <code>\E[?1;4;6l</code> – Вимикає певні режими:
 +
  ** <code>1</code> – Вимикає режим застосування клавіш курсору.
 +
  ** <code>4</code> – Вимикає швидку прокрутку.
 +
  ** <code>6</code> – Вимикає відносне позиціонування курсору.
 +
 
 +
Це налаштування застосовується для терміналів типу `xterm`, щоб запобігти змінам розмірів вікна та зберегти певні властивості терміналу.
 +
 +
== Скрипт для налаштування screen ==
 +
Цей скрипт створює конфігураційний файл для автоматичного запуску або підключення до сесії `screen`, а також налаштовує параметри терміналу для screen.
 +
 +
'''Скрипт:'''
 +
<source lang="bash">
 +
# configure screen
 +
cat << 'EOF' > /etc/profile.d/bash_screen.sh
 +
if [ -z "$STY" ]; then
 +
    export LANG=en_US.UTF-8
 +
    export LC_ALL=en_US.UTF-8
 +
    export LC_CTYPE=en_US.UTF-8
 +
    if screen -list | grep -q "Detached"; then
 +
        screen -x $(screen -list | grep "Detached" | head -n 1 | awk '{print $1}')
 +
    else
 +
        screen -S default
 +
    fi
 +
    logout
 +
fi
 +
EOF
 +
</source>
 +
 +
'''Пояснення:'''
 +
* Скрипт створює файл <code>/etc/profile.d/bash_screen.sh</code>, який виконується при кожному вході в систему.
 +
* Якщо сесія `screen` не запущена (<code>[ -z "$STY" ]</code>), він автоматично:
 +
  ** Підключається до першої від'єднаної сесії `screen` (<code>screen -x</code>).
 +
  ** Якщо від'єднаних сесій немає, створюється нова сесія з назвою <code>default</code> (<code>screen -S default</code>).
 +
* Після виходу з сесії `screen`, користувач автоматично розлоговується з системи (<code>logout</code>).

Поточна версія на 12:05, 19 вересня 2024

Основні комбінації клавіш для screen

Дія Комбінація клавіш Опис
Запуск нового сеансу screen Запускає новий сеанс screen.
Від'єднання від поточного сеансу Ctrl-a d Від'єднує від поточного сеансу.
Вихід з screen Ctrl-a \ Вихід з screen та завершення всіх запущених в ньому процесів.
Наступне вікно Ctrl-a n Перемикання на наступне вікно.
Попереднє вікно Ctrl-a p Перемикання на попереднє вікно.
Вибір вікна за номером Ctrl-a 0 Вибір вікна за номером (наприклад, 0).
Створення нового вікна Ctrl-a c Створення нового вікна.
Закриття поточного вікна Ctrl-a k Закриття поточного вікна.
Перегляд списку вікон Ctrl-a w Перегляд списку вікон.
Режим копіювання Ctrl-a [ Вхід в режим копіювання (для копіювання тексту). Потім переміщайте курсор стрілками, щоб вибрати текст, і натисніть Enter для копіювання.
Вставка скопійованого тексту Ctrl-a ] Вставка скопійованого тексту.
Перегляд журналу повідомлень Ctrl-a M Перегляд журналу повідомлень.
Перемикання між розділеними вікнами Ctrl-a tab Перемикання між розділеними вікнами.
Створення розділеного екрану Ctrl-a S Створення розділеного екрану.
Видалення всіх розділених областей, окрім активної Ctrl-a Q Закриває всі розділені області, окрім активної.
Видалення розділеного екрану Ctrl-a X Видалення розділеного екрану.
Переривання команди Ctrl-b b Використовується для переривання команди.
Очистити вікно Ctrl-a C Очищення вікна.
Виконати команду Ctrl-a : Виконання команди в режимі командного рядка.
Копіювати текст Ctrl-a [ Вхід у режим копіювання тексту.
Від'єднати сесію Ctrl-a d Від'єднання від поточної сесії.
Відображення Ctrl-a * Показати всі доступні вікна.
Зберегти термінал Ctrl-a . Збереження термінальної сесії.
Підгонка розміру вікна Ctrl-a F Підгонка розміру вікна.
Потік даних Ctrl-a ^F f Керування потоком даних.
Фокус вікна Ctrl-a ^I Зміна фокуса вікна.
Журнал виводу Ctrl-a h Запис журналу виводу.
Історія команд Ctrl-a { } Перегляд історії команд.
Інформація Ctrl-a i Перегляд інформації про сесію.
Вихід зі сесії Ctrl-a ^L l Вихід з поточної сесії.
Перемикання Ctrl-a ^N Перемикання між сесіями.
Створити вікно Ctrl-a ^C c Створення нового вікна.
Назва вікна Ctrl-a A Зміна назви вікна.
Звуковий сигнал Ctrl-a ^G Включення/вимкнення звукового сигналу.
Ліцензія Ctrl-a , Перегляд інформації про ліцензію.
Локальний екран Ctrl-a ^X x Заблокувати/розблокувати екран.
Наступне вікно Ctrl-a ^@ ^N sp n Перемикання на наступне вікно.
Номер вікна Ctrl-a N Показати номер вікна.
Повідомлення Ctrl-a ^M m Показати останнє повідомлення.
Попереднє вікно Ctrl-a ^H ^P p ^? Перемикання на попереднє вікно.
Пауза сесії Ctrl-a ^S s Пауза поточної сесії.
Призупинити екран Ctrl-a ^Z z Призупинити поточний екран.
Режим моніторингу Ctrl-a M Включення/вимкнення режиму моніторингу.
Режим мета Ctrl-a a Перемикання в режим мета.
Розділити вікно Ctrl-a S Розділити поточне вікно.
Роздрукувати екран Ctrl-a h Роздрукувати поточний екран.
Скинути екран Ctrl-a ^L l Скинути екран.
Створити новий екран Ctrl-a ^C c Створити новий екран.
Таймер Ctrl-a ^T t Показати поточний час.
Титул вікна Ctrl-a A Встановити титул для вікна.
Увімкнути/вимкнути звук Ctrl-a ^G Увімкнути або вимкнути звуковий сигнал.
Фіксація потоку даних Ctrl-a ^S s Фіксація потоку даних.
Читати буфер Ctrl-a < Читати буфер.
Ширина вікна Ctrl-a W Встановити ширину вікна.
Екран версії Ctrl-a v Показати версію screen.
Закрити поточне вікно Ctrl-a X Закрити поточне вікно.
Заблокувати потік даних Ctrl-s Зупинити (заморозити) вивід тексту в терміналі.
Відновити потік даних Ctrl-q Відновити (розморозити) вивід тексту в терміналі.


Налаштування termcapinfo

Налаштування термінальної інформації для `xterm` у файлі `.screenrc`.

Команда:

termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

Пояснення:

  • \E[r – Встановлює область прокрутки на повний розмір вікна.
  • \E[m – Скидає всі атрибути (стилі, кольори) до початкових значень.
  • \E[2J – Очищає весь екран.
  • \E[H – Переміщує курсор на початкову позицію (1, 1).
  • \E[?7h – Вмикає режим переносу рядка (wraparound mode).
  • \E[?1;4;6l – Вимикає певні режими:
 ** 1 – Вимикає режим застосування клавіш курсору.
 ** 4 – Вимикає швидку прокрутку.
 ** 6 – Вимикає відносне позиціонування курсору.
 

Це налаштування застосовується для терміналів типу `xterm`, щоб запобігти змінам розмірів вікна та зберегти певні властивості терміналу.

Скрипт для налаштування screen

Цей скрипт створює конфігураційний файл для автоматичного запуску або підключення до сесії `screen`, а також налаштовує параметри терміналу для screen.

Скрипт:

# configure screen
cat << 'EOF' > /etc/profile.d/bash_screen.sh
if [ -z "$STY" ]; then 
    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    export LC_CTYPE=en_US.UTF-8
    if screen -list | grep -q "Detached"; then
        screen -x $(screen -list | grep "Detached" | head -n 1 | awk '{print $1}')
    else
        screen -S default
    fi
    logout
fi
EOF

Пояснення:

  • Скрипт створює файл /etc/profile.d/bash_screen.sh, який виконується при кожному вході в систему.
  • Якщо сесія `screen` не запущена ([ -z "$STY" ]), він автоматично:
 ** Підключається до першої від'єднаної сесії `screen` (screen -x).
 ** Якщо від'єднаних сесій немає, створюється нова сесія з назвою default (screen -S default).
  • Після виходу з сесії `screen`, користувач автоматично розлоговується з системи (logout).