Приховані особливості `екрана`


31

Оскільки я використовую команду * nixscreen цілий день, і я не могла знайти когось, хто починає це питання, я вважав, що її слід запустити. Ви знаєте вікі: спільнота вікі, одна відповідь на функції, щоб ми могли голосувати.


5
екран настільки корисний, що належить на всіх сайтах: stackoverflow.com/questions/70614/gnu-screen-survival-guide
Зак Томпсон

Відповіді:


31

Я люблю використовувати його для підключення до послідовних консолей, тобто

screen /dev/ttyS0 19200

Ця команда просто відкриває з'єднання з послідовним портом 0 (ttyS0) зі швидкістю передачі в 19200


це одна з моїх улюблених речей, з якої вигадують людей, справді одна з найменш очікуваних функцій
екрану

1
І справді один із моїх улюблених. Не потрібно мати справу з чи налаштовувати мініком, консерватор тощо. Я почував себе маленькою дитиною в магазині цукерок, коли я виявив це.
Скотт Пак

Абсолютно - приємно відкрити сеанс екрану, розділений на два вікна, з ними видно обидва USB-серійні ключі.
dotwaffle

10

Найкраща особливість screen- Byobu (раніше екранні профілі), який за замовчуванням поставляється з Ubuntu з часу Jaunty: https://launchpad.net/byobu

Це менеджер конфігурації з дуже хорошими за замовчуванням, тонами сповіщень про стан та корисними комбінаціями клавіш (тобто f2 для нового екрану, f3-f4 для попереднього / наступного тощо)

Я справді вже нікуди не йду без нього :)


10

З підсистеми KTamas: Більше однієї людини може використовувати один і той же екран, тобто якщо ваш друг sshувійшов у ваш комп'ютер, він може підключитися до вашого екрана. Чудово, коли над одними і тими ж проектами працюють дві-три людини.


1
Це набагато краще для того, щоб слідкувати за тим, що роблять користувачі віддаленої підтримки, і вбивати їх сеанс, якщо вони не приносять користі!
Том О'Коннор

6

Не зовсім «прихована функція»; але правильно встановлений .screenrc файл може змінити світ. Один з кращих прикладів, що їх можна знайти, можна знайти в Google googling screenrc та 'brad sims' - у нього є чудовий файл, з яким можна повозитися.

що сказав, моєю улюбленою настройкою буде bindkey:

# bind F7  to detach screen session from this terminal
# bind F8  to kill current screen window.
# bind F9  to create a new screen
# bind F10 to rename current screen window
# bind F11 to move to previous window
# bind F12 to move to next window
bindkey -k k7 detach
bindkey -k k8 kill
bindkey -k k9 screen
bindkey -k k; title
bindkey -k F1 prev
bindkey -k F2 next

2
Враховуючи, що ctrl + a використовується занадто часто поза екраном (початок рядка в кого-небудь?) Мені це подобається.
Скотт Пак

1
ctrl + a / ctrl + e для переміщення курсору, але також, коли minicom працює на екрані. Ctrl + a, a, o для варіантів ...
petrus

6

Я не можу згадати, у кого я це вкрав (хтось на dotfile.org). Я трохи змінив його на ssh:

#!/bin/sh
# scr - Runs a command in a fresh screen
#
# Get the current directory and the name of command

wd=`pwd`
cmd=$1
shift

# We can tell if we are running inside screen by looking
# for the STY environment variable.  If it is not set we
# only need to run the command, but if it is set then
# we need to use screen.

if [ -z "$STY" ]; then
        $cmd $*
else
        # Screen needs to change directory so that
        # relative file names are resolved correctly.
        screen -X chdir $wd

        # Ask screen to run the command
        if [ $cmd == "ssh" ]; then
                screen -X screen -t ""${1##*@}"" $cmd $*
        else
                screen -X screen -t "$cmd $*" $cmd $*
        fi
fi

Потім я встановлюю наступні псевдоніми bash:

vim() {
        scr vim $*
}

man() {
        scr man $*
}

info() {
        scr info $*
}

watch() {
        scr watch $*
}

ssh() {
        scr ssh $*
}

Він відкриває новий екран для вищезазначених псевдонімів і iff за допомогою ssh, він перейменовує назву екрана з ім'ям хосту ssh.

Ура z0mbix


: o. Ви підняли і адаптували це від мене? gist.github.com/137214
VxJasonxV

Ні, я думаю, що колись це було від співробітника last.fm, який блогував про це.
z0mbix

4

Я вважаю корисним те, що екран може імітувати більшу ширину, ніж ваш термінал. Я вважаю це корисним, якщо я використовую lessсправжні файли журналів, і я не хочу, щоб рядки переносилися. Використання:

Ctrl-A:width -w 999

Я можу встановити, що screen"s" буде ширшим, ніж мій термінал, і рядки журналу lessне завершаться.


10
FYI, менший варіант -sскаже, щоб не переводити лінії. Ви можете використовувати Leftта Rightпрокручувати рядки.
MikeyB

4

Можливість змінити клавішу керування за допомогою -ehat при запуску екрана. Я використовую його, щоб я міг вкладати сеанси екрану всередині один одного. Приклад: "екран -e ^ w ^ x" робить клавішу управління ctr-w.


2

Одна приємна особливість: ви можете використовувати backtickдодаткову інформацію для відображення в підписі. Наприклад, у мене є сценарій, який виводить одно рядковий підсумок кількості нових поштових повідомлень у різних папках, і у мене це відображається в нижньому рядку, якщо мій екранний сеанс разом із ім'ям хоста з конфігурацією виглядає так:

backtick 1 15 15 /home/waltermundt/bin/newmail

caption always
caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"

Ключ - це біт% 1`, який відноситься до виводу завдання 1 backtick.

(Я використовую hardstatusяк рядок заголовка xterm і встановлюю його по-різному, тому використання captionзамість hardstatus alwayslastline.)


2

Не «прихована» функція, але можливість ділитися сеансом на екрані з іншим активним користувачем дуже корисна.

Існують складні способи налаштування спільного доступу до екрана, включаючи дозволи доступу та керування іменами користувачів. Що я найчастіше роблю з колегами, це набагато швидше і брудніше:

  1. Увійдіть у відповідну машину у новому вікні.
  2. Дозволити будь-кому написати на мій термінал: chmod 777 $(tty)
  3. Судо на їх рахунок: sudo su <username>
  4. Поділитися їх екраном: screen -x <session>

Для цього не потрібна попередня конфігурація або обмін паролем.


1

Маленький шпаргалку, яку я роздрукував для себе;

(Примітка. Усе передує Ctrl-A)

A: перейменуйте вікно   
": показати список вікон   
d: сеанс від'єднання

А screen -D -Rтакож зняти з’єднання та повторно приєднати запущений сеанс (якщо ви якось втратите доступ до свого сеансу).

Жодна з них не є насправді прихованими функціями, але саме ці функції, які я вважаю найбільш корисними.


1

Це основна особливість, але, звичайно, найкраще Ctrl-A:говорити безпосередньо на екрані. : screen -t title ssh hostnameтощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.