Ukryte funkcje „ekranu”


Odpowiedzi:


31

Ja uwielbiam go używać do podłączania konsol szeregowych, czyli

screen /dev/ttyS0 19200

To polecenie po prostu otwiera połączenie z portem szeregowym 0 (ttyS0) z szybkością transmisji 19200


jest to jedna z moich ulubionych rzeczy, które mogą przerażać ludzi, naprawdę jedna z najmniej oczekiwanych funkcji na
ekranie

1
I naprawdę jeden z moich ulubionych. Nie trzeba zajmować się ani konfigurować minicom, konserwatora itp. Gdy to odkryłem, czułem się jak małe dziecko w sklepie ze słodyczami.
Scott Pack,

Oczywiście - miło jest mieć otwartą sesję ekranu, podzieloną na dwa okna, z widocznymi obydwoma kluczami szeregowymi USB.
dotwaffle,

10

Najlepszą funkcją screenjest Byobu (wcześniej profile ekranowe), który jest domyślnie dostarczany z Ubuntu od czasu Jaunty: https://launchpad.net/byobu

Jest to menedżer konfiguracji z bardzo ładnymi ustawieniami domyślnymi, mnóstwem powiadomień o stanie i przydatnymi skrótami klawiaturowymi (np. F2 dla nowego ekranu, f3-f4 dla poprzedniej / następnej itd.)

Naprawdę nigdzie się bez niego nie wybieram :)


10

Z odpowiedzi KTamas: więcej niż jedna osoba może korzystać z tego samego ekranu, tzn. Jeśli twój znajomy korzysta z twojego sshkomputera, może on połączyć się z twoim ekranem. To wspaniale, gdy dwie lub trzy osoby pracują nad tymi samymi projektami.


1
Jest to znacznie lepsze do śledzenia działań użytkowników zdalnej pomocy technicznej i zabijania ich sesji, jeśli nie są dobre!
Tom O'Connor,

6

Niezupełnie „ukryta funkcja”; ale właściwie ustawiony plik .screenrc może zmienić świat. Jednym z lepszych przykładów jest googling screenrc i „brad sims” - ma doskonały plik do majstrowania.

powiedziawszy, moim ulubionym ustawieniem będzie 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
Biorąc pod uwagę, że ctrl + a jest używany zbyt często poza ekranem (początek linii w bash ktoś?) Podoba mi się to.
Scott Pack

1
ctrl + a / ctrl + e do przesuwania kursora, ale także gdy Minicom działa na ekranie. Ctrl + a, a, o dla opcji ...
petrus

6

Nie pamiętam, od kogo to ukradłem (ktoś na dotfile.org). Lekko zmodyfikowałem to dla 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

Następnie ustawiam następujące aliasy bash:

vim() {
        scr vim $*
}

man() {
        scr man $*
}

info() {
        scr info $*
}

watch() {
        scr watch $*
}

ssh() {
        scr ssh $*
}

Otwiera nowy ekran dla powyższych aliasów i iff za pomocą ssh, zmienia nazwę tytułu na nazwę hosta ssh.

Pozdrawiam z0mbix


: o. Podniosłeś i przystosowałeś to ode mnie? gist.github.com/137214
VxJasonxV

Nie, myślę, że był to członek personelu last.fm, który napisał o tym kiedyś na blogu.
z0mbix

4

Użyteczne jest to, że ekran może emulować większą szerokość niż twój terminal. Uważam to za przydatne, jeśli używam lessdo prawdziwych plików dziennika i nie chcę, aby linie się zawijały. Za pomocą:

Ctrl-A:width -w 999

Mogę ustawić screen, aby były szersze niż mój terminal, a wiersze logowania lesssię nie zawijają.


10
Dla twojej informacji, opcja less -spowie, żeby nie zawijała linii. Możesz używać Lefti Rightdo przewijania linii.
MikeyB,

4

Możliwość zmiany klawisza sterującego za pomocą opcji -ethat podczas uruchamiania ekranu. Używam go, aby móc zagnieżdżać sesje ekranowe w sobie. Przykład: „screen -e ^ w ^ x” zmienia klawisz Ctr-W.


2

Jedna fajna funkcja: możesz użyć, backtickaby pobrać dodatkowe informacje do wyświetlenia w podpisie. Na przykład mam skrypt, który wyświetla jednoliniowe podsumowanie liczby nowych wiadomości w różnych folderach, i pojawia się w dolnej linii, jeśli moja sesja ekranowa wraz z nazwą hosta z konfiguracją wygląda następująco:

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

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

Kluczem jest bit% 1`, który odnosi się do wyjścia zadania backtick 1.

(Używam hardstatusjako ciąg tytułu Xterm i mam go ustawiony inaczej, więc użycie captionzamiast hardstatus alwayslastline.)


2

Nie jest to funkcja „ukryta”, ale możliwość udostępnienia sesji ekranu innemu aktywnemu użytkownikowi jest bardzo przydatna.

Istnieją skomplikowane sposoby konfiguracji udostępniania ekranu, w tym uprawnienia kontroli dostępu i zarządzanie nazwami użytkowników. To, co najczęściej robię ze współpracownikami, jest znacznie szybsze i brudniejsze:

  1. Zaloguj się do danej maszyny w nowym oknie.
  2. Pozwól każdemu pisać na moim terminalu: chmod 777 $(tty)
  3. Sudo na swoje konto: sudo su <username>
  4. Udostępnij swój ekran: screen -x <session>

Nie wymaga to wcześniejszej konfiguracji ani udostępniania hasła.


1

Mały ściągawka, którą sobie wydrukowałem;

(Uwaga: wszystko poprzedza Ctrl-A)

Odp .: zmień nazwę okna   
": pokaż listę okien   
d: sesja detatch

I screen -D -Rodłączyć i ponownie dołączyć działającą sesję (w przypadku utraty dostępu do sesji).

Żadne z nich nie są naprawdę ukrytymi funkcjami, ale są to funkcje, które uważam za najbardziej przydatne.


1

Jest to podstawowa funkcja, ale oczywiście najlepiej jest Ctrl-A:rozmawiać bezpośrednio z ekranem. : screen -t title ssh hostnameitp.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.