Provided by: manpages-pl_0.5-1_all
NAZWA
screen - menedżer ekranu z emulacją VT100/ANSI
SKŁADNIA
screen [-opcje] [komenda [argumenty]] screen -r [[pid.]tty[.host]] screen -r właścicielsesji/[[pid.]tty[.host]]
OPIS
Uwaga! To tłumaczenie może być nieaktualne! Screen jest pełnoekranowym menedżerem okien, który dzieli fizyczny terminal między kilkoma procesami (zwykle interaktywnymi powłokami). Każdy z wirtualnych terminali daje funkcjonalność terminala DEC VT100, a dodatkowo również pewne funkcje sterujące ze standardów ISO 6492 (ECMA 48, ANSI X3.64) oraz ISO 2022 (np. wstaw/usuń linię i obsługę wielu zestawów znaków). Dla każdego wirtualnego terminala istnieje bufor przewijania oraz mechanizm wycinania i wklejania, który umożliwia przenoszenie obszarów tekstów między oknami. W momencie, gdy screen jest wywoływany, tworzy pojedyncze okno z powłoką (lub z podaną komendą), a następnie znika z drogi, abyś mógł używać programu w normalny sposób. W dowolnej chwili możesz utworzyć nowe pełnoekranowe okna z innymi programami (również z dodatkowymi powłokami), zabić istniejące okna, zobaczyć listę okien, włączyć raportowanie wyjścia, wklejać między nimi tekst, oglądać historię przewijania, przełączać się między oknami, itd. Wszystkie okna uruchamiają swoje programy zupełnie niezależnie od pozostałych. Programy pracują również wtedy, gdy ich okna są niewidoczne, a nawet wtedy, gdy cała sesja screen jest odłączona od terminala użytkownika. Gdy program się kończy, screen (domyślnie) zabija okno, które go zawierało. Jeśli okno to było na pierwszym planie, wyświetlacz przełącza się na okno poprzednie; jeśli żadne już nie pozostanie, screen kończy działanie. Wszystko co wstukasz, jest przesyłane do programu pracującego w bieżącym oknie. Wyjątkiem jest jedna sekwencja, która jest używana do inicjalizacji komendy menedżera okien. Domyślnie każda komenda rozpoczyna się od control-a (dalej skracane do C-a), po którym występuje drugi klawisz. Znak komendy i inne powiązania mogą być w pełni dostosowywane do twoich potrzeb, choć mogą być zawsze tylko dwuznakowe. Screen nie rozumie przedrostka "C-", oznaczającego control. Jako argumenty do np. komendy escape lub opcji -e używaj proszę notacji daszkowej ("^A" zamiast "C-a") . Screen drukuje znaki sterujące (złożone z Ctrl) również w notacji daszkowej. Standardowym sposobem utworzenia nowego okna jest wstukanie "C-a c". Tworzy to nowe okno z powłoką i przełącza się na nie natychmiast, niezależnie od stanu procesu z bieżącego okna. Podobnie można tworzyć nowe okno z własną komendą. Trzeba najpierw powiązać komendę z klawiszem (w twoim pliku .screenrc, lub w linii komend "C-a :") a następnie użyć jej zupełnie tak, jak komendy "C-a c". Poza tym, nowe okna można tworzyć również z pomocą komend w rodzaju: screen emacs prog.c spod znaku zachęty powłoki z poprzednio utworzonego okna. Nie spowoduje to uruchomienia kolejnej kopii screen, lecz przekaże nazwę komendy i jej argumenty menedżerowi okien (określonemu w zmiennej środowiskowej $STY), który użyje jej do utworzenia nowego okna. Powyższy przykład uruchomiłby edytor emacs (edytujący prog.c) i przełączył się do jego okna. Jeśli "/var/run/utmp" jest zapisywalny przez screen, to dla każdego okna zostanie zapisany odpowiedni rekord, który będzie usuwany po zakończeniu pracy okna. Jest to przydatne do pracy z "talk", "script", "shutdown", "rsend", "sccs" i innymi podobnymi programami, które używają pliku utmp do określenia, kim jesteś. Dopóki screen jest aktywny na twoim terminalu, własny rekord terminala jest usuwany z pliku utmp. Zobacz też "C-a L".
PODSTAWY
Zanim zaczniesz używać screen musisz upewnić się, że prawidłowo wybrałeś sobie rodzaj terminala, podobnie zresztą, jak dla każdego innego programu termcap/terminfo. (Możesz tego dokonać, używając np. tset(1).) Jeśli jesteś niecierpliwy i chcesz rozpocząć pracę bez szczególnego wczytywania się w instrukcję, powinieneś zapamiętać jedną komendę: "C-a ?". Wpisanie tych dwóch znaków spowoduje wyświetlenie listy dostępnych komend screen oraz ich powiązania. Każdy klawisz jest omówiony w sekcji "DOMYŚLNE WIĄZANIA KLAWISZY". Sekcja podręcznika "DOSTOSOWYWANIE" zajmuje się zawartością twojego .screenrc. Jeśli twój terminal jest "prawdziwym" terminalem auto-marginesowym (nie pozwala ostatniej pozycji ekranu na bycie poprawionej bez przewinięcia ekranu), możesz rozważyć użycie wersji terminala, która ma wyłączone automatyczne marginesy. Zapewni to właściwe i optymalne odświeżanie ekranu we wszystkich przypadkach. Większość dzisiejszych terminali ma "magiczne" marginesy (automatyczne marginesy plus używalna ostatnia kolumna). Jest to typ w stylu VT100 i jest doskonale przystosowany dla screen. Jeśli wszystko co masz to "prawdziwy" automarginesowy terminal, screen będzie w stanie go wykorzystać, jednak odświeżenie znaku wstawionego na ostatnią pozycję ekranu może nie być możliwe do czasu przewinięcia ekranu, lub przesunięcia znaku do innej bezpiecznej pozycji. Opóźnienie to może być skrócone przy użyciu terminala z właściwością wstawiania znaków (insert- character).
OPCJE LINII KOMEND
Screen ma następujące opcje linii komend: -a włącz wszystkie właściwości (z pewnymi wyjątkami) w termcapie każdego okna, nawet jeśli screen musi przerysowywać części wyświetlacza aby zaimplementować daną funkcję. -A Dostosuj rozmiary wszystkich okien do rozmiaru bieżącego terminala. Domyślnie, screen próbuje odtworzyć stare rozmiary swojego okna podczas podwieszania pod terminale zmiennej wielkości (te z "WS" w swoim opisie, np. suncmd lub jakiś xterm). -c plik przesłoń domyślny plik konfiguracyjny "$HOME/.screenrc" plikem plik. -d|-D [pid.tty.host] nie uruchamia screen, lecz odłącza pracującą gdzie indziej sesję screen. Ma to taki sam efekt jak wpisanie "C-a d" z terminala sterującego screen'a. -D jest odpowiednikiem klawisza odłączenia zasilania (power detach). Jeśli żadna sesja nie może być odłączona, opcja ta jest ignorowana. W połączeniu z -r/-R można osiągnąć ciekawsze efekty: -d -r Podłącz na nowo (reattach) sesję, a jeśli to konieczne, najpierw ją odłącz. -d -R Podłącz na nowo sesję, a jeśli to konieczne, najpierw ją odłącz, lub nawet utwórz. -d -RR Podłącz na nowo sesję, a jeśli to konieczne, odłącz ją lub utwórz. Użyj pierwszej sesji jeśli dostępnych jest więcej niż jedna. -D -r Podłącz na nowo sesję, a jeśli to konieczne, najpierw odłącz i wyloguj się zdalnie. -D -R Podłącz tu i teraz. Znaczy to: jeśli sesja działa, to podłącz na nowo. Jeśli to konieczne, najpierw odłącz i zdalnie się wyloguj. Jeśli nie działała, utwórz ją i poinformuj użytkownika. Jest to ulubiony sposób autora. -D -RR Podłącz tu i teraz. Cokolwiek to znaczy, po prostu to zrób. Uwaga: Zawsze jest dobrym pomysłem sprawdzenie statusu twoich sesji z pomocą "screen -list". -e xy określa, że znak komendy to x, a znak generujący literalny znak komendy to y. Domyślnym ustawieniem jest "C-a" i `a', co może być przekazane jako "-e^Aa". Podczas tworzenia sesji screen opcja ta ustawia domyślny znak komendy. W sesji wieloużytkownikowej, wszyscy dodani użytkownicy rozpoczną z tym znakiem komendy. Jednak podczas podłączenia do już działającej sesji, opcja ta zmienia tylko znak komendy podłączającego się użytkownika. Opcja ta jest równoważna odpowiednio komendom "defescape" lub "escape". -f, -fn, i -fa włącza lub wyłącza albo wchodzi w "automatyczny tryb przełączania" kontroli przepływu. Może to być też zdefiniowane poprzez "defflow" w pliku .screenrc. -h num Ustawia bufor przewijania historii na num linii. -i powoduje, że klawisz przerwania (zwykle C-c) przerywa wyświetlanie natychmiast gdy włączona jest kontrola przepływu. Zobacz komendę "defflow" z .screenrc dla szczegółów. Używanie tej opcji nie jest zalecane. -l i -ln włącza/wyłącza tryb zgłoszeniowy (dla odświeżania /var/run/utmp). Można to zdefiniować też poprzez komendę "deflogin" pliku .screenrc. -ls i -list nie uruchamia sesji screen, lecz drukuje listę łańcuchów pid.tty.host określających twoje sesje screen. Sesje oznaczone jako `detached' (odłączone) mogą być wznowione z pomocą "screen -r". Te, zaznaczone jako `attached' (podłączone) działają i mają terminal sterujący. Jeśli sesja działa w trybie wieloużytkownikowym, jest zaznaczona jako `multi'. Sesje oznaczone jako `unreachable' (nieosiągalne) żyją albo na innych hostach, albo są `martwe'. Sesja nieosiągalna jest uważana za martwą jeśli jej nazwa odpowiada albo nazwie hosta lokalnego, albo podanemu parametrowi. Zobacz flagę -r dla opisu konstruowania porównań. Sesje zaznaczone jako `dead' (martwe), powinny być sprawdzane i usuwane. Zapytaj administratora jeśli nie jesteś pewien. Sesje usuwa się opcją -wipe. -L mówi screenowi że twój automarginesowy terminal ma zapisywalną ostatnią pozycję ekranu. Możesz to ustawić również w swoim .screenrc, podając `LP' w komendzie "termcap". -m powoduje, że screen ignoruje zmienną środowiskową $STY. "screen -m" wymusza tworzenie nowej sesji, niezależnie od tego, czy screen jest wywołany z wewnątrz innej sesji screen czy nie. Flaga ta ma specjalne znaczenie w połączeniu z opcją `-d': -m -d Uruchom screen w trybie "odłączonym". Tworzy to nową sesję, lecz nie podłącza do niej. Jest to przydatne dla skryptów startowych systemu. -m -D To również uruchamia screen w trybie "odłączonym", lecz nie rozwidla nowego procesu. Komenda kończy działanie gdy kończy się sesja. -O wybiera bardziej optymalny tryb wyjściowy dla twojego terminala niż prawdziwy VT100 (tyczy się tylko terminali automarginesowych bez `LP'). Może to być ustawione w twoim .screenrc przez podanie `OP' w komendzie "termcap". -q Powstrzymuje drukowanie komunikatów o błędach. W połączeniu z "-ls", kod wyjścia jest następujący: 9 wskazuje katalog bez sesji. 10 wskazuje katalog z pracującymi, lecz niepodłączalnymi sesjami. 11 (lub więcej) wskazuje na jedną (lub więcej) nadających się do użycia sesji. W połączenie z "-r", kod wyjścia jest następujący: 10 oznacza, że nie ma sesji do wznowienia. 12 (lub więcej) oznacza, że istnieją 2 (lub więcej) sesje do wznowienia i że powinieneś podać, którą wybrać. W innych wypadkach "-q" nie daje efektu. -r [pid.tty.host] -r właścicielsesji/[pid.tty.host] wznawia odłączoną sesję screen. Nie można podawać żadnych innych opcji (poza kombinacjami z -d/-D), choć może być wymagany opcjonalny przedrostek [pid.]tty.host (w celu rozróżnienia wielu odłączonych sesji screen). Druga postać jest używana do podłączenia do sesji screen innego użytkownika, który pracuje w trybie wieloużytkownikowym. Oznacza to, że screen powinien szukać sesji w katalogu innego użytkownika. Wymaga to setuid-root. -R próbuje wznowić pierwszą odłączoną sesję screen, którą znajdzie. Po sukcesie wszystkie inne opcje linii komend są ignorowane. Jeśli żadna z odłączonych sesji nie istnieje, uruchamiana jest nowa sesja z użyciem podanych opcji, zupełnie jakby -R nie zostało podane. Opcja ta jest ustawiana domyślnie gdy screen jest uruchamiany jako powłoka zgłoszeniowa. -s ustawia domyślną powłokę na podany program. Normalnie używana jest wartość zmiennej środowiskowej $SHELL (lub "/bin/sh" jeśli jej nie zdefiniowano). Może to być też zdefiniowane poprzez komendę "shell" pliku .screenrc. -S nazwasesji Podczas tworzenia nowej sesji, opcja ta może być użyta do podania znaczącej nazwy sesji. Nazwa ta identyfikuje sesję dla akcji "screen -list" i "screen -r". Podmienia domyślny przyrostek [tty.host]. -t nazwa ustawia tytuł (a.k.a.) dla domyślnej powłoki, lub podanego programu. Zobacz też komendę "shelltitle" pliku .screenrc. -v Wydrukuj numer wersji. -wipe [dopasowanie] robi to samo co "screen -ls", lecz usuwa sesje zamiast zaznaczać je jako martwe ('dead'). Nieosiągalna sesja jest uważana za martwą, jeśli jej nazwa odpowiada nazwie hosta lokalnego, lub jakiegoś jawnie podanego parametru. Zobacz opis flagi -r dla opisu konstruowania dopasowań. -x Podłącz do nieodłączonej sesji screen. (Tryb wielowyświetlaczowy).
DOMYŚLNE WIĄZANIA KLAWISZY
Jak wspomniano, każda komenda screen składa się z "C-a", za którym następuje określony znak. Dla wygody, wszystkie komendy, które są powiązane z małymi literami, powiązane są też z ich odpowiednikami złożonymi z Ctrl (z wyjątkiem "C-a a"; zobacz niżej); tak więc "C-a c" zarówno jak "C-a C-c" może być używany do utworzenia okna. Zobacz sekcję "DOSTOSOWYWANIE" dla opisu komendy. Następująca tablica pokazuje domyślne wiązania klawiszy: C-a ' C-a " (select) Zapytaj o nazwę okna, do którego chcesz się przełączyć, lub o jego numer. C-a 0 (select 0) ... ... C-a 9 (select 9) C-a - (select -) Przełącz na okno numer 0 - 9 lub na puste okno. C-a tab (focus) Przełącz ogniskowanie wejścia na następny region. C-a C-a (other) Włącz poprzednio wyświetlane okno. Zauważ, że to połączenie jest równoważne dwukrotnemu wpisaniu znaku komendy (chyba że jest to przesłonięte). Na przykład, jeśli używasz opcji "-e]x", ta komenda stanie się "]]". C-a a (meta) Wyślij znak komendy (C-a) do okna. Zobacz komendę escape. C-a A (title) Zezwól użytkownikowi ustawić nazwę dla bieżącego okna. C-a b C-a C-b (break) Wyślij do okna przerwanie (break). C-a B (pow_break) Otwórz na nowo linię terminala i wyślij przerwanie (break). C-a c C-a C-c (screen) Utwórz nowe okno z powłoka i przełącz się na nie. C-a C (clear) Wyczyść ekran. C-a d C-a C-d (detach) Odłącz screen od tego terminala. C-a D D (pow_detach) Odłącz i się wyloguj. C-a f C-a C-f (flow) Włącz, wyłącz, lub ustaw automatyczny przepływ. C-a F (fit) Zmień rozmiar okna na obecny rozmiar regionu. C-a C-g (vbell) Włącza tryb wizualnego dzwonka screen'a. C-a h (hardcopy) Zapisz twardą kopię bieżącego okna do pliku "hardcopy.n". C-a H (log) Rozpoczyna/kończy raportowanie bieżącego okna do pliku "screenlog.n". C-a i C-a C-i (info) Pokaż informację o tym oknie. C-a k C-a C-k (kill) Zniszcz bieżące okno. C-a l C-a C-l (redisplay) Całkowicie odśwież bieżące okno. C-a L (login) Włącz slot zgłoszeniowy tego okna. Dostępne tylko jeśli screen jest skonfigurowany do odświeżania bazy utmp. C-a m C-a C-m (lastmsg) Powtórz ostatnią wiadomość, wyświetloną w linii komunikatów. C-a M (monitor) Włącza monitorowanie bieżącego okna. C-a space C-a n C-a C-n (next) Przełącz na następne okno. C-a N (number) Pokaż numer (i tytuł) bieżącego okna. C-a backspace C-a h C-a p C-a C-p (prev) Przełącz na poprzednie okno (odwrotne do C-a n). C-a q C-a C-q (xon) Wyślij control-q do bieżącego okna. C-a Q (only) Skasuj wszystkie regiony poza bieżącym. C-a r C-a C-r (wrap) Włącz ustawienie zawijania linii (line-wrap) bieżącego okna (włącz automatyczne marginesy okna). C-a s C-a C-s (xoff) Wyślij do bieżącego okna control-s. C-a S (split) Podziel bieżący region na dwa nowe. C-a t C-a C-t (time) Pokaż informację systemową. C-a v (version) Wyświetl wersję i datę kompilacji. C-a C-v (digraph) Wstaw dwuznak. C-a w C-a C-w (windows) Pokaż listę okien. C-a W (width) Włącz 80/132 kolumny. C-a x C-a C-x (lockscreen) Zablokuj (lock) ten terminal. C-a X (remove) Zabij bieżący region. C-a z C-a C-z (suspend) Zwieś screen. Twój system musi obsługiwać kontrolę zadań w stylu BSD. C-a Z (reset) Zresetuj terminal wirtualny na jego wartości "power-on". C-a . (dumptermcap) Zapisz plik ".termcap". C-a ? (help) Pokaż wiązania klawiszowe. C-a C-\ (quit) Zabij wszystkie okna i zakończ screen. C-a : (colon) Wejdź do trybu linii komend. C-a [ C-a C-[ C-a esc (copy) Wejdź w tryb kopiowania/przewijania. C-a ] (paste .) Zapisz zawartość bufora wklejania na kolejkę standardowego wejścia bieżącego okna. C-a { C-a } (history) Kopiuj i wklej poprzednią linię (komend). C-a > (writebuf) Zapisz bufor wklejania do pliku. C-a < (readbuf) Wczytuje plik wymiany screena do bufora wklejania. C-a = (removebuf) Usuwa plik, używany przez C-a < i C-a >. C-a , (license) Pokazuje, skąd screen pochodzi, dokąd poszedł i dlaczego możesz go używać. C-a _ (silence) Rozpoczyna/kończy monitorowanie bieżącego okna na nieaktywność. C-a * (displays) Pokaż listing wszystkich obecnie podłączonych wyświetlaczy.
DOSTOSOWYWANIE
"Katalog gniazd" (socket directory) domyślnie jest w $HOME/.screen lub zwyczajnie w /tmp/screens. Jeśli screen jest zainstalowany z setuid-root, to administrator powinien skompilować go z odpowiednim (nie zamontowanym przez NFS) katalogiem gniazd. Jeśli screen nie działa jako setuid-root, użytkownik może podać dowolny katalog o prawach 700 poprzez zmienną środowiskową $SCREENDIR. W momencie, gdy screen jest uruchamiany, wykonuje on komendy inicjalizacyjne z plików "/etc/screenrc" i ".screenrc" z katalogu domowego użytkownika. Są to "domyślne wartości programisty", które można przesłonić w następujące sposoby: dla znalezienia globalnego pliku screenrc, screen poszukuje zmiennej środowiskowej $SYSSCREENRC (ta właściwość przesłaniania może być wyłączona podczas kompilacji). Plik screenrc konkretnego użytkownika jest szukany w $SCREENRC, a potem w $HOME/.screenrc. Opcja -c linii komend ma jeszcze większy priorytet. Komendy w tych plikach są używane do ustawiania opcji, wiązania funkcji do klawiszy i do automatycznego zestawiania jednego lub więcej okien na starcie twojej sesji screen. Komendy są wymieniane jedna na linie; puste linie są ignorowane. Argumenty komend są rozdzielane tabulacjami lub spacjami i mogą być otaczane pojedynczymi lub podwójnymi cudzysłowami. Znak `#' zmienia resztę linii w komentarz, poza sytuacją gdy jest cytowany. Niezrozumiałe linie są ignorowane z wydaniem ostrzeżenia. Komendy mogą zawierać odniesienia do zmiennych środowiskowych. Składnia jest podobna do powłokowej "$VAR" lub "${VAR}". Zauważ, że wprowadza to niekompatybilność z poprzednimi wersjami screen, jako że teraz znak '$' musi być chroniony przez '\' jeśli nie chcemy dokonać podstawienia zmiennej. Łańcuch w pojedynczych cudzysłowach jest również chroniony od podstawienia zmiennych. Jako przykłady z dystrybucją screena są przekazywane dwa pliki konfiguracyjne: "etc/screenrc" i "etc/etcscreenrc". Zawierają one wiele przydatnych przykładów różnych komend. Dostosowywanie można również wykonywać 'on-line'. Aby wejść w tryb komend, wciśnij `C-a :'. Zauważ, że komendy rozpoczynające się od "def" zmieniają wartości domyślne, podczas gdy inne zmieniają ustawienia bieżące. Dostępne są następujące komendy: acladd nazwyużytkowników [crypted-pw] addacl nazwyużytkowników Umożliw użytkownikom pełny dostęp do tej sesji screen. Nazwyużytkowników mogą być jednym użytkownikiem, lub rozdzieloną przecinkami listą użytkowników. Opcja ta umożliwia podłączenie do sesji screen i wykonuje równoważnik `aclchg nazwyużytkowników +rwx "#?"'. Aby dodać użytkownika o ograniczonym dostępie, użyj niżej opisanej komendy `aclchg'. Jeśli podany jest opcjonalny drugi parametr, to powinno to być zakodowane (crypted) hasło dla podanego użytkownika. `Addacl' jest synonimem `acladd'. Przydatne tylko w trybie wieloużytkownikowym. aclchg nazwyużytkowników bityuprawnień lista chacl nazwyużytkowników bityuprawnień lista Zmień uprawnienia rozdzielonej przecinkami listy użytkowników. Bity uprawnień są reprezentowane jako `r', `w' i `x'. Poprzedzenie symbolu `+' zapewnia uprawnienie, `-' odbiera je. Trzeci parametr jest rozdzieloną przecinkami listą komend i/lub okien (podawanych albo przez numer, albo przez tytuł). Specjalna lista `#' odnosi się do wszystkich okien, `?' do wszystkich komend. Jeśli nazwyużytkowników składają się z pojedynczej `*', akcja będzie dotyczyć wszystkich znanych użytkowników. Komenda może być przez użytkownika wykonywana gdy ma dla niej bit `x'. Użytkownik może do okna wprowadzać dane wejściowe jeśli ma bit `w', i żaden inny użytkownik nie blokuje tego okna do zapisu. Inne bity są obecnie ignorowane. Aby wycofać blokadę zapisu z okna 2: `aclchg nazwaużytkownika -w+w 2'. Aby zezwolić na dostęp tylko dla odczytu do sesji: `aclchg nazwaużytkownika -w "#"'. Gdy tylko użytkownik staje się znany dla programu screen , może on dołączać się do sesji i (domyślnie) ma pełne uprawnienia do wszystkich komend i okien. Uprawnienia wywoływania dla komend acl, `at' i innych również powinny być usuwane; w przeciwnym wypadku użytkownik może odzyskać prawa zapisu. Uprawnień specjalnego użytkownika nobody nie można zmieniać tą komendą (zobacz komendę "su"). `Chacl' jest synonimem `aclchg'. Działa jedynie w trybie wieloużytkownikowym. acldel nazwaużytkownika Usuń użytkownika z listy kontrolnej screena. Jeśli jest on obecnie podłączony, wszystkie wyświetlacze użytkownika są odłączane od sesji. Nie może się znów podłączyć. Działa jedynie w trybie wieloużytkownikowym. aclgrp nazwaużytkownika [nazwagrupy] Tworzy grupy użytkowników, które dzielą wspólne prawa dostępu. Nazwa grupy jest nazwą użytkownika lidera grupy. Znaczy to, że jeśli użytkownik nie przejdzie kontroli dostępu, robiona jest kontrola dla lidera grupy. Użytkownika można usunąć ze wszystkich grup, używając specjalnej wartości "none" jako nazwygrupy. Jeśli drugi parametr jest pominięty, wyświetlane są wszystkie grupy, do których należy użytkownik. aclumask [[użytkownicy]+bity |[użytkownicy]-bity .... ] umask [[użytkownicy]+bity |[użytkownicy]-bity .... ] Określa to dostęp, jaki będą mieli inni użytkownicy do okien tworzonych przez wołającego komendę. Użytkownicy mogą nie być podani, może być jeden, lub rozdzielona przecinkami lista nazw użytkowników. Jeśli nie podano użytkowników, zakładana jest lista wszystkich znanych obecnie użytkowników. Bity są dowolną kombinacją bitów kontroli dostępu, zdefiniowanych komendą "aclchg". Specjalna nazwa użytkownika "?" predefiniuje dostęp do dowolnego okna, jaki na starcie dostaną nieznani obecnie użytkownicy. Specjalna nazwa użytkownika "??" predefiniuje dostęp do komend, jaki na starcie dostaną nieznani obecnie użytkownicy. Praw specjalnego użytkownika nobody nie można zmieniać (zobacz komendę "su"). `Umask' jest synonimem `aclumask'. activity wiadomość Gdy w monitorowanym oknie z tła pojawi się jakaś aktywność, screen wyświetla informację w linii komunikatów. Powiadomienie może być przedefiniowywane komendą "activity". Znaki `%' w wiadomości są zamieniane na numer okna, w którym zaistniała aktywność, a `~' na definicję dzwonka w twoim termcapie. Domyślną wiadomością jest 'Activity in window %' Zauważ, że domyślnie monitorowanie jest wyłączone, lecz można to zmienić komendą "monitor" (C-a M). allpartial on|off Jeśli jest to włączone, po zmianie okna odświeżana jest tylko bieżąca linia kursora. Ma to wpływ na wszystkie okna i jest przydatne na powolnych terminalach. Poprzednie ustawienie pełnego/częściowego odświeżania dla okna można przywrócić poprzez "allpartial off". Jest to flaga globalna, która natychmiast zaczyna działać we wszystkich oknach, przesłaniając ustawienia "partial". Nie zmienia domyślnego zachowania odświeżania nowo tworzonych okien. at [identyfikator][#|*|%] komenda [arg ... ] Wywołaj komendę na innych wyświetlaczach lub oknach tak, jakby zostały one tam wprowadzone. "At" zmienia kontekst (`bieżące okno' lub `bieżący wyświetlacz') komendy. Jeśli pierwszy parametr opisuje nieunikalny kontekst, komenda zostanie wykonania wiele razy. Jeśli pierwszy parametr jest w postaci `identyfikator*', to identyfikator jest dopasowywany do nazw użytkowników. Komenda jest wykonywana raz na każdym wyświetlaczu wybranego użytkownika(ków). Jeśli pierwszy parametr jest postaci `identyfikator%', to identyfikator jest dopasowywany do wyświetlaczy. Wyświetlacze są nazywane według tty, do których są podłączone. Prefiks `/dev/' lub `/dev/tty' można pominąć. Jeśli identyfikator zawiera `#', lub nie ma nic doklejonego, jest dopasowywany do numerów okien i tytułów. Pominięcie identyfikatora na początku `#', `*' lub `%' wybiera wszystkich użytkowników, wszystkie wyświetlacze, lub wszystkie okna. Dzieje się tak dlatego, że dokonywane jest dopasowanie prefiksowe. Zauważ, że na dotkniętych wyświetlaczach pojawi się krótki komunikat, określający co się stało. Prawa są sprawdzane dla inicjatora komendy "at", a nie dla właścicieli dotkniętych wyświetlaczy. Zauważ, że znak '#' gdy poprzedza go biała spacja działa jak komentarz. Można go wycytować, poprzedzając znakiem `\'. Prawa są sprawdzane dla inicjatora komendy "at", a nie dla właścicieli dotkniętych wyświetlaczy. Zastrzeżenie: Podczas dopasowywania okien, komenda jest wykonywana przynajmniej raz na okno. Komendy, które zmieniają wewnętrzną aranżację okien (jak "other") mogą być wywołane ponownie. Uważaj więc przy wywoływaniu komend w rodzaju "login"!. Niektóre komendy (np. "stuff", "process" lub "paste") wymagają by z docelowymi oknami był związany wyświetlacz. Komendy te mogą nie działać właściwie dla "at" krążącego po oknach. autodetach on|off Ustawia czy screen ma się automatycznie odłączać po odwieszeniu (hangup), co zachowuje wszystkie twoje pracujące programy aż do ich wznowienia komendą screen -r. Gdy właściwość jest wyłączona, sygnał odwieszenia (wysyłany przy wylogowywaniu się--przyp. tłum.) zakończy screen i wszystkie procesy, które on zawiera. Autoodłączanie jest domyślnie włączone. autofixterm on|off Ustawia czy screen będzie dodawał brakujące właściwości do wpisów termcap/info. Jest to domyślnie włączone. autonuke on|off Ustawia czy sekwencja czyszczenia ekranu powinna niszczyć całe wyjście, które jeszcze nie zostało wypisane na terminal. Zobacz też "obuflimit". bell_msg [wiadomość] Gdy w oknie z tła wysłany jest znak dzwonka, screen wyświetla informację w linii komunikatów. Informacja może być dzięki tej komendzie redefiniowana. Znaki `%' wiadomości są zamieniane numerem dzwoniącego okna, `~' jest zamieniana na definicję dzwonka w twoim termcapie. Domyślną wiadomością jest 'Bell in window %' W celu powstrzymania drukowania linii informacyjnej, można nadać jej wartość pustą (bell_msg ""). Bez parametrów, pokazywana jest wiadomość obecna. bind klawisz [komenda [arg]] Wiąże komendę do klawisza. Domyślnie, większość komend udostępnianych przez screen jest przywiązana do jednego lub większej ilości klawiszy, wg opisu sekcji "DOMYŚLNE WIĄZANIA KLAWISZY", np. komenda tworzenia nowego okna jest dowiązana do "C-c" i "c". W celu przedefiniowania i definiowania nowych wiązań używana jest komenda "bind". Argument klawisz jest albo pojedynczym znakiem, albo dwuznakową sekwencją w postaci "^x" (oznaczającą "C-x"), albo lewym ukośnikiem z liczbą ósemkową (oznaczającą kod ASCII znaku), albo lewym ukośnikiem z dołączonym znakiem, jak "\^" czy "\\". Argument jeśli chcesz może być również cytowany. Jeśli nie ma podanego dalszego argumentu, wszystkie poprzednio zestawione wiązania dla tego klawisza są usuwane. Komenda może być dowolną komendą wymienioną w tej sekcji. Przykłady: bind ' ' windows bind ^k bind k bind K kill bind ^f screen telnet foobar bind \033 screen -ln -t root -h 1000 9 su przywiąże spację do komendy, która wyświetla listę okien (więc komenda normalnie wywoływana przez "C-a C-w" będzie również dostępna jako "C-a spacja"). Następne trzy linie usuwają domyślne wiązanie zabijania z "C-a C-l" i "C-a l". Następnie do komendy zabijania wiązane jest "C-a K". Następnie klawisz "C-f" jest wiązany z komendą tworzenia okna z połączeniem telnetowym do foobar, a klawisz "escape" jest wiązany do komendy, która tworzy niezgłoszeniowe okno z a.k.a. "root" w slocie #9, z powłoką superużytkownika i buforem przewijania na 1000 linii. bindkey [-d] [-m] [-a] [[-k|-t] łańcuch [kmd arg]] Komenda ta zarządza wejściowymi tablicami translacji screena. Każdy wpis w jednej z tablic mówi mu jak reagować gdy pojawi się określona sekwencja znaków. Istnieją trzy tablice: jedna, która powinna zawierać akcje zaprogramowane przez użytkownika, druga dla domyślnych akcji emulacji terminala i trzecia dla trybu kopiowania screena do zajmowania się poruszaniem kursora. Zobacz sekcję "TRANSLACJA WEJŚCIOWA" dla listy domyślnych wiązań klawiszowych. Jeśli podana jest opcja -d, bindkey modyfikuje domyślną tablicę, -m zmienia tablicę trybu kopiowania, a bez żadnej opcji wybierana jest tablica użytkownika. Argument łańcuch jest sekwencją znaków, do której przywiązana jest akcja. Może to być albo skończony napis, albo nazwa właściwości klawiaturowej z termcap (wybierana opcją -k). Niektóre klawisze terminala VT100 mogą wysyłać inne łańcuchy gdy włączony jest tryb aplikacji (np. ruchy kursora). Takie klawisze mają dwa wpisy w tablicy translacji. Możesz wybrać wpisy trybu aplikacji podając opcję -a. Opcja -t mówi screenowi by nie dokonywał międzyznakowego pomiaru czasu. Nie można go wyłączyć jeśli używana jest właściwość termcap. Kmd może być dowolną z komend screena o określonej liczbie argumentów. Jeśli kmd jest pominięta, wiązanie klawiszowe jest usuwane z tablicy. Oto kilka przykładów wiązań klawiaturowych: bindkey -d Pokaż wszystkie domyślne wiązania klawiaturowe. Wpisy trybu aplikacji są zaznaczone [A]. bindkey -k k1 select 1 Upewnij się, że klawisz "F1" przełącza na okno numer 1. bindkey -t foo stuff barfoo Uczyń z "foo" skrót dla słowa "barfoo". Czas oczekiwania jest wyłączony, więc użytkownicy mogą się guzdrać z wklepywaniem. bindkey "\024" mapdefault To wiązanie klawiszowe powoduje, że "^T" staje się znakiem specjalnym wiązań klawiaturowych. Jeśli dokonałeś powyższego wiązania "stuff barfoo", możesz wprowadzić słowo "foo" naciskając "^Tfoo". Jeśli chcesz wprowadzić "^T", musisz nacisnąć go dwukrotnie. bindkey -k F1 command Uczyń F11 (nie F1!) alternatywnym znakiem specjalnym screena (poza ^A). break [czas] Wysyłaj do tego okna przez czas*0.25 sekund sygnał przerwania. Dla systemów nieposixowych, interwał czasowy może być zaokrąglany w górę do pełnych sekund. Jest to przydatne jeśli do okna jest podłączone urządzenie znakowe (a nie proces powłokowy) (Zobacz też rozdział "RODZAJE OKIEN"). Maksymalny czas trwania sygnału przerwania jest ograniczony do 15 sekund. breaktype [tcsendbreak|TIOCSBRK |TCSBRK] Wybierz jedną z dostępnych metod generowania sygnału przerwania dla urządzeń terminalowych. Komenda ta powinna dotykać jedynie bieżącego okna. Wciąż jednak zachowuje się identycznie do "defbreaktype". W przyszłości będzie to zmienione. Wołanie "breaktype" bez parametrów wyświetla metody przerywania dostępne dla bieżącego okna. bufferfile [exchange-file] Zmień nazwę pliku używaną do odczytywania i zapisywania buforu wklejania. Jeśli pominięty jest opcjonalny argument plikowy, reaktywowane jest domyślne ustawienie ("/tmp/screen- exchange"). Następujący przykład przekopiuje plik z hasłami systemowymi na okno screen: C-a : bufferfile /etc/passwd C-a < C-a ] C-a : bufferfile c1 [on|off] Zmień przetwarzanie kodu c1. "C1 on" mówi screenowi by traktował znaki wejściowe z przedziału 128..159 jako funkcje sterujące. Takie 8-bitowe kody są normalnie takie same jak ESC z dołączonym kodem 7-bitowym. Domyślne ustawienie przetwarza kody c1 i może być zmienione komendą "defc1". Użytkownicy z fontami, które mają użyteczne znaki w pozycjach c1 mogą to wyłączyć. caption always|splitonly [łańcuch] caption string [łańcuch] Komenda ta kontroluje wyświetlanie tytułów okien. Normalnie tytuł jest używany tylko jeśli na wyświetlaczu pokazywanych jest więcej niż jedno okno (tryb podzielonego ekranu--splitonly). Jeśli typ jest ustawiony na always screen pokazuje tytuł nawet jeśli wyświetlane jest tylko jedno okno. Wartością domyślną jest splitonly. Druga postać zmienia tekst używany na tytuł. Możesz używać wszystkich znaków specjalnych z rozdziału "ZNAKI SPECJALNE TEKSTOWE". Screen używa wartości domyślnej, `%3n %t'. Możesz łączyć obie formy, dając łańcuch jako argument dodatkowy. charset zestaw Zmień desygnację obecnego slotu zestawu znaków i mapowania zestawu znaków. Pierwsze cztery znaki zestawu są traktowane jako desygnatory zestawu znaków, podczas gdy piąty i szósty znak, będące w zakresie '0' do '3', ustawiają mapowanie zestawu znaków GL/GR. Na każdej pozycji można użyć znaku '.', co oznacza, że odpowiadający mu zestaw znaków/mapowanie nie powinno być zmieniane. (zestaw jest wewnętrznie dopełniany do sześciu znaków przez doklejenie znaków '.'). Domyślnym zestawem znaków dla nowych okien jest "BBBB02", chyba że aktywna jest komenda "kanji". Bieżące ustawienia można obejrzeć komendą "info". chdir [katalog] Zmień katalog bieżący screena na podany katalog lub, jeśli wywołane bez argumentów, na twój katalog domowy (zawartość zmiennej środowiskowej $HOME). Wszystkie okna, tworzone komendą "screen" z wewnątrz ".screenrc" lub poprzez "C-a : screen ..." czy "C-a c" będą go używały jako katalogu domyślnego. Bez używania chdir, katalogiem tym byłby katalog, z którego wywołano screen. Pliki twardych kopii (hardcopy files) i pliki raportowe zawsze są zapisywane do domyślnego katalogu okna, a nie do katalogu bieżącego procesu, pracującego w oknie. Możesz używać tej komendy w swoim .screenrc wielokrotnie. Umożliwia to uruchamianie różnych okien w różnych katalogach. Jednakże ostatnie chdir będzie dotyczyć wszystkich okien tworzonych interaktywnie. clear Czyści bieżące okno i zapisuje jego obraz w buforze przewijania. colon [prefiks] Umożliwia wpisywanie linii poleceniowych ".screenrc". Przydatne do podręcznej modyfikacji wiązań klawiszowych, specyficznego tworzenia okien i zmieniania ustawień. Zauważ, że słowo kluczowe "set" już nie istnieje! Zazwyczaj komendy tyczą się bieżącego okna, a nie domyślnych ustawień dla przyszłych okien. Wartości domyślne zmienia się komendami, rozpoczynającymi się od 'def...'. command Komenda ta ma taki sam skutek, jak wpisanie znaku specjalnego (^A). Jest chyba przydatna jedynie dla wiązań klawiaturowych. Zobacz też "bindkey". compacthist [on|off] Mówi to screenowi czy powstrzymywać doczepione puste linie podczas przewijania tekstu w górę w buforze historii. console [on|off] Zbiera lub "od-zbiera" (ungrabs) wyjście konsoli do okna. Uwaga: Jedynie właściciel /dev/console może zbierać wyjście konsoli. Komenda ta jest dostępna jeśli maszyna obsługuje ioctl TIOCCONS. copy Wejdź w tryb kopiowania/przewijania wstecz. Umożliwia to kopiowanie z bieżącego okna (i jego historii) tekstu do buforu wklejania. W trybie tym dostępny jest vi-podobny pełnoekranowy edytor: Poruszanie się: h, j, k, l przesuń linię kursora o linię lub kolumnę o kolumnę. 0, ^ i $ przesuń do krańcowo lewej kolumny, do pierwszego lub ostatniego różnego od białej spacji znaku linii. H, M i L przesuń kursor do krańcowo lewej kolumny na górze, środku, lub dole okna. + i - przesuwa o jedną linię w górę i w dół. G przesuwa do podanej linii absolutnej (domyślnie: koniec bufora). | przesuwa do podanej kolumny absolutnej. w, b, e przesuwaj kursor słowo po słowie. C-u i C-d przewijaj wyświetlacz w górę i w dół o podaną ilość linii, zachowując pozycję kursora. (Domyślnie: połowa ekranu). C-b i C-f przewijaj wyświetlacz w górę/dół o pełny ekran. g przesuwa na początek bufora. % skacze do podanego procentu bufora. Uwaga: Komendą .screenrc można dostosować klawisze do stylu emacsa. (Np. markkeys "h=^B:l=^F:$=^E") Nie ma prostej metody na pełną mapę klawiszy w stylu emacsa, gdyż wymaga to wieloznakowych kodów. Zaznaczanie: Zakres kopiowania jest ustalany przez ustawienie dwóch znaczników. Tekst między nimi zostaje podświetlany. Naciśnij spację do ustawienia pierwszego lub drugiego znacznika. Y i y są używane do zaznaczania całej linii lub do zaznaczania od początku linii. W zaznacza dokładnie jedno słowo. Licznik powtórzeń: Każdą z tych komend można poprzedzić licznikiem powtórzeń, naciskając cyfry 0..9, które są następnie uważane za liczniki powtórzeń. Przykład: "C-a C-[ H 10 j 5 Y" skopiuje linie 11 do 15 do bufora wklejania. Szukanie: / Vi-podobne szukanie naprzód. ? Vi-podobne szukanie wstecz. C-a s Emacsopodobne inkrementalne szukanie naprzód. C-r Emacsopodobne odwrócone i-szukanie. Specjalności: Istnieje kilka klawiszy, zachowujących się inaczej niż w vi. Vi nie umożliwia zaznaczania prostokątnych bloków tekstu, lecz screen to umożliwia. naciśnij c lub C aby ustawić lewy lub prawy margines. Jeśli nie podano licznika powtórzeń, obydwa odnoszą się do bieżącej pozycji kursora. Przykład: Wypróbuj to na zapełnionym tekstem ekranie: "C-a [ M 20 l SPACE c 10 l 5 j C SPACE". Przechodzi to na środkową linię ekranu, przesuwa się 20 kolumn w lewo, zaznacza początek bufora wklejania, ustawia lewą kolumnę, przesuwa 5 kolumn w dół (w prawo?--przyp. tłum.), zaznacza prawą kolumnę, a następnie zaznacza koniec bufora wklejania. Wypróbuj teraz: "C-a [ M 20 l SPACE 10 l 5 j SPACE" i zwróć uwagę na różnicę w ilości skopiowanego tekstu. J łączy linie. Przełącza się między 4 trybami: linie rozdzielane znakiem nowej linii (012), linie sklejone bez szwów (lines glued seamless), linie rozdzielone pojedynczą białą spacją, linie rozdzielone przecinkami. Zauważ, że możesz poprzedzać znak nowej linii znakiem CR, używając "crlf on". v jest dla wszystkich użytkowników vi z ":set numbers" - włącza lewy margines między kolumną 9 a 1. Naciśnij a przed ostatnim klawiszem spacji aby włączyć tryb doklejania. W ten sposób bufor wklejania nie będzie nadpisywany, lecz zostanie do niego dopisana nowa treść. A włącza tryb doklejania i ustawia (drugi) znacznik. > ustawia (drugi) znacznik i zapisuje zawartość bufora wklejania do pliku wymiany screena (domyślnie /tmp/screen-exchange) po zakończeniu trybu kopiowania. Przykład ten demonstruje jak wrzucić do tego pliku cały bufor przewijania: "C-A [ g SPACE G $ >". C-g podaje informację o bieżącej linii i kolumnie. x wymienia pierwszy znacznik i pozycję kursora. Możesz używać tego do dostrajania już ustawionego znacznika. @ nie robi nic. Nawet nie kończy trybu kopiowania. Wszystkie nie opisane tutaj klawisze kończą tryb kopiowania. copy_reg [klucz] Już nie istnieje, użyj zamiast tego "readreg". crlf [on|off] Ma to wpływ na kopiowanie regionów tekstu komendą `C-a ['. Jeśli jest włączone, linie będą rozdzielane sekwencją znaków `CR' - `LF'. W przeciwnym wypadku (domyślnie) używane będzie tylko `LF'. Bez parametrów, stan jest włączany. debug on|off Włącza lub wyłącza debuggowanie czasu działania. defc1 on|off To samo co komenda c1 lecz domyślne ustawienie dla nowych okien jest zmieniane. Początkowym ustawieniem jest `on'. defautonuke on|off To samo co autonuke, lecz domyślne ustawienie dla nowych wyświetlaczy jest zmieniane. Początkowe ustawienie to `off'. Zauważ, że jeśli chcesz być zależnym od typu terminala, możesz użyć specjalnej właściwości `AN' terminala. defbreaktype [tcsendbreak|TIOCSBRK |TCSBRK] Wybierz jedną z dostępnych metod generowania sygnału przerwania (break) dla urządzeń terminalowych. Preferowanymi metodami są tcsendbreak oraz TIOCSBRK. Trzecia, TCSBRK, blokuje całą sesję screen na czas przerywania, lecz może być jedynym sposobem generowania dłuższych przerwań. Tcsendbreak i TIOCSBRK mogą (lub nie) dawać długie przerwania ze szpicami (z przerwami?--with spikes) (np. 4 na sekundę). Jest to nie tylko zależne od systemu, lecz zależy również od sterowników układów szeregowych. Wywoływanie "defbreaktype" bez parametru wyświetla bieżące ustawienie. defcharset [zestaw] Podobne do komendy charset, lecz domyślne ustawienie dla nowych okien jest też zmieniane. Po wywołaniu bez argumentu, pokazuje bieżącą wartość domyślną. defescape xy Ustaw domyślne znaki komend. Jest to równoważne "escape", ale jest przydatne tylko w sesjach wieloużytkownikowych. W takiej sesji "escape" zmienia znaki komend użytkownika, który wywołał to polecenia, podczas gdy "defescape" zmienia domyślne znaki komend dla użytkowników, którzy będą dodawani później. defflow on|off|auto [interrupt] To samo co komenda flow, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowym ustawieniem jest `auto'. Podanie "defflow auto interrupt" jest równoważne opcjom linii komend -fa i -i. defgr on|off To samo co komenda gr, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowym ustawieniem jest `off'. defhstatus [status] Linia twardego status, którą otrzymają wszystkie nowe okna jest ustawiana na status. Komenda ta jest przydatna do wyświetlenia poprzez status każdego okna jego numeru, tytułu, itp. Status może zawierać te same dyrektywy co komunikaty okna, lecz znakiem specjalnym (escape character) dyrektywy jest '^E' (ósemkowe 005) zamiast '%'. Zrobione jest to w celu uniemożliwienia złej interpretacji generowanych przez program linii statusu. Jeśli parametr status jest pominięty, wyświetlany jest bieżący łańcuch domyślny. Domyślnie, linie statusu nowych okien są puste. defkanji jis|sjis|euc To samo co komenda kanji, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowym ustawieniem jest `off', np. `jis'. deflogin on|off To samo co komenda login, lecz zmieniane jest domyślne ustawienie dla nowych okien. W dystrybucji inicjalizowane jest to na `on' (zobacz config.h.in). defmode prawa Prawa każdego z nowo zaalokowanych pseudo-tty są ustawiane na prawa. Prawa są liczbą ósemkową. Początkowo, używane są prawa 0622. (prawa dostępu, tryb, mode -- przyp. tłum.) defmonitor on|off To samo co komenda monitor, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowym ustawieniem jest `off'. defobuflimit limit To samo co obuflimit, lecz zmieniane jest domyślne ustawienie dla nowych wyświetlaczy. Początkowym ustawieniem jest 256 bajtów. Zauważ, że jeśli chcesz być zależnym od typu terminala, możesz użyć właściwości 'OL'. defscrollback num To samo co scrollback, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowym ustawieniem jest 100. defshell komenda Synonim komendy shell. Patrz tam. defsilence on|off To samo co komenda silence, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowym ustawieniem jest `off'. defslowpaste msec" To samo co slowpaste, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowym ustawieniem jest 0 milisekund, co oznacza wyłączenie. defwrap on|off To samo co wrap, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowo zawijanie linii jest włączone i może być przełączane komendą "wrap" ("C-a r") lub poprzez "C-a : wrap on|off". defwritelock on|off|auto To samo co writelock, lecz zmieniane jest domyślne ustawienie dla nowych okien. Początkowo blokady zapisu są wyłączone. defzombie [keys] Synonim komendy zombie. Obie w chwili obecnej zmieniają wartość domyślną. Patrz tam. detach Odłącz sesję screen (odłącz ją od terminala i wrzuć w tło). Powracasz wtedy do powłoki, z której wywołałeś screen. Odłączonego screena można wznowić, wywołując screen z opcją -r. (Zobacz też sekcję "OPCJE LINII KOMEND".) displays Pokazuje tabularyczny listing wszystkich obecnie podłączonych front-endów użytkownika (wyświetlaczy). Jest to przydatne w sesjach wieloużytkownikowych. digraph [preset] Komenda ta bierze użytkownika o sekwencję dwuznakową. Wpisane dwa znaki są sprawdzane we wbudowanej tablicy, a znak wynikowy jest wstawiany do strumienia wejściowego. Na przykład, jeśli użytkownik wprowadzi 'a"', wstawiony zostanie a-umlaut. Jeśli pierwszym wprowadzonym znakiem jest 0, screen potraktuje następne znaki (do trzech) jako liczbę ósemkową. Opcjonalny argument preset jest traktowany jako wejście użytkownika. Można więc zrobić sobie klawisz "umlaut". Na przykład, komenda "bindkey ^K digraph '"'" umożliwia użytkownikowi generowanie a-umlaut przez wpisanie CTRL-K a. dumptermcap Zapisz wpis termcap dla wirtualnego terminala, zoptymalizowanego dla aktualnie aktywnego okna. Zapis nastąpi do pliku ".termcap" w katalogu "$HOME/.screen" użytkownika (lub tam, gdzie screen przechowuje swoje gniazda. Zobacz sekcję "PLIKI"). Ten wpis termcap jest identyczny z wartością zmiennej środowiskowej $TERMCAP, która jest ustawiana przez screen dla każdego okna. Dla systemów opartych na terminfo, możesz potrzebować konwertera w rodzaju captoinfo oraz kompilować wpis z pomocą tic. echo [-n] wiadomość komenda echo może być używana do denerwowania użytkowników screen 'wiadomościami dnia'. Zazwyczaj jest to instalowane w globalnym /etc/screenrc. Opcja "-n" powoduje zatrzymanie wciągania nowej linii. Zobacz też "sleep". Echo jest też przydatne do testowania online zmiennych środowiskowych. escape xy Ustaw znak komendy na x, a znak generujący literalny znak komendy (przez wywołanie komendy "meta") na y (podobne do opcji -e). Każdy argument może być albo pojedynczym znakiem, albo dwuznakową sekwencją w postaci "^x" (oznaczającą "C-x"), albo lewym ukośnikiem z liczbą ósemkową (kod ASCII znaku), albo lewym ukośnikiem z drugim znakiem, w rodzaju "\^" czy "\\". Domyślną wartością jest "^Aa". exec [[fdpat] nowakomenda [arg ...]] Uruchom w bieżącym oknie podproces unixowy (określony przez ścieżkę wykonywalną nowakomenda i jej argumenty). Przepływ danych między stdin/stdout/stderr nowejkomendy, procesem początkowo uruchomionym w oknie (powiedzmy "procesem-aplikacji") i screenem (oknem) jest kontrolowany przez wzorzec deskryptora plików fdpat. Wzorzec jest sekwencją trójznakową, reprezentującą stdin, stdout i stderr nowejkomendy. Kropka (.) łączy deskryptor pliku do screena. Znak wykrzyknika (!) powoduje, że deskryptor jest podłączany do procesu-aplikacji. Dwukropek (:) łączy obydwa te zadania. Do nowej komendy będzie przechodziło wejście użytkownika, chyba że komenda otrzymuje wyjście procesu-aplikacji (pierwszym znakiem fdpat jest `!' lub `:') lub do końca fdpat (jako czwarty znak) dodano znak potoku (|). Wywoływanie `exec' bez argumentów pokazuje nazwę i argumenty bieżącego podprocesu aktualnego okna. W każdym oknie naraz może działać tylko jeden podproces. Gdy podproces akurat wykonuje się, komenda `kill' będzie dotyczyć jego, a nie procesów okien. Dla ciężkostrawnej ilustracji wszystkich 21 kombinacji, zobacz `doc/fdpat.ps'. Każdy rysunek pokazuje cyfry 2,1,0, odwzorowujące trzy deskryptory nowejkomendy. Skrzynka oznaczona jako `W' jest normalnym pty, który na stronie biernej (slave) ma proces- aplikacji. Skrzynka zaznaczona jako `P' jest drugorzędnym pty, który po swojej stronie nadrzędnej (master) ma screen. Skróty: Biała spacja między słowem `exec', fdpat i komendą może być opuszczona. Fdpat składający się z samych kropek, lub jego końcowe kropki można pominąć. Prosty `|' jest synonimem do wzorca `!..|'; słowo exec można tu pominąć, a zawsze można je zastąpić `!'. Przykłady: exec ... /bin/sh exec /bin/sh !/bin/sh Tworzy nową powłokę w tym samym oknie, podczas gdy powłoka wyjściowa wciąż działa. Wyjście obydwu powłok jest wyświetlane, a wejście użytkownika jest wysyłane do nowego /bin/sh. exec !.. stty 19200 exec ! stty 19200 !!stty 19200 Ustaw szybkość tty okna. Jeśli twoja komenda stty operuje na stdout, dodaj kolejny `!'. exec !..| less |less Dodaje to przeglądarkę do wyjścia okna. Znak specjalny `|' jest potrzebny do uzyskania kontroli użytkownika nad przeglądarką, choć dostaje ona swoje wejście z procesu okna. Działa to, ponieważ less nasłuchuje stderr (zachowanie, którego screen nie oczekiwałby bez `|') kiedy jego stdin nie jest tty. Wersje less, nowsze niż 177 wypadają tu żałośnie; jednak stary, dobry pg wciąż działa. !:sed -n s/.*Error.*/\007/p Wysyła wyjście okna do użytkownika i komendy sed. Sed wstawia do wyjścia okna widzianego przez screen dodatkowy znak dzwonka (ósemkowy 007). Spowoduje to wyświetlenie komunikatu "Bell in window x", za każdym łańcuchem "Error", który pojawi się w oknie. fit Zmień rozmiar okna na rozmiar bieżącego regionu. Komenda ta jest wymagana, gdyż screen automatycznie nie adaptuje rozmiaru okna jeśli okno jest wyświetlane więcej niż raz. flow [on|off|auto] Ustawia tryb kontroli przepływu dla tego okna. Bez parametrów, przesuwa on kontrolę bieżącego okna z "automatic" na "on" na "off". Zobacz dyskusję o "KONTROLI-PRZEPŁYWU", opisanej niżej w tym dokumencie dla pełnych szczegółów i odpowiednich uwag. Wartość domyślna jest ustawiana przez `defflow'. focus Przenieś ognisko wejściowe na następny region. Jest to dokonywane w cykliczny sposób tak, że region górny jest wybierany po dolnym. gr [on|off] Włącza/wyłącza przełączanie zestawu znaków GR (ang. GR charset switching). Za każdym razem, gdy screen zauważy znak wejściowy z ustawionym ósmym bitem, skorzysta ze znaku ze slotu GR i wydrukuje znak z obciętym ósmym bitem. Domyślną wartością (zobacz też "defgr") jest nieprzetwarzanie przełączania GR, gdyż może to spowodować niedziałanie zestawu znaków ISO-8859-1. hardcopy Zapisuje obecnie wyświetlany obraz do pliku hardcopy.n (w katalogu domyślnym okna), gdzie n jest numerem bieżącego okna. Komenda może albo doklejać, albo nadpisywać istniejący plik. Patrz niżej. hardcopy_append on|off Jeśli jest to ustawione na "on", screen będzie doklejał dane do plików "hardcopy.n" komendy "C-a h". W przeciwnym wypadku, pliki te będą za każdym razem nadpisywane. Domyślnie doklejanie jest wyłączone. hardcopydir katalog Definiuje katalog plików hardcopy. Jeśli jest to nieustawione, pliki te lądują w bieżącym katalogu roboczym screena. hardstatus [on|off] hardstatus [always]lastline|message|ignore [łańcuch] hardstatus string [łańcuch] Komenda ta konfiguruje używanie i emulację terminalowej linii twardego statusu (hardstatus line). Pierwsza postać przełącza czy screen powinien używać sprzętowej linii statusu do wyświetlania komunikatów. Jeśli flaga jest wyłączona, komunikaty te są nakładane w trybie inwersyjnym na linię wyświetlania. Domyślnym ustawieniem jest `on' (włączone). Druga postać mówi screenowi co robić, jeśli terminal nie posiada linii twardego statusu (np. gdy właściwości termcap/terminfo "hs", "ts", "fs" i "ds" nie są ustawione). W wypadku użycia typu "lastline", screen Zarezerwuje ostatnią linię wyświetlacza na twardy status. Typ "message" używa screenowego mechanizmu komunikatów, a "ignore" mówi by screen nigdy nie wyświetlał twardego statusu. Jeśli do typu dokleisz słowo "always", screen użyje tego typu nawet jeśli terminal posiada twardy status. Trzecia postać określa zawartość linii twardego statusu. Domyślnym łańcuchem jest '%h', tj. wyświetlany jest zachowany twardy status okna (ustawialny poprzez \E]0;^G or \E_\\). Możesz to dostosować do dowolnego łańcucha, jaki zechcesz, łącznie ze znakami specjalnymi z rozdziału "ZNAKI SPECJALNE ŁAŃCUCHÓW". Jeśli pominiesz argument łańcuch, wyświetlony zostanie łańcuch bieżący. Możesz łączyć drugą i trzecią postać, podając łańcuch jako argument dodatkowy. height [wiersze] Ustaw wysokość wyświetlacza na podaną liczbę wierszy. Bez argumentów następuje przełączanie między wyświetlaczem 24-liniowym i 42-liniowym. help Nie jest to naprawdę pomoc online, lecz wyświetlanie okna pomocy, pokazującego wszystkie wiązania klawiszowe. Pierwsze strony wymieniają wszystkie wewnętrzne komendy wraz z ich obecnymi wiązaniami. Dalsze strony pokazują zwyczajowe komendy, po jednej na klawisz. Przewijanie następuje przez naciskanie spacji, a koniec oglądania to return. Wszystkie inne znaki są ignorowane. Zobacz też sekcję "DOMYŚLNE WIĄZANIA KLAWIATUROWE". history Użytkownicy zwykle pracują z powłokami, umożliwiającymi łatwy dostęp do poprzednich komend. Na przykład w csh komenda "!!" służy do powtarzania ostatniej wywołanej komendy. Screen udostępnia prosty sposób przywoływania "komendy, która rozpoczęła się ...": Wpisuje się po prostu pierwszą literę komendy, następnie naciska `C-a {' i screen zaczyna szukać poprzedniej linii, która zostanie dopasowana do `znaku zachęty' na lewo od kursora. Linia ta jest wklejana do kolejki wejściowej okna. W ten sposób masz brutalną historię komend (stworzoną z widzialnego okna i jego bufora przewijania). hstatus status Zmień linię twardego statusu na łańcuch status. info Używa linii komunikatów do wyświetlania informacji o bieżącym oknie: są to pozycja kursora w postaci "(kolumna,wiersz)" (rozpoczynająca się od "(1,1)") szerokość i wysokość terminala plus rozmiar bufora przewijania w wierszach (np. "(80,24)+50"), bieżący stan kontroli przepływu XON/XOFF okna pokazany następująco (Zobacz też sekcję KONTROLA PRZEPŁYWU): +flow automatyczna kontrola przepływu, aktualnie włączona. -flow automatyczna kontrola przepływu, aktualnie wyłączona. +(+)flow włączona kontrola przepływu. Zgadza się z kontrolą automatyczną. -(+)flow wyłączona kontrola przepływu. Nie zgadza się z kontrolą automatyczną. +(-)flow włączona kontrola przepływu. Nie zgadza się z kontrolą automatyczną. -(-)flow wyłączona kontrola przepływu. Zgadza się z kontrolą automatyczną. Bieżące ustawienie zawijania linii (`+wrap' oznacza włączenie, `-wrap' wyłączenie) jest także pokazywane. Wyświetlane są też flagi `ins', `org', `app', `log', `mon' lub `nored'. Odpowiadają one trybom pracy: wstawiania (insert), origin, aplikacji-keypadu oraz stanom pracy: raportowanie wyjścia (log), monitorowanie aktywności (mon), lub częściowe odświeżanie (nored). Wyświetlany jest również aktywny obecnie zestaw znaków (G0, G1, G2, lub G3) oraz w nawiasach kwadratowych zestawy znaków terminala, desygnowane obecnie jako G0 do G3. Na końcu linii statusu wyświetlane są też dodatkowe tryby, zależne od rodzaju okna (Zobacz rozdział "RODZAJE OKIEN"). Jeśli maszyna stanu emulatora terminala nie jest w stanie domyślnym, to linia info jest rozpoczynana łańcuchem określającym bieżący stan. Dla informacji o systemie użyj komendy "time". ins_reg [klucz] Już nie istnieje, użyj "paste". kanji jis|euc|sjis [jis|euc|sjis] Powiedz screenowi, jak przetwarzać wejście/wyjście kanji. Pierwszy argument ustawia typ kanji bieżącego okna. Każde okno może emulować inny typ. Dodatkowy drugi parametr mówi, jak zapisywać kody kanji na podłączonym terminalu. Preferowaną metodą ustawiania typu wyświetlacza jest używanie wpisu "KJ" termcapu. Zobacz też "defkanji", który zmienia domyślne ustawienie dla nowych okien. kill Zabij bieżące okno. Jeśli pracuje w nim komenda `exec', to jest ona zabijana. W przeciwnym wypadku, proces (powłoka) okna otrzymuje sygnał HANGUP, struktura okna jest usuwana, a screen (twój wyświetlacz) przełącza się na inne okno. Gdy niszczone jest ostatnie okno, screen kończy pracę. Po komendzie kill, screen przełącza się na poprzednio wyświetlane okno. Uwaga: Użytkownicy emacsa powinni pamiętać o tej komendzie przy zabijaniu linii. Zalecane jest nie używać "C-a" jako klawisza specjalnego screena, lub przewiązywać kill do "C-a K". lastmsg Wyświetl na nowo ostatnią zawartość linii komunikatów/statusu. Przydatne, jeśli wpisujesz coś podczas pojawiania się komunikatu. Wiadomość bowiem znika gdy przyciśnie się jakiś klawisz (chyba że terminal ma sprzętową linię statusu). W celu dostrajania, zobacz komendy "msgwait" i "msgminwait". license Wyświetl stronę opisową. Jest to dokonywane za każdym razem, gdy screen jest uruchamiany bez opcji, co powinno wystarczać. Zobacz tez komendę "startup_message". lockscreen Zablokuj ten wyświetlacz. Wywołaj program blokujący screena (/usr/bin/lock lub wbudowany ekwiwalent jeśli nie ma nic innego). Screen nie przyjmuje żadnych klawiszy komend dopóki program ten nie zakończy działania. W międzyczasie procesy okien mogą kontynuować działanie, gdyż okna są w stanie `odłączonym'. Program blokujący może być zmieniony poprzez zmienną środowiskową $LOCKPRG (która musi być ustawiana w powłoce, z której screen jest uruchamiany). Program ten jest uruchamiany z uid i gid użytkownika. Uwaga: Gdy inne powłoki zostawisz niezablokowane i nie masz ustawionego hasła dla screen, blokowanie jest puste: możnaby łatwo podłączyć się na nowo z niezablokowanej powłoki. Właściwość ta powinna być raczej nazywana `lockterminal'. log [on|off] Uruchom/zakończ zapisywanie wyjścia bieżącego okna do pliku "screenlog.n" w domyślnym katalogu okna, gdzie n jest numerem bieżącego okna. Nazwa pliku może być zmieniana komendą `logfile'. Bez podanych parametrów, raportowanie jest przełączane. Raport sesji jest doklejany do poprzedniej zawartości wcześniej istniejącego pliku (jeśli plik nie istniał, tworzony jest nowy). Bieżąca zawartość i zawartość historii przewijania nie jest uwzględniana w raporcie sesji. Domyślnie wyłączone. logfile nazwapliku logfile flush sekundy Definiuje nazwę plików raportowych. Domyślną nazwą jest "screenlog.%n". Druga postać zmienia liczbę sekund, którą screen odczekuje przed wypróżnieniem bufora pliku raportowego do systemu plików. Domyślną wartością jest 10 sekund. login [on|off] Dodaje lub usuwa wpis z bazy utmp dla bieżącego okna. Kontroluje to czy okno jest `wlogowane'. Bez parametrów, stan zgłoszeniowy okna jest przełączany. Dodatkowo do tego przełączania, dobrze jest mieć klawisze `log in' i `log out'. Np. `bind I login on' i `bind O login off' zmapuje te klawisze na C-a I i C-a O. Domyślne ustawienie (w config.h.in) powinno być włączone dla screena, pracującego z suid-root. Użyj komendy "deflogin" do zmieniania domyślnego stanu zgłoszeniowego nowych okien. Obydwie komendy obecne są tylko jeśli screen został skompilowany z obsługą utmp. logtstamp [on|off] logtstamp after [sekundy] logtstamp string [łańcuch] Ta komenda kontroluje mechanizm pieczątek czasowych (time stamp) screena. Jeśli pieczątki są włączone, screen po dwóch minutach nieaktywności do pliku raportowego dodaje łańcuch, zawierający bieżący czas. Gdy natomiast wyjście zaczyna się na nowo, doklejana jest nowa pieczątka, określająca moment restartu emitowania wyjścia. Czas opóźnienia można zmieniać drugą postacią tej komendy. Trzecia postać jest używana do dostosowywania łańcucha pieczątki czasowej. (domyślnie `-- %n:%t -- time-stamp -- %M/%d/%y %c:%s --\n'). mapdefault Powiedz screenowi, że następny znak wejściowy powinien zostać sprawdzony w domyślnej tablicy wiązań klawiszowych bindkey. Zobacz też "bindkey". mapnotnext Podobne do mapdefault, lecz w ogóle nie zagląda do domyślnej tablicy bindkey. maptimeout [timo] Ustawia opóźnienie międzyznakowe dla sekwencji wejściowych do wykrywania czasu opóźnienia timo ms. Domyślnym czasem jest 300ms. Maptimeout bez argumentów pokazuje bieżące ustawienie. Zobacz też "bindkey". markkeys łańcuch Jest to metoda zmieniania mapy klawiszowej, używanej w trybie kopiowania/historii. Łańcuch jest złożony z par staryznak=nowyznak, które są rozdzielone znakami `:'. Na przykład: Łańcuch "B=^B:F=^F" zmieni klawisze `C-b' i `C-f' na wiązania w stylu vi. Komenda "markkeys h=^B:l=^F:$=^E" ustawiłaby tryb na wiązania w stylu emacsa. Jeśli twój terminal wysyła znaki, które powodują, że przerywasz tryb kopiowania, to komenda ta może być pomocna w wiązaniu tych znaków do nie robienia niczego. Znak braku operacji to `@' i jest używany następująco: "markkeys @=L=H". Komenda ta powoduje odłączenie komend `H' i `L'. Jak pokazano w tym przykładzie, w pojedynczej instrukcji do pojedynczej funkcji można przywiązać wiele klawiszy. meta Wstawia znak komendy (C-a) w strumieniu wejściowym bieżącego okna. monitor [on|off] Włącza monitorowanie aktywności okien. Gdy jest to włączone, a aktywne okno jest przełączone w tło, otrzymasz komunikat informujący o aktywności. Pojawi się on w linii statusu przy pierwszych oznakach wydawania wyjścia przez tamto okno. W wyświetlaczu statusu okien takie okno aktywne jest zaznaczane jako `@'. Monitorowanie początkowo jest wyłączone. msgminwait sek Definiuje czas, przez który screen czeka z nową wiadomością gdy jedna jest już wyświetlana. Wartością domyślną jest 1 sekunda. msgwait sek Definiuje czas, przez który komunikat jest wyświetlany jeśli screen nie jest poruszany innymi aktywnościami. Domyślnie 5 sekund. multiuser on|off Przełącza między trybem wieloużytkownikowym i pojedynczym. Standardowo screen działa w trybie pojedynczym. W trybie wieloużytkownikowym, do umożliwiania użytkownikom dostania się do sesji używa się komend `acladd', `aclchg', `aclgrp' i `acldel'. nethack on|off Zmienia rodzaj komunikatów o błędach, używanych przez screen. Jeśli znasz grę "nethack", mogą ci się spodobać podobne jak w niej komunikaty, które często trochę zaciemniają fakty, lecz są zabawniejsze do czytania. Z drugiej strony, standardowe komunikaty też mogą być często niejasne. Opcja ta jest dostępna tylko jeśli screen został skompilowany ze zdefiniowaną flagą NETHACK. Domyślne ustawienie jest wtedy określone obecnością zmiennej środowiskowej $NETHACKOPTIONS. next Przełącz się na następne okno. Komenda ta może być używana do cyklicznego przełączania się między listą okien. nonblock [on|off] Włącz lub wyłącz kontrole przepływu bieżącego interfejsu użytkownika (wyświetlacza). Jest to używane do uchronienia powolnych wyświetlaczy od spowolnienia przetwarzania danych wyjściowych przez okno. Komenda ta może być przydatna gdy wiele wyświetlaczy pokazuje te samo okno. Opcja jest normalnie wyłączona dla wszystkich wyświetlaczy. number [n] Zmień numer bieżącego okna. Jeśli numer n już jest używany przez inne okno, okna wymieniają numery między sobą. Jeśli nie poda się argumentu, pokazywany jest numer (i tytuł) okna. obuflimit [limit] Jeśli bufor wyjściowy zawiera więcej bajtów niż podany limit, to z okien nie będą czytane dalsze dane. Domyślną wartością jest 256. Jeśli masz szybki wyświetlacz (jak xterm), możesz ustawić to na większą wartość. Jeśli nie poda się argumentów, wyświetlane jest bieżące ustawienie. only Zabij wszystkie regiony poza bieżącym. other Przełącza na poprzednio wyświetlane okno. Jeśli okno to już nie istnieje, other działa analogicznie do next. partial on|off Definiuje czy wyświetlacz powinien być odświeżany (jak dla redisplay) po przełączaniu na bieżące okno. Komenda ta dotyczy tylko bieżącego okna. Aby dotyczyła wszystkich okien, należy skorzystać z komendy allpartial. Domyślnie jest to wyłączone. Wartość domyślna jest ustalona na stałe, gdyż nie ma na razie komendy defpartial. password [kodowane_hasło] Gdy przedstawisz w swoim pliku ".screenrc" zakodowane hasło, screen będzie o nie pytał za każdym razem, gdy ktoś będzie próbował wznowić odłączony proces. Jest to przydatne jeśli w sesji screen pracują uprzywilejowane programy i chcesz chronić ją od prób podłączenia przez innych użytkowników, podających się za ciebie (np. superużytkownik). Jeśli nie ma podanego zakodowanego hasła, screen dwukrotnie prosi o wstukanie hasła i umieszcza jego zakodowany odpowiednik w buforze wklejania. Domyślną wartością jest `none', która wyłącza sprawdzanie hasła. paste [registers [dest_reg]] Zapisz (konkatenowaną) zawartość podanych rejestrów na kolejkę stdin bieżącego wejścia. Rejestr '.' jest traktowany jako bufor wklejania. Jeśli nie poda się parametrów, użytkownik jest pytany o pojedynczy rejestr. Bufor wklejania może być wypełniany komendami copy, history oraz readbuf. Inne rejestry można wypełniać komendami register, readreg i paste. Jeśli paste jest wywołany z drugim argumentem, zawartość podanych rejestrów jest umieszczana w podanym rejestrze docelowym, a nie w oknie. Jeśli jako drugi argument użyć '.', rejestrem docelowym jest bufor wklejania wyświetlacza. Zauważ, że "paste" używa różnych zasobów: Gdy tylko podany jest drugi argument, nie jest wymagane okno bieżące. Gdy określenie źródła zawiera tylko rejestry (nie bufor wklejania), to nie jest w ogóle wymagany bieżący wyświetlacz (podwieszony terminal), gdyż rejestry są zasobami globalnymi. Bufor wklejania jest osobny dla każdego użytkownika. pastefont [on|off] Powiedz screenowi, by do bufora wklejania załączał informację o foncie. Domyślnie nie jest to robione. Komenda ta jest szczególnie przydatna dla fontów wieloznakowych, jak kanji. pow_break Otwórz na nowo linię terminalową okna i wyślij warunek przerwania. Zobacz `break'. pow_detach Odłączenie zasilania. Ogólnie to samo co detach, lecz dodatkowo wysyła sygnał HANGUP do procesu rodzicielskiego screena. UWAGA: Spowoduje to wylogowanie w wypadku gdy screen został uruchomiony z powłoki zgłoszeniowej. pow_detach_msg [komunikat] Podany tu komunikat jest wydawany za każdym razem gdy dokonywane jest `odłączenie zasilania'. Może być używane jako zamiennik komunikatu wylogowywania, lub do resetowania szybkości linii, itp. Bez parametrów, pokazywany jest obecny komunikat. prev Przełącz na okno o następnym niższym numerze. Komenda ta może być używana do cyklicznego przełączania między listą okien. printcmd [kmd] Jeśli kmd nie jest pustym łańcuchem, screen nie będzie używał właściwości "po/pf" terminala, jeśli wykryje sekwencję drukowania ansi ESC [ 5 i, lecz będzie przerzucał potokowo wyjście do kmd. Powinno to normalnie być komendą w rodzaju "lpr" lub "'cat > /tmp/scrprint'". printcmd bez komendy wyświetla bieżące ustawienie. Sekwencja ansi ESC \ kończy drukowanie i zamyka potok. Uwaga: Ostrożnie z tą komendą! Jeśli inni użytkownicy mają dostęp zapisu do twojego terminala, będą oni mogli odpalać komendy drukowania. process [klucz] Przerzuć zawartość podanego rejestru do screenowej kolejki wejściowej. Po uruchomieniu bez parametrów, zostaniesz zapytany o nazwę rejestru. Tekst jest przetwarzany tak, jakby był wpisywany z klawiatury użytkownika. Komenda ta może być przydatna do wiązania wielu akcji pod jeden klawisz. quit Zabij wszystkie okna i zakończ screen. Zauważ, że w terminalach VT100-podobnych klawisze C-4 i C-\ są równoważne. Powoduje to, że domyślne wiązania są niebezpieczne: Uważaj by nie wpisać C-a C-4 podczas wybierania okna numer 4. W celu usunięcia wiązania klawiszowego, użyj zwykłej komendy bind (jak dla "bind '^\'"). readbuf Odczytuje zawartość bieżącego pliku wymiany screena do bufora wklejania. Zobacz też komendę "bufferfile". readreg [register [nazwapliku]] Robi dwie rzeczy, zależnie od liczby argumentów: w wypadku braku, lub przy jednym argumencie, duplikuje bufor wklejania do podanego rejestru lub rejestru, podanego po znaku zachęty. Przy dwóch argumentach, odczytuje zawartość podanego pliku do rejestru. Jest to zachowanie podobne do wczytywania przez "readbuf" plik wymiany screena do bufora wklejania Następujący przykład wkleja systemowy plik z hasłami w okno screena (przy użyciu rejestru p, gdzie pozostaje kopia): C-a : readreg p /etc/passwd C-a : paste p redisplay Wyświetl na nowo bieżące okno. Wymagane do uzyskania pełnego rewyświetlenia w trybie częściowego odświeżania. register klucz łańcuch Zachowuje podany łańcuch w rejestrze klucz. Zobacz też komendę "paste". remove Usuń bieżący region. Jest to nieskuteczne (no-op) gdy istnieje tylko jeden region. removebuf Usuwa plik wymiany screena, używany przez komendy "writebuf" i "readbuf". reset Przestaw terminal wirtualny na jego ustawienia początkowe. Przydatne, gdy pozostały na nim po jakiejś aplikacji dziwne ustawienia. screen [-opts] [n] [kmd [arg]] Zestaw nowe okno. Z każdą komendą można przekazać opcje kontroli przepływu (-f, -fn i -fa), tytułu (a.k.a.) (-t), opcje zgłoszeniowe (-l i -ln), opcję typu terminala (-T <term>), i flagę-wszystkich-właściwości (-a) oraz opcję bufora przewijania (-h <num>). Opcja (-M) włącza dla tego okna monitorowanie. Opcja (-L) włącza dla niego raportowanie wyjścia. Jeśli podany jest dodatkowa liczba w zakresie 0..9, to nowo tworzonemu oknu przyznawany jest numer n (lub jeśli numer ten jest już używany, przyznawany jest następny dostępny). Jeśli po "screen" podana jest komenda, to jest ona uruchamiana w tworzonym oknie; w przeciwnym wypadku, uruchamiana jest powłoka. Tak więc jeśli twój ".screenrc" zawiera linie # przykład dla .screenrc: screen 1 screen -fn -t foobar -L 2 telnet foobar to screen utworzy okno z powłoką (numer #1) i okno z połączeniem telnet do maszyny foobar (w oknie #2, bez kontroli przepływu, pod tytułem "foobar") i będzie zapisywać raporty ("screenlog.2") sesji telnetowej. Zauważ, że w przeciwieństwie do poprzednich wersji screena, nie będzie tworzone żadne dodatkowe okno domyślne jeśli w twoim ".screenrc" znajdują się komendy "screen". Po zakończeniu inicjalizacji, screen przełącza się na ostatnie okno podane w twoim pliku .screenrc lub, jeśli nic nie podano, otwiera domyślne okno #0. Screen ma wbudowane pewne właściwości "cu" i "telnet". Zobacz też rozdział "RODZAJE OKIEN". scrollback num Ustawia rozmiar bufora przewijania dla bieżących okien na num wierszy. Domyślną wartością jest 100. Zobacz też komendę "defscrollback", a do oglądania bieżących ustawień, skorzystaj z "C-a i". select [IDOkna] Przełącz się na okno, określone przez IDOkna. Może to być przedrostek tytułu okna (alfanumeryczna nazwa), lub numer okna. Parametr jest opcjonalny i jeśli jest pominięty, zostaniesz zapytany o identyfikator. Gdy zestawiane jest nowe okno, przyznawany jest mu pierwszy dostępny numer. Tak więc, pierwsze okno można włączyć przez "select 0" (nie może być naraz obecnych więcej niż 10 okien, chyba że screen został skompilowany z większym ustawieniem MAXWIN). sessionname [nazwa] Zmień nazwę bieżącej sesji. Zauważ, że dla "screen -list" nazwa pojawia się z przyklejonym id-procesu. Jeśli argument "nazwa" jest pominięty, wyświetlana jest nazwa tej sesji. Uwaga: zmienne środowiskowe $STY wciąż odzwierciedlają stare nazwy. Może to powodować zakłopotanie. Domyślna wartość jest tworzona z tty i nazw hosta. setenv [zmienna [łańcuch]] Ustawia zmienną środowiskową zmienna na wartość łańcuch. Jeśli podana jest tylko zmienna, użytkownik zostanie zapytany o jej wartość. Jeśli nie zostaną podane żadne parametry, użytkownik zostanie zapytany tak o zmienną, jak o jej wartość. Środowisko jest dziedziczone przez wszystkie kolejno rozwidlane powłoki. shell komenda Ustaw komendę, używaną do tworzenia nowej powłoki. Przesłania to wartość zmiennej środowiskowej $SHELL. Jest to przydatne jeśli chcesz uruchomić rozszerzacza-tty, który chce wykonywać program podany w $SHELL. Jeśli komenda rozpoczyna się znakiem '-', powłoka będzie uruchomiona jako powłoka zgłoszeniowa. shelltitle tytuł Ustaw tytuł dla wszystkich powłok, tworzonych podczas startu lub przez komendę C-A C-c. Dla szczegółów o tym, czym jest tytuł, zobacz dyskusję "TYTUŁY (nazywanie okien)". silence [on|off|sek] Przełącza monitorowanie ciszy okien. Gdy cisza jest włączona, a monitorowane okno jest w tle, to po pewnym czasie nieaktywności (ciszy) otrzymasz w linii statusu komunikat o ciszy. Domyślny czas oczekiwania może być zmieniany komendą `silencewait', lub poprzez podanie liczby sekund zamiast `on' lub `off'. Cisza jest początkowo wyłączona dla wszystkich okien. silencewait sek Zdefiniuj czas, po którym ma się pojawiać komunikat ciszy. Domyślnie 30 sekund. sleep num Komenda ta powstrzymuje wykonywanie pliku .screenrc na num sekund. Aktywność klawiaturowa przerywa pauzę. Może to być przydatne do dawania użytkownikom szansy na przeczytanie komunikatów, wydawanych przez "echo". slowpaste msek Zdefiniuj szybkość, z jaką komenda paste ("C-a ]") wkleja tekst do okna. Jeśli parametr jest niezerowy, tekst jest wpisywany znak po znaku. Dodatkowo, screen pauzuje przez msec milisekund po każdym znaku, umożliwiając aplikacji przetworzenie wejścia. Używaj slowpaste tylko jeśli twój system ma problemy kontroli przepływu podczas wklejania wielkich fragmentów tekstu. sorendition [atr [kolor]] Zmień sposób, którego używa screen do podświetlania tekstu (w celu zaznaczania i drukowania komunikatów). Atr jest liczbą szesnastkową i określa atrybuty tekstu (inwersja, podkreślenie, ...). Kolor jest dwucyfrową liczbą i zmienia kolor pierwszego planu/tła podświetlanego tekstu. Aby znaki pojawiały się w odpowiedni sposób, wymagana jest pewna wiedza o wewnętrznej reprezentacji znaków screena. Domyślną wartością jest obecnie 10 99 (standout, domyślne kolory). split Podziel bieżący region na dwa nowe. Wszystkie regiony wyświetlacza zmieniają rozmiar, aby zrobić miejsce na nowy. Puste okno jest wyświetlane na nowym regionie. startup_message on|off Wybierz, czy chcesz oglądać informację o kopiowaniu podczas startu. Domyślnie jest to włączone, jak pewnie zauważyłeś. stuff łańcuch Przerzuć łańcuch do bufora wejściowego bieżącego okna. Jest to podobne do komendy "paste", lecz mniej ogólne. Nie możesz z pomocą tej komendy wklejać dużych buforów. Jest ona najprzydatniejsza do wiązań klawiaturowych. Zobacz też "bindkey". su [nazwaużytkownika [hasło [hasło2]] Podmień użytkownika wyświetlacza. Komenda pyta o wszystkie pominięte parametry. Jeśli w parametrach podano hasła, muszą one być niezakodowane. Pierwsze hasło jest dopasowywane do systemowej bazy passwd, drugie do hasła screena, ustawionego komendami "acladd", "password". "Su" może być przydatne dla administratora screena do testowania wieloużytkownikowych konfiguracji. Gdy identyfikacja się nie powiedzie, użytkownik ma dostęp do komend przeznaczonych dla użytkownika nobody. Są to "detach", "license", "version", "help" oraz "displays". suspend Zawieś screena. Okna są w tym stanie `odłączone'. Właściwość ta jest zależna od powłoki, zdolnej do kontroli zadań. term term W środowisku każdego okna, które otworzył screen, zmienna środowiskowa $TERM jest ustawiona domyślnie na "screen". Jeśli w lokalnym pliku termcap nie ma żadnego opisu dla takiego terminala, możesz zmienić $TERM na np. "vt100". Nie spowoduje to żadnej szkody, gdyż screen jest zgodny z vt100/ansi. Używanie komendy "term" nie jest zalecane dla celów niedomyślnych. Znaczy to, że możnaby podać ustawienia $TERM (np. vt100) dla komendy "screen rlogin innamaszyna". Jednak zamiast tego lepiej użyć "screen -T vt100 rlogin innamaszyna". termcap term terminal-tweaks [window-tweaks] terminfo term terminal-tweaks [window-tweaks] termcapinfo term terminal-tweaks [window-tweaks] Używanie tej komendy powoduje modyfikacje wpisów termcap terminala bez potrzeby przechodzenia przez trudności związane z tworzeniem dostosowanego wpisu termcap. Dodatkowo, możesz opcjonalnie dostosować termcap generowany dla okien. Komendy te należy umieścić w jednym z plików startowych screenrc, gdyż po uruchomieniu emulatora terminala stają się one bezużyteczne. Jeśli twój system działa w oparciu o bazę terminfo (zamiast termcap), screen będzie rozumiał komendę `terminfo', która ma takie same efekty, jak komenda `termcap'. Udostępniono dwie oddzielne komendy, gdyż istnieją subtelne definicje syntaktyczne, np. to gdzie wymagana jest interpolacja parametrów (z użyciem `%'). Zauważ, że z komendą `terminfo' używa się nazw właściwości z termcap. W wielu wypadkach, gdy argumenty są prawidłowe zarówno dla składni terminfo jak i termcap, możesz użyć komendy `termcapinfo', która jest skrótem dla pary komend `termcap' i `terminfo', o identycznych argumentach. Pierwszy argument określa, do którego terminala (terminali) odnosi się definicja. Możesz podać wiele nazw terminali, rozdzielając je znakami `|'. `*' odpowiada wszystkim terminalom, a `vt*' wszystkim terminalom, rozpoczynającym się od "ft". Każdy argument tweak składa się z jednej lub więcej definicji termcap (rozdzielonych dwukropkami), które mają być wstawione na początek odpowiedniego wpisu termcap, rozszerzając go lub przesłaniając istniejące wartości. Pierwszy tweak modyfikuje termcap twojego terminala i zawiera definicje, z których twój terminal korzysta do wykonywania pewnych funkcji. Jeśli podasz tu łańcuch pusty, zawartość pozostanie niezmieniona (np. ''). Drugi (opcjonalny) tweak modyfikuje wszystkie termcapy okien i powinien zawierać definicje zrozumiałe dla screena (zobacz sekcję "TERMINAL WIRTUALNY". Przykłady: termcap xterm* LP:hs@ Mówi screenowi, że wszystkie terminale rozpoczynające się od `xterm' mają automatyczne marginesy, które umożliwiają odświeżanie ostatniej pozycji ekranu (LP), lecz nie posiadają prawdziwej linii statusu (brak 'hs' - doklejanie `@' wyłącza wpisy). Zauważ, że zakładamy `LP' dla wszystkich nazw terminala, które rozpoczynają się od "vt", lecz tylko jeśli nie podasz komendy termcap dla takiego terminala. termcap vt* LP termcap vt102|vt220 Z0=\E[?3h:Z1=\E[?3l Podaje właściwość `LP' dla wszystkich terminali rozpoczynających się od `vt'. Druga linia dodatkowo dodaje sekwencje specjalne do przełączania do (Z0) i z (Z1) trybu 132 znaków na linię dla vt102 i vt220. (W celu używania komend zmieniających szerokość, musisz w swoim termcap podać Z0 i Z1.) termcap vt100 "" l0=PF1:l1=PF2:l2=PF3:l3=PF4 Pozostawia to twój termcap vt100 w spokoju i dodaje wpis do termcapu każdego okna. termcap h19|z19 am@:im=\E@:ei=\EO dc=\E[P Bierze termcap h10 i z19 i wyłącza automarginesy (am@) oraz włącza właściwości trybu wstawiania (im--insert mode) i end-insert (ei) (znak `@' w łańcuchu `im' znajduje się po `=', więc jest częścią łańcucha). Posiadanie w termcapie terminala definicji `im' i `ei', screen automatycznie zareklamuje właściwość character-insert w termcapie każdego okna. Każde okno dostanie też właściwość delete-character (dc), która będzie przez screen tłumaczona na odświeżenie linii (line-update) terminala (udajemy, że nie obsługuje on kasowania znaków). Jeśli chciałbyś w pełni określić wpisy termcap każdego okna, powinieneś zamiast tego wszystkiego przed uruchomieniem screena ustawić zmienną $SCREENCAP. Zobacz też dyskusję w sekcji "TERMINAL WIRTUALNY" i podręcznik systemowy termcap. time Używa linii komunikatów do wyświetlania czasu dnia, nazwy hosta i obciążenia w 1, 5 i 15 minutach (jeśli informacja ta jest dostępna w twoim systemie). Dla informacji specyficznych oknu, użyj "info". title [aliasokna] Ustaw nazwę bieżącego okna na aliasokna. Jeśli nie podano nazwy, screen o nią zapyta. Komenda ta była znana dawniej jako `aka'. unsetenv zmienna Kasuje zmienną środowiskową. vbell [on|off] Ustawia wizualny dzwonek dla tego okna. Pominięcie parametru przełącza ustawienie. Jeśli vbell jest włączony, lecz twój terminal nie obsługuje wizualnego dzwonka, po otrzymaniu znaku dzwonka (^G) w linii statusu jest wyświetlany `komunikat-vbell'. Obsługa vbell terminala jest definiowana zmienną termcapa `vb' (terminfo: 'flash'). Domyślnie, vbell jest wyłączony i używany jest dzwonek audio. Zobacz też `bell_msg'. vbell_msg [komunikat] Ustawia komunikat wizualnego dzwonka. Jeśli okno otrzyma znak dzwonka (^G), a terminal nie obsługuje wizualnego dzwonka, w linii statusu drukowany jest komunikat. Domyślnym komunikatem jest "Wuff, Wuff!!". Bez parametrów, pokazywany jest obecny komunikat. vbellwait sek Zdefiniuj w sekundach opóźnienie, po każdym wyświetleniu komunikatu o dzwonku. Domyślnie jest to 1 sekunda. verbose [on|off] Jeśli tryb verbose (gadatliwy) jest włączony, przy każdym tworzeniu okna istnieje echo nazwy komendy. Domyślnie wyłączone. Bez parametrów, pokazuje obecne ustawienie. version Wydrukuj w linii statusu bieżącą wersję i datę kompilacji. wall komunikat Zapisz na wszystkie wyświetlacze komunikat. Komunikat pojawi się w terminalowej linii statusu. width [num] Przełączaj szerokość okna między 80 a 132 kolumnami, lub ustaw na num kolumn. Wymaga to odpowiedniego terminala i wpisów termcap "Z0" oraz "Z1". Zobacz dla dalszych informacji komendę "termcap". windows Używa linii komunikatów do wyświetlania listy wszystkich okien. Każde okno jest wymieniane według numeru wraz z nazwą procesu, który został w nim uruchomiony (lub z tytułem); okno bieżące jest zaznaczane przez `*'; okno poprzednie jest zaznaczane przez `-'; wszystkie okna, które są zalogowane, są zaznaczane jako `$'; okno w tle, które otrzymało dzwonek jest zaznaczane jako `!'; okno w tle, które jest monitorowane i zaszła w nim aktywność jest zaznaczane jako `@'; okno, które ma włączone raportowanie wyjścia jest zaznaczone jako `(L)'; okna, zajmowane przez innych użytkowników są zaznaczane jako `&'; okna w stanie zombie są zaznaczane jako `Z'. Jeśli lista jest zbyt długa, by zmieścić się w terminalowej linii statusu, wyświetlana jest tylko część wokół bieżącego okna. wrap [on|off] Ustawia zawijanie linii w oknie. Gdy jest to włączone, znak wstawiany na ostatniej kolumnie wiersza będzie zawijał na początek następnego wiersza. W myśl dodanej właściwości, backspace (^H) również zawija od lewego marginesu do poprzedniej linii. Domyślnie jest to włączone. writebuf Zapisuje zawartość bufora wklejania do publicznie dostępnego pliku wymiany screena. Jest to prymitywne narzędzie komunikacji między użytkownikami screena na danym hoście. Nazwa pliku może być ustawiana z pomocą komendy bufferfile i domyślnie jest nią "/tmp/screen- exchange". writelock [on|off|auto] Jako dodatek do list kontroli dostępu, nie wszyscy użytkownicy muszą być w stanie pisać do tego samego okna naraz. Domyślnie, blokada zapisu jest w trybie `auto' i zapewnia wyłączne prawo wejścia dla użytkownika, który pierwszy się na dane okno przełączył. Gdy opuści on okno, automatycznie blokadę mogą uzyskać inni użytkownicy. Blokadę zapisu bieżącego okna można wyłączyć komendą "writelock off". Jeśli użytkownik wykona komendę "writelock on", to będzie on miał wyłączne prawa zapisu podczas przełączania się na inne okna. xoff xon Wstawia na kolejkę stdin bieżącego okna znak CTRL-s/CTRL-q. zombie [klawisze] defzombie [klawisze] Domyślnie okna screena są usuwane z listy okien gdy tylko ich procesy (np. powłoki) zakończą działanie. Gdy do komendy zombie podać łańcuch dwóch klawiszy, `martwe' okna pozostają na liście. Do usunięcia takiego okna można użyć komendy kill. Naciśnięcie w martwym oknie pierwszego klawisza ma ten sam efekt. Naciśnięcie drugiego klawisza powoduje, że screen próbuje wskrzesić okno. Proces, uruchomiony początkowo w oknie zostanie ponownie odpalony. Wywołanie zombie bez parametrów wyczyści ustawienie zombie, w wyniku czego okna znikną po zakończeniu ich procesu. Gdy ustawienie zombie jest obsługiwane globalnie dla wszystkich okien, komenda ta powinna być nazywana defzombie. Dopóki potrzebujemy tego jako ustawienia dla poszczególnego okna, komendy zombie i defzombie są równoważne.
LINIA KOMUNIKATÓW
Dodatkowe komunikaty i diagnostyki są wyświetlane w linii komunikatów. Zwykle linia ta znajduje się na dole ekranu, jednak można to przedefiniować na górę podczas kompilacji. Jeśli twój terminal ma w termcapie zdefiniowaną linię statusu, screen skorzysta właśnie z niej. W przeciwnym wypadku, linia bieżącego ekranu będzie tymczasowo nadpisywana, a wyjście będzie chwilowo przerywane. Linia komunikatów jest automatycznie usuwana po paru sekundach przerwy. Może być też usuwana wcześniej poprzez rozpoczęcie naciskania klawiszy. Urządzenie linii komunikatów może być używane przez aplikacje, pracujące w bieżącym oknie. Narzędziem w tym celu jest sekwencja sterująca ANSI, Privacy message. Na przykład, z powłoki możesz wpisać coś takiego: echo '<esc>^Hello world from window '$WINDOW'<esc>\\' Gdzie '<esc>' to escape, '^' to literalna strzałka w górę, a '\\' zmienia się w pojedynczy lewy ukośnik.
TYPY OKIEN
Screen daje trzy rodzaje okien. Nowe okna można utworzyć z pomocą komendy screen (zobacz też opis w rozdziale "DOSTOSOWYWANIE"). Pierwszy parametr komendy screen określa typ tworzonego okna. Inne typy okien są szczególnymi przypadkami typu normalnego. Zostały one dodane, aby umożliwić efektywne wykorzystanie screena jako multiplekser (powielacz) konsolowy ze 100 lub więcej oknami. • Normalne okno zawiera powłokę, lub dowolną inną komendę systemową, jaką można uruchomić z powłoki (np. slogin, itd...) • Jeśli jako pierwszy parametr podana jest nazwa tty (urządzenie znakowe, np. "/dev/ttya"), to okno jest podłączane bezpośrednio do tego urządzenia. Typ tego okna jest podobny do "screen cu -l /dev/ttya". Dla używania węzła urządzenia wymagane są prawa zapisu i odczytu. Dodatkowo, screen próbuje użyć otwarcia na wyłączność, aby zaznaczyć zajęcie linii połączenia. Dozwolony jest dodatkowy parametr, składający się z rozdzielonej przecinkami listy flag w notacji używanej przez stty(1): <szybkość> Zwykle 300, 1200, 9600 lub 19200. Dotyczy to tak transmisji, jak i odbierania. cs8 or cs7 Określa transmisję ośmiu (lub siedmiu) bitów na bajt. ixon or -ixon Włącza (lub wyłącza) programową kontrolę przepływu (CTRL-S/CTRL-Q) nadawania. ixoff or -ixon Włącza (lub wyłącza) programową kontrolę przepływu odbierania. istrip or -istrip Czyści (lub zatrzymuje) ósmy bit w każdym odebranym bajcie. Możesz podać tyle opcji, ile potrzeba. Niepodane opcje powodują, że sterownik terminala pobiera wartości parametrów z połączenia. Wartości te są zależne od systemu i mogą być wartościami domyślnymi, lub wartościami zachowanymi z poprzedniego połączenia. Dla okien tty, komenda info pokazuje w linii statusu część linii kontroli modemu. Mogą one zawierać `RTS', `CTS', 'DTR', `DSR', `CD' i więcej. Zależy to od dostępnych ioctl() oraz nagłówków systemu i fizycznych właściwości układu szeregowego. Sygnały, które są w stanie niskim (nieaktywne) mają nazwy poprzedzone znakiem wykrzyknika. W przeciwnym wypadku są one w stanie wysokim. Sygnały nieobsługiwane przez sprzęt, lecz znane interfejsowi ioctl() są zwykle wyświetlane jako niskie. Gdy bit statusu CLOCAL jest ustawiony, cały zestaw sygnałów modemowych jest umieszczany w nawiasach klamrowych ({ i }). Gdy ustawiony jest bit CRTSCTS lub TIOCSOFTCAR, sygnały `CTS' lub `CD' są pokazywane w nawiasach. Dla okien tty, komenda break powoduje obniżenie sygnału linii transmisji danych (TxD) na podany okres czasu. Ma to być interpretowane jako sygnał przerwania po drugiej stronie. Podczas wykonywania tej komendy nie przesyłane są dane i nie są zmieniane linie kontroli modemu. • Jeśli pierwszym parametrem jest "//telnet", to drugim powinna być nazwa hosta, a opcjonalny trzeci parametr może podawać numer portu TCP (domyślnie dziesiętne 23). Screen podłączy się do serwera na zdalnym hoście i użyje protokołu telnet do komunikacji. Dla okien telnet, komenda info wyświetla szczegóły o połączeniu w nawiasach kwadratowych ([ i ]) na końcu linii statusu. b BINARY. Połączenie jest w trybie binarnym. e ECHO. Wyłączone lokalne echo. c SGA. Połączenie jest w `trybie znakowym' (domyślnie: `tryb wierszowy'). t TTYPE. Zdalny host zażądał typu terminala. Screen wysyła nazwę "screen", chyba że został inaczej pouczony (zobacz też komendę `term'). w NAWS. Zdalny host jest powiadamiany o zmianach rozmiaru okna. f LFLOW. Zdalny host będzie przesyłał informacje kontroli przepływu. (Obecnie ignorowane.) Dodatkowymi flagami, przeznaczonymi do debuggowania są x,t i n (XDISPLOC, TSPEED i NEWENV). Dla okien telnet, komenda break wysyła kod telnet IAC BREAK (dziesiętne 243) do zdalnego hosta. Ten rodzaj okien jest dostępny tylko jeśli screen został skompilowany ze zdefiniowaną opcją BUILTIN_TELNET.
ŁAŃCUCHOWE SEWKENCJE SPECJALNE
Screen daje specjalny mechanizm wstawiania do komunikatów lub nazw pliku informacji w rodzaju bieżącego czasu. Znakiem specjalnym jest '%', z jednym wyjątkiem: w obrębie twardego statusu okna używane jest '^%' ('^E'). Oto pełna lista obsługiwanych sekwencji: % znak procentu a 'am' albo 'pm' A 'AM' albo 'PM' c bieżący czas, GG:MM w postaci 24h C bieżący czas, GG:MM w postaci 12h d numer dnia D nazwa dnia tygodnia h twardy status okna l bieżące obciążenie systemu m numer miesiąca M nazwa miesiąca n numer okna s sekundy t tytuł okna u wszyscy inni użytkownicy tego okna w wszystkie numery okien i nazwy W wszystkie numery okien i nazwy poza bieżącą y ostatnie dwie cyfry roku Y pełny rok ? część do następnego '%?' jest wyświetlana tylko jeśli sekwencja rozwija się do niezerowego łańcucha : część else '%?' Sekwencje 'c' i 'C' mogą być kwalifikowane przez '0', powodując, że screen użyje zera zamiast spacji jako znaku wypełnienia. Sekwencja 'n' rozumie kwalifikator długości (np. '%3n').
KONTROLA PRZEPŁYWU
Każde okno ma ustawienie kontroli przepływu, które określa jak traktować znaki XON i XOFF (oraz prawdopodobnie znak przerwania (interrupt)). Gdy kontrola jest wyłączona, znaki te są ignorowane, co umożliwia użytkownikom przesyłanie ich w prosty sposób do programów (przydatne np. dla edytora emacs). Minusem jest to, że trzeba będzie dłużej czekać aż wyjście z "normalnego" programu zapauzuje w odpowiedzi na XOFF. Przy włączonej kontroli przepływu, znaki XON i XOFF są używane do natychmiastowego przerywania wyjścia z bieżącego okna. Znaki te można wciąż przesyłać do bieżącego programu, lecz musisz używać odpowiednich dwuznakowych komend screena (zwykle "C-a q" (xon) oraz "C-a s" (xoff)). Komendy xon/xoff są też przydatne do wpisywania C-s i C-q obok terminala, przechwytującego te znaki. Każde okno ma początkową wartość kontroli przepływu ustawianą albo opcją -f, albo komendą "defflow" .screenrc. Domyślnie, okna są ustawiane na automatyczne przełączanie przepływu. Może to być potem przełączane między trzema stanami--'włączony ustalony' (fixed on), 'wyłączony ustalony' (fixed off) i 'automatyczny' (automatic)--służy do tego komenda "flow", podwiązana do "C-a f". Tryb automatycznego przełączania przepływu zajmuje się kontrolą przepływu przy użyciu trybu TIOCPKT (podobnie jak "rlogin"). Jeśli sterownik tty nie obsługuje TIOCPKT, screen próbuje znaleźć prawidłowy tryb w oparciu o bieżące ustawienie keypadu aplikacji - gdy jest włączony, kontrola przepływu jest wyłączona i odwrotnie. Oczywiście, w wypadku zajścia potrzeby, wciąż można manipulować kontrolą ręcznie. Jeśli pracujesz z włączoną kontrolą przepływu i zauważysz, że naciskanie klawisza przerwania (zwykle C-c) nie przerywa wyświetlania aż do następnych 6-8 linii, spróbuj uruchomić screena z opcją "interrupt" (dodaj flagę "interrupt" do komendy "flow" w .screenrc, lub użyj opcji -i linii komend). Powoduje to, że wyjście, które screen zebrał z przerwanego programu jest wypróżniane. Wadą tego jest to, że pamięć terminala zawiera niewypróżnioną wersję wyjścia, co w rzadkich przypadkach może powodować pewne niedokładności wyjścia. Na przykład, jeśli przełączasz ekrany i powrócisz, lub odświeżysz ekran z pomocą "C-a l", to zobaczysz wersję wyjścia, która pojawiłaby się bez włączonego "interrupt". Poza tym, być może podczas pracy z programem, który oczekuje wpisywania jako wejście znaku przerwania (interrupt), będzie trzeba wyłączyć kontrolę przepływu (lub użyć trybu automatycznego), ponieważ jest możliwe przypadkowe przerwanie wyjścia wirtualnego terminala na twój terminal fizyczny. Jeśli zajdzie takie zdarzenie, zwykłe odświeżenie ekranu "C-a l" powinno go odtworzyć.
TYTUŁY (nazywanie okien)
Nazwę każdego okna w wyświetlaczu (widzianą w komendzie "windows" (C-a w)) można zmienić poprzez ustawianie jej jedną z komend title. Normalnie, wyświetlaną nazwą jest nazwa polecenia programu, utworzonego w oknie. Czasem jednak przydatne jest rozróżnić różne programy o tej samej nazwie, lub zmieniać nazwę w locie, aby odzwierciedlać bieżący stan okna. Domyślna nazwa okien powłokowych może być ustawiana komendą "shelltitle" pliku .screenrc, podczas gdy inne okna są tworzone komendą "screen" i mogą mięć ustawianą nazwę poprzez opcję -t. Interaktywnie, istnieje sekwencja specjalna łańcuchu tytułowego (<esc>knazwa<esc>\) oraz komenda "title" (C-a A). Pierwsze może być wysyłane przez aplikację w celu kontrolowania nazwy okna, a drugie zapyta o nazwę po wciśnięciu. Można też przywiązać nazwy predefiniowane do klawiszy z komendą "title" i ustawiać tak wszystko w sposób zgrabny i bez zapytywania. Screen ma pewne mechanizmy specyficznej dla powłok heurystyki, włączanej przez ustawienie nazwy okna na "szukaj|nazwa" i zaaranżowanie zerowej sekwencji specjalnej tytułu jako części znaku zachęty. Część szukaj określa szukany łańcuch końca-znaku-zachęty, podczas gdy część nazwa określa domyślną nazwę powłoki dla okna. Jeśli nazwa kończy się dwukropkiem, screen spróbuje dodać do końca nazwy powłoki nazwę komendy, uruchomionej w oknie (np. "nazwa:kmd"). W przeciwnym wypadku, nazwa bieżącej komendy poprzedza podczas działania nazwę powłoki. Oto jak to działa: musisz zmodyfikować zachętę powłoki tak, by emitowała zerową sekwencję specjalną tytułu (<esc>k</esc>\). Ostatnia część znaku zachęty musi być identyczna z łańcuchem, podanym w części szukaj tytułu. Gdy jest to ustawione, screen będzie używał sekwencji specjalnej tytułu do czyszczenia poprzedniej nazwy komendy i przygotowywał się na następną komendę. Potem, po odebraniu z powłoki nowej linii, nastąpi szukanie końca znaku zachęty. Po jego znalezieniu, pobrane zostanie pierwsze słowo, znajdujące się za nim i zostanie użyte jako nazwa komendy. Jeśli nazwa komendy rozpoczyna się od '!', '%', lub '^', to screen użyje pierwszego słowa następnej linii, preferując je nad właśnie znalezioną nazwę. Pomaga to użytkownikom csh w uzyskiwaniu lepszych nazw komend przy używaniu kontroli zadań lub historii. Oto kilka przykładów .screenrc: screen -t top 2 nice top Dodanie tej linii do .screenrc uruchomi znicowaną wersję komendy "top" w oknie 2 o nazwie "top" (a nie "nice"). shelltitle '> |csh' screen 1 Komendy te uruchamiają powłokę o podanym tytule powłokowym. Tytuł jest podany jako auto- tytuł, który oczekuje, że znak zachęty i wpisana komenda będą wyglądać podobnie do następującego: /usr/joe/src/dir> trn (za znakiem '> ' następuje szukanie nazwy komendy). Status okna pokaże podczas działania komendy wartość "trn", a po jej zakończeniu powróci do "csh". bind R screen -t '% |root:' su To polecenie wiąże sekwencję klawiszową "C-a R" do komendy "su" i przekazuje jej auto- tytuł "root:". Aby ten tytuł zadziałał, ekran powinien wyglądać następująco: % !em emacs file.c Użytkownik wpisał tu komendę "!em" historii csh, która uruchomiła poprzednio wpisaną komendę "emacs". Status okna pokaże "root:emacs" podczas wykonywania komendy, a po zakończeniu po prostu "root:". bind o title bind E title "" bind u title (unknown) Pierwsze wiązanie nie ma żadnych argumentów, więc zapyta cię o tytuł (C-a o). Drugie wiązanie wyczyści bieżące ustawienie auto-tytułu (C-a E). Trzecie wiązanie ustawi tytuł bieżącego okna na "(unknown)" (C-a u). Ważną rzeczą do pamiętania przy dodawaniu zerowej sekwencji specjalnej tytułu do znaku zachęty jest to, że niektóre powłoki (np. csh) zliczają wszystkie niesterujące znaki jako długość znaku zachęty. Jeśli znaki niewidzialne nie są wielokrotnością 8, to backspace po tabulacji spowoduje nieprawidłowe wyświetlanie. Sposobem ominięcia tego jest użycie następującego znaku zachęty: set prompt='^[[0000m^[k^[\% ' Sekwencja specjalna "<esc>[0000m" nie tylko normalizuje atrybuty znakowe, lecz dodatkowo wszystkie zera zaokrąglają długość znaków niewidzialnych do 8. Użytkownicy basha prawdopodobnie będą chcieli wyświetlać sekwencję specjalną przy użyciu PROMPT_COMMAND: PROMPT_COMMAND='echo -n -e "\033k\033\134"' (Do wysyłania `\' używałem "134" z uwagi na błąd w bash 1.04).
TERMINAL WIRTUALNY
Każde okno w sesji screen emuluje terminal vt100 z dodanymi kilkoma funkcjami. Emulator vt100 jest wkodowany na sztywno; nie ma emulacji innych terminali. Zazwyczaj screen usiłuje emulować tak dużo ze standardu vt100/ansi ile tylko możliwe. Jeśli jednak twój terminal nie ma pewnych właściwości, emulacja może nie być kompletna. W tych wypadkach, screen musi powiedzieć aplikacją, że niektórych właściwości nie ma. Nie jest to problem dla maszyn używających termcapa, gdyż screen może używać zmiennej $TERMCAP do dostosowywania standardowego termcapu screena. Jeśli jednak wykonujesz rlogin na inną maszynę, lub twoja maszyna obsługuje tylko terminfo, metoda ta nie zadziała. Z tego powodu, screen daje pewien sposób na zajęcie się tymi przypadkami. Oto jak to działa: Gdy screen próbuje znaleźć dla siebie nazwę terminala, najpierw szuka wpisu "screen.<term>", gdzie <term> jest zawartością twojej zmiennej $TERM. Jeśli wpis taki nie istnieje, próbowany jest "screen" (lub "screen-w" jeśli terminal jest szeroki (132 kolumn lub więcej)). Jeśli nawet ten wpis nie został znaleziony, jako substytut używany jest "vt100". Pomysłem jest to, że jeśli masz terminal, który nie obsługuje ważnej właściwości (np. kasowanie znaku, lub czyszczenie do EOS), to możesz zbudować dla screena nowy wpis termcap/terminfo (o nazwie "screen.<dumbterm>"), w którym właściwość ta jest wyłączona. Jeśli ten wpis jest zainstalowany na twoich maszynach, to możesz wykonywać rlogin i wciąż zachowywać poprawny wpis termcap/terminfo. Nazwa terminala jest wstawiana do zmiennej $TERM wszystkich nowych okien. Dodatkowo też, screen ustawia zmienną $TERMCAP, aby odzwierciedlała właściwości emulowanego wirtualnego terminala. Zauważ jednak, że na maszynach z bazami terminfo, zmienna ta nie ma efektu. Ponadto, zmienna $WINDOW jest ustawiana na numer okna każdego okna. Rzeczywisty zestaw właściwości, obsługiwanych przez terminal wirtualny zależy od właściwości obsługiwanych przez terminal fizyczny. Jeśli na przykład terminal fizyczny nie obsługuje trybu podkreślania, screen nie będzie wstawiał właściwości `us' i `ue' do $TERMCAP. Jednak do samego uruchomienia screena potrzeba minimalnego zestawu właściwości; są to przewijanie, czyszczenie ekranu i bezpośrednie adresowanie kursora (dodatkowo, screen nie działa na terminalach hardcopy i na terminalach, które nadstukują). Wartość $TERMCAP można też dostosowywać, korzystając z komendy .screenrc "termcap", lub definiując przed startem zmienną środowiskową $SCREENCAP. Gdy to drugie jest zdefiniowane, jego zawartość będzie dosłownie kopiowana do zmiennej $TERMCAP każdego okna. Może to być albo pełna definicja terminala, albo plik, w którym zdefiniowany jest terminal "screen" (lub/i "screen-w"). Zauważ, że screen honoruje komendę "terminfo" .screenrc, jeśli system używa bazy terminfo. Gdy we wpisie termcap obecna jest właściwość logiczna `G0', to terminal, z którego uruchomiono screena obsługuje wiele zestawów znaków. Umożliwia to aplikacji np. używanie grafiki vt100 lub narodowych zestawów znaków. Obsługiwane są następujące komendy z ISO 2022: lock shift G0 (SI), lock shift G1 (SO), lock shift G2, lock shift G3, single shift G2, oraz single shift G3. Gdy tworzony (lub resetowany) jest terminal wirtualny, zestaw ASCII jest oznaczany jako G0 do G3. Gdy obecna jest właściwość `G0', screen analizuje (jeśli są obecne) właściwości `S0', `E0' i `C0'. `S0' jest sekwencją, której terminal używa do włączania zestawu znaków graficznych zamiast SI. `E0' jest odpowiadającym zamiennikiem dla SO. `C0' daje łańcuch translacji znaku na znak, używany w trybie semigrafiki. Łańcuch ten jest zbudowany podobnie do właściwości `acsc' terminfo. Gdy we wpisie terminala obecne są właściwości `po' i `pf', aplikacje pracujące pod screenem mogą wysyłać wyjście na port drukarki terminala. Umożliwia to użytkownikowi posiadanie w jednym oknie aplikacji, wysyłającej wyjście do drukarki, podłączonej do terminala, podczas gdy inne okna są wciąż aktywne (port drukarki jest włączany i wyłączany dla każdego fragmentu wyjścia). Jako efekt uboczny, programy pracujące w różnych oknach mogą równocześnie wysyłać wyjście na drukarkę . Dane wysyłane do drukarki nie pojawiają się w oknie. Komenda info wyświetla w czasie aktywności drukarkowej linię rozpoczynającą się od `PRIN'. Screen Obsługuje linię twardego statusu każdego okna. Jeśli okno zostanie wybrane, twardy status wyświetlacza jest odświeżany, aby odpowiadał statusowi tego okna. Jeśli wyświetlacz nie posiada twardego statusu, to linia będzie wyświetlana jako standardowy komunikat screena. Linię twardego statusu można zmienić komendą ANSI Application Program Command (APC): "ESC_<łańcuch>ESC\". Jako ukłon w stronę użytkowników xterma, przyjmowana jest też sekwencja "ESC]0..2;<string>^G". Niektóre właściwości są wstawiane do zmiennej $TERMCAP terminala wirtualnego tylko jeśli można je efektywnie zaimplementować na terminalu fizycznym. Na przykład `dl' jest wstawiane tylko jeśli terminal obsługuje albo kasowanie linii, albo przewijanie regionów. Zauważ, że może to spowodować zakłopotanie gdy sesja zostanie wznowiona na innym terminalu, gdyż wartość $TERMCAP nie może być zmieniona przez proces rodzicielski. Poniżej znajduje się lista sekwencji sterujących, rozpoznawanych przez screen. "(V)" i "(A)" określają VT100-specyficzne oraz ANSI- lub ISO-specyficzne funkcje. ESC E Następna linia. ESC D Indeks ESC M Odwróć indeks ESC H Ustaw tabulację poziomą ESC Z Wyślij łańcuch identyfikacji vt100 ESC 7 (V) Zachowaj kursor i atrybuty ESC 8 (V) Odtwórz kursor i atrybuty ESC [s (A) Zachowaj kursor i atrybuty ESC [u (A) Odtwórz kursor i atrybuty ESC c Resetuj do stanu początkowego ESC g Dzwonek wizualny ESC Pn p Widzialność kursora (97801) Pn = 6 Niewidzialny 7 Widzialny ESC = (V) Tryb keypad aplikacji ESC > (V) Tryb numerycznego keypadu ESC # 8 (V) Wypełnij ekran E. ESC \ (A) Terminator łańcucha ESC ^ (A) Łańcuch prywatnego komunikatu (linia komunikatów) ESC ! Łańcuch globalnego komunikatu (linia komunikatów) ESC k Łańcuch definicji A.k.a. ESC P (A) Łańcuch kontroli urządzenia. Wysyła bezpośrednio do hostowego terminala łańcuch bez interpretacji. ESC _ (A) Komenda programu aplikacji (twardy status) ESC ] (A) Komenda systemu operacyjnego (twardy status, hack tytułu xterm) Control-N (A) Zablokuj Shift G1 (SO) Control-O (A) Zablokuj Shift G0 (SI) ESC n (A) Zablokuj Shift G2 ESC o (A) Zablokuj Shift G3 ESC N (A) Pojedynczy Shift G2 ESC O (A) Pojedynczy Shift G3 ESC ( Pcs (A) Desygnuj zestaw znaków jako G0 ESC ) Pcs (A) Desygnuj zestaw znaków jako G1 ESC * Pcs (A) Desygnuj zestaw znaków jako G2 ESC + Pcs (A) Desygnuj zestaw znaków jako G3 ESC [ Pn ; Pn H Bezpośrednie adresowanie kursora ESC [ Pn ; Pn f jak wyżej ESC [ Pn J Kasuj w wyświetlaczu Pn = None or 0 Od kursora do końca ekranu 1 Od początku ekranu do kursora 2 Cały ekran ESC [ Pn K Kasuj w linii Pn = None or 0 Od kursora do końca linii 1 Od początku linii do kursora 2 Całą linię ESC [ Pn A Kursor w górę ESC [ Pn B Kursor w dół ESC [ Pn C Kursor w prawo ESC [ Pn D Kursor w lewo ESC [ Pn E Kursor na następną linię ESC [ Pn F Kursor na poprzednią linię ESC [ Pn G Pozioma pozycja kursora ESC [ Pn ` jak wyżej ESC [ Pn d Pionowa pozycja kursora ESC [ Ps ;...; Ps m Wybierz interpretację grafiki Ps = None or 0 Domyślna interpretacja 1 Pogrubienie 2 (A) Mdły 3 (A) Tryb standout (ANSI: kursywa) 4 Podkreślenie 5 Migotanie 7 Negatyw 22 (A) Normalna intensywność 23 (A) Wyłączenie trybu standout (ANSI: wyłączenie kursywy) 24 (A) Nie podkreślone 25 (A) Nie migoczące 27 (A) Obraz pozytywowy 30 (A) Pierwszy plan czarny 31 (A) Pierwszy plan czerwony 32 (A) Pierwszy plan zielony 33 (A) Pierwszy plan żółty 34 (A) Pierwszy plan niebieski 35 (A) Pierwszy plan fioletowy 36 (A) Pierwszy plan cyjankowy 37 (A) Pierwszy plan biały 39 (A) Pierwszy plan domyślny 40 (A) Tło czarne ... ... 49 (A) Tło domyślne ESC [ Pn g Czyszczenie tab Pn = None or 0 Czyszczenie tab w pozycji bieżącej 3 Czyszczenie wszystkich tabów ESC [ Pn ; Pn r (V) Ustaw region przewijania ESC [ Pn I (A) Tabulacja pozioma ESC [ Pn Z (A) Tabulacja wsteczna ESC [ Pn L (A) Wstaw linię ESC [ Pn M (A) Skasuj linię ESC [ Pn @ (A) Wstaw znak ESC [ Pn P (A) Skasuj znak ESC [ Pn S Przewiń region przewijania w górę ESC [ Pn T Przewij region przewijania w dół ESC [ Pn ^ jak wyżej ESC [ Ps ;...; Ps h Ustaw tryb ESC [ Ps ;...; Ps l Resetuj tryb Ps = 4 (A) Tryb wstawiania 20 (A) Tryb automatycznego linefeed 34 Normalna widzialność kursora ?1 (V) Klawisze kursora aplikacji ?3 (V) Zmień szerokość terminala na 132 kolumny ?5 (V) Tryb reverse video ?6 (V) Tryb origin ?7 (V) Tryb zawijania ?25 (V) Widzialny kursor ESC [ 5 i (A) Zacznij transmitować do drukarki (ANSI Media Copy) ESC [ 4 i (A) Przerwij transmisję do drukarki (ANSI Media Copy) ESC [ 8 ; Ph ; Pw t Zmień rozmiar okna na `Ph' linii i `Pw' kolumn (SunView special) ESC [ c Wyślij łańcuch identyfikacji VT100 ESC [ x Wyślij raport parametrów terminala ESC [ > c Wyślij łańcuch atrybutów drugorzędnego urządzenia VT220 ESC [ 6 n Wyślij raport pozycji kursora
TRANSLACJA WEJŚCIA
Aby spełniać pełną emulację VT100, screen musi wykryć, że w strumieniu wejściowym wygenerowano sekwencję znaków i wstawić sekwencję specjalną VT100. Screen robi to w bardzo elastyczny sposób, umożliwiając zmapowanie arbitralnych komand na arbitralne sekwencje znakowe. Dla standardowej emulacji VT100, komenda będzie zawsze wstawiać łańcuch do bufora wejściowego okna (zobacz też opis komendy stuff). Z uwagi na to, że sekwencje generowane przez naciśnięcie klawisza mogą się zmienić po ponownym podłączeniu z innego terminala, można wiązać komendy do nazw termcapowych klawiszy. Screen wstawi wtedy prawidłowe wiązanie po każdym wznowieniu. Zobacz też komendę bindkey dla dalszych szczegółów składni i przykładów. Oto tablica domyślnych wiązań klawiszowych. (A) oznacza, że komenda jest wykonywana jeśli klawiatura jest w trybie aplikacji. Nazwa klawisza Nazwa termcap Komenda ______________________________________________________ Kursor w górę ku stuff \033[A stuff \033OA (A) Kursor w dół kd stuff \033[B stuff \033OB (A) Kursor w prawo kr stuff \033[C stuff \033OC (A) Kursor w lewo kl stuff \033[D stuff \033OD (A) Klawisz funkc 0 k0 stuff \033[10~ Klawisz funkc 1 k1 stuff \033OP Klawisz funkc 2 k2 stuff \033OQ Klawisz funkc 3 k3 stuff \033OR Klawisz funkc 4 k4 stuff \033OS Klawisz funkc 5 k5 stuff \033[15~ Klawisz funkc 6 k6 stuff \033[17~ Klawisz funkc 7 k7 stuff \033[18~ Klawisz funkc 8 k8 stuff \033[19~ Klawisz funkc 9 k9 stuff \033[20~ Klawisz funk 10 k; stuff \033[21~ Klawisz funk 11 F1 stuff \033[22~ Klawisz funk 12 F2 stuff \033[23~ Backspace kb stuff \010 Home kh stuff \033[1~ End kH stuff \033[4~ Insert kI stuff \033[2~ Delete kD stuff \033[3~ Page up kP stuff \033[5~ Page down kN stuff \033[6~ Keypad 0 f0 stuff 0 stuff \033Op (A) Keypad 1 f1 stuff 1 stuff \033Oq (A) Keypad 2 f2 stuff 2 stuff \033Or (A) Keypad 3 f3 stuff 3 stuff \033Os (A) Keypad 4 f4 stuff 4 stuff \033Ot (A) Keypad 5 f5 stuff 5 stuff \033Ou (A) Keypad 6 f6 stuff 6 stuff \033Ov (A) Keypad 7 f7 stuff 7 stuff \033Ow (A) Keypad 8 f8 stuff 8 stuff \033Ox (A) Keypad 9 f9 stuff 9 stuff \033Oy (A) Keypad + f+ stuff + stuff \033Ok (A) Keypad - f- stuff - stuff \033Om (A) Keypad * f* stuff * stuff \033Oj (A) Keypad / f/ stuff / stuff \033Oo (A) Keypad = fq stuff = stuff \033OX (A) Keypad . f. stuff . stuff \033On (A) Keypad , f, stuff , stuff \033Ol (A) Keypad enter fe stuff \015 stuff \033OM (A)
SPECJALNE WŁAŚCIWOŚCI TERMINALA
Następująca tablica opisuje wszystkie właściwości terminala, które są rozpoznawane przez screen, a których nie ma w podręczniku termcap(5). Możesz umieszczać te właściwości w swoich wpisach termcap (w /etc/termcap) lub używać komend `termcap', `terminfo' i `termcapinfo' w plikach screenrc. Często nie jest możliwe wstawienie tych właściwości do bazy terminfo. LP (bool) Terminal ma marginesy w stylu VT100 (`magiczne marginesy'). Zauważ, że ta właściwość jest przedawniona, gdyż screen używa zamiast tego standardowego 'xn'. Z0 (str) Zmień szerokość na 132 kolumny. Z1 (str) Zmień szerokość na 80 kolumn. WS (str) Zmień rozmiar wyświetlacza. Właściwość ta jako argumenty bierze oczekiwaną szerokość i wysokość. Przykład SunView(tm): '\E[8;%d;%dt'. NF (bool) Terminal nie potrzebuje kontroli przepływu. Przesyłaj ^S i ^Q bezpośrednio do aplikacji. To samo co 'flow off'. Przeciwieństwem tej właściwości jest 'nx'. G0 (bool) Terminal daje sobie radę z sekwencjami wyboru fontu ISO 2022. S0 (str) Przełącz zestaw znaków 'G0' na podany zestaw. Domyślnym jest '\E(%.'. E0 (str) Przełącz zestaw znaków 'G0' z powrotem na standardowy zestaw. Domyślnie to '\E(B'. C0 (str) Użyj łańcucha jako tablicy konwersji dla fontu '0'. Zobacz właściwość 'ac' dla dalszych szczegółów. CS (str) Przełącz klawisze-kursora w tryb aplikacji. CE (str) Przełącz klawisze-kursora z powrotem do trybu normalnego. AN (bool) Włącz autonuke. Zobacz komendę 'autonuke' dla dalszych szczegółów. OL (num) Ustaw limit bufora wyjściowego. Zobacz komendę 'obuflimit' dla dalszych szczegółów. KJ (str) Ustaw typ kanji terminala. Prawidłowe ustawienia to "jis", "euc" i "sjis". AF (str) Zmień kolor pierwszego planu znaków w postaci zgodnej z ANSI. Właściwość ta jest prawie zawsze ustawiana na '\E[3%dm' ('\E[3%p1%dm' na maszynach terminfo). AB (str) To samo co 'AF', lecz zmienia kolor tła. AX (bool) Rozumie włączanie domyślnego koloru pierwszego planu/tła ANSI (\E[39m / \E[49m). XC (str) Opisuje translację znaków na łańcuchy, zależnie od bieżącego fontu. Więcej detali w następnej sekcji. TF (bool) Dodaj brakujące właściwości termcap/info. (Domyślnie ustawione).
TRANSLACJA ZNAKÓW
Screen ma potężny mechanizm tłumaczenia znaków na arbitralne łańcuchy, zależnie od bieżącego fontu i typu terminala. Składnia: XC=<mapowanie-znaków>{,,<mapowanie-znaków>} <mapowanie-znaków> := <desygnator><wzorzec>{,<mapowanie>} <mapowanie> := <znak-do-zmapowania><arg-wzorca> Elementy w nawiasach mogą być powtarzane wielokrotnie. <mapowanie-znaków> mówi screenowi jak mapować znaki fontu <desygnator> ('B': Ascii, 'A': UK, 'K': niemiecki, itd.) na łańcuchy. Każde <mapowanie< opisuje na jaki łańcuch tłumaczyć pojedynczy znak. Z uwagi na wiele wspólnego różnych kodów, używany jest mechanizm wzorców (np. łańcuchy przełączające do i z jakiegoś zestawu znaków). Każde pojawienie się we <wzorcu> znaku '%' jest podmieniane na <arg-wzorca> podany wraz ze znakiem. Jeśli twoje łańcuchy nie są w ogóle podobne, użyj jako wzorca '%' i umieść pełny łańcuch w <arg-wzorca>. Aby umożliwić używanie rzeczywistego '%', udostępniono mechanizm cytowania. Znak '\' cytuje znaki specjalne '\', '%' i ','. Here is an example: termcap hp700 'XC=B\E(K%\E(B,\304[,\326\\\\,\334]' Mówi to screenowi jak tłumaczyć duże znaki umlaut z ISOlatin1 (zestaw znaków 'B') na terminalu hp700, który posiada niemiecki zestaw znaków. '\304' będzie tłumaczone na '\E(K[\E(B' itd. Zauważ, że linia ta jest przetwarzana *trzykrotnie* zanim zbudowana zostanie wewnętrzna tablica sprawdzania. Dlatego do uzyskania pojedynczego '\' potrzeba sporo cytowania. Aby umożliwić dalszą emulację, dodano jeszcze jedno rozszerzenie: jeśli mapowanie tłumaczy niecytowany znak '%', to będzie on wysyłany na terminal za każdym razem, gdy screen włączy odpowiedni <desygnator>. W tym specjalnym przypadku, wzorzec jest przyjmowany jako '%', ponieważ zazwyczaj sekwencja przełączania znaków i mapowania nie mają wiele wspólnego Poniższy przykład pokazuje zastosowanie tego rozszerzenia: termcap xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334' W tym wypadku, na xtermie emulowana jest część niemieckiego zestawu znaków ('K'). Jeśli screen musi zmienić zestaw znaków na 'K', to wyśle do terminala sekwencję '\E(B', tj. zamiast używany będzie zestaw ASCII. Wzorzec to sam znak '%', więc mapowanie jest proste: '[' na '\304', '\' na '\326', i ']' na '\334'.
ŚRODOWISKO
COLUMNS Liczba kolumn terminala (przesłania wpis termcap). HOME Katalog, w którym szukać .screenrc. LINES Liczba wierszy terminala (przesłania wpis termcap). LOCKPRG Program blokujący screena. NETHACKOPTIONS Włącza opcję nethack. PATH Używane do lokalizowania uruchamianych programów. SCREENCAP Dla dostosowywania terminalowej wartości TERMCAP. SCREENDIR Alternatywny katalog gniazd. SCREENRC Alternatywny plik screenrc. SHELL Domyślny program powłokowy dla otwierania okien (domyślnie "/bin/sh"). STY Alternatywna nazwa gniazda. SYSSCREENRC Alternatywny systemowy plik screenrc. TERM Nazwa terminala. TERMCAP Opis terminala.
PLIKI
.../screen-3.?.??/etc/screenrc .../screen-3.?.??/etc/etcscreenrc Przykłady dystrybucyjne prywatnych i globalnych plików inicjalizacji $SYSSCREENRC /etc/screenrc komendy inicjalizacji screena $SCREENRC $HOME/.screenrc Wczytywane po /etc/screenrc $SCREENDIR/S-<login> /tmp/screens/S-<login> Katalogi gniazdowe (domyślnie) <socket directory>/.termcap Zapisywane przez funkcję wyjściową "termcap" /tmp/screens/screen-exchange lub /tmp/screen-exchange bufor komunikacji międzyprocesowej screena hardcopy.[0-9] Obrazy ekranów, stworzone funkcją hardcopy screenlog.[0-9] Wyjściowe pliki raportowe, utworzone funkcją log /usr/share/terminfo/?/* lub /var/run/utmp Wpisy zgłoszeniowe $LOCKPRG Program, blokujący terminal.
ZOBACZ TAKŻE
termcap(5), utmp(5), vi(1), captoinfo(1), tic(1)
AUTORZY
Oryginalnie stworzone przez Oliviera Laumanna. Najnowsza wersja wydana przez Wayne Davisona, Juergena Weigerta i Michaela Schroedera.
KOPIOWANIE
Copyright (C) 1999 Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) Copyright (C) 1987 Oliver Laumann Program ten jest programem wolnodostępnym; możesz go dystrybuować i/lub modyfikować według GNU General Public License, opublikowanej przez FSF; wersja 2, lub (wg uznania) dowolna wersja późniejsza. Program ten jest dystrybuowane w nadziei, że będzie przydatny, lecz bez ŻADNEJ GWARANCJI. Zobacz GNU GPL dla dalszych szczegółów. Powinieneś wraz z tym programem otrzymać kopię GNU GPL (zobacz plik COPYING); jeśli nie, napisz do Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
KONTRYBUTORZY
Ken Beal (kbeal@amber.ssd.csd.harris.com), Rudolf Koenig (rfkoenig@immd4.informatik.uni-erlangen.de), Toerless Eckert (eckert@immd4.informatik.uni-erlangen.de), Wayne Davison (davison@borland.com), Patrick Wolfe (pat@kai.com, kailand!pat), Bart Schaefer (schaefer@cse.ogi.edu), Nathan Glasser (nathan@brokaw.lcs.mit.edu), Larry W. Virden (lvirden@cas.org), Howard Chu (hyc@hanauma.jpl.nasa.gov), Tim MacKenzie (tym@dibbler.cs.monash.edu.au), Markku Jarvinen (mta@{cc,cs,ee}.tut.fi), Marc Boucher (marc@CAM.ORG), Doug Siebert (dsiebert@isca.uiowa.edu), Ken Stillson (stillson@tsfsrv.mitre.org), Ian Frechett (frechett@spot.Colorado.EDU), Brian Koehmstedt (bpk@gnu.ai.mit.edu), Don Smith (djs6015@ultb.isc.rit.edu), Frank van der Linden (vdlinden@fwi.uva.nl), Martin Schweikert (schweik@cpp.ob.open.de), David Vrona (dave@sashimi.lcu.com), E. Tye McQueen (tye%spillman.UUCP@uunet.uu.net), Matthew Green (mrg@mame.mu.oz.au), Christopher Williams (cgw@unt.edu), Matt Mosley (mattm@access.digex.net), Gregory Neil Shapiro (gshapiro@wpi.WPI.EDU).
WERSJA
Jest to wersja 3.9. Jej korzenie są złączeniem wersji 2.3PR7 Wayne Davisona i wielu rozszerzeń wersji 2.0 Olivera Laumanna. Zauważ, że wszystkie wersje numerowane jako 2.x są autorstwa Oliviera Laumanna.
DOSTĘPNOŚĆ
Najnowsza oficjalna wersja screena jest dostępna przez anonimowy ftp z prep.ai.mit.edu, nic.funet.fi lub dowolnego innego hosta dystrybucji GNU. Domowym hostem screena jest ftp.uni-erlangen.de (131.188.3.71), katalog pub/utilities/screen. Podkatalog `private' zawiera najnowsze wersje beta. Jeśli chcesz pomóc, wyślij wiadomość na screen@uni- erlangen.de.
BŁĘDY
• `dm' (tryb kasowania) i `xs' nie są obsługiwane (są ignorowane). `xn' jest traktowany jako wskaźnik magicznych marginesów. • Screen nie wie nic o znakach podwojonej wysokości lub szerokości. Jest to jednak jedyne miejsce, w którym vttest ma prawo się nie powieść. • Nie jest możliwe zmienienie zmiennej środowiskowej $TERMCAP podczas ponownego podłączania z innego terminala. • Obsługa systemów opartych o terminfo jest bardzo ograniczona. Dodawanie właściwości do $TERMCAP może nie mieć żadnych efektów. • Screen nie używa sprzętowych tabów. • Screen musi być na większości systemów instalowany jako suid root. Inaczej nie będzie w stanie w odpowiedni sposób zmienić właściciela pliku urządzenia tty dla każdego okna. Wymaga także specjalnych uprawnień do zapisu do pliku "/var/run/utmp". • Wpisy z "/var/run/utmp" nie są usuwane gdy screen jest zbijany SIGKILL. Powoduje to, że niektóre programy ("w", "rwho") mówią, że użytkownik jest zalogowany, choć wcale tak nie jest. • Screen może dawać dziwne ostrzeżenia jeśli twój tty nie ma wpisu utmp. • Gdy linia modemu zostanie odwieszona, screen nie zawsze automatycznie się odłączy (lub zakończy działanie), chyba że sterownik urządzenia wysyła sygnał HANGUP. Aby odłączyć sesję screena, użyj opcji -d lub -D linii komend. • Jeśli ustawione jest hasło, opcje -d, -D linii komend wciąż odłączają sesję bez pytania. • Zarówno "breaktype" jak i "defbreaktype" zmieniają metodę generowania przerwania, używaną przez wszystkie urządzenia terminalowe. Pierwszy powinien zmienić tylko ustawienie okna a drugi tylko wartość domyślną dla nowych okien. • Podczas podłączania do sesji wieloużytkownikowej, plik .screenrc użytkownika nie jest oglądany. Ustawienia prywatne użytkowników muszą być włączane do pliku .screenrc, z którego uruchomiono sesję, lub zmieniane ręcznie. • Dziwna wyobraźnia jest bardzo przydatna do zrozumienia wszystkich właściwości. • Wysyłaj raporty o błędach, usprawnienia, koszulki, pieniądze, piwo & pizzę do screen@uni-erlangen.de.
INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia: man --locale=C 1 screen Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.