Kiedy w konsoli musimy uruchomić kilka programów niezwykle przydatnym narzędziem jest program screen. Pozwala on w jednym terminalu utworzyć sporą ilość wirtualnych okien pomiędzy którymi można się w łatwy sposób przełączać. W części dystrybucji jest zainstalowany ale jeśli go nie masz to doinstalujesz (Debian, Ubuntu) poleceniem:
> sudo apt install screen
Program posiada plik konfiguracyjny o domyślnej nazwie „.screenrc”. W tym pliku ustalisz parametry wyświetlania okien, działania klawiszy i inne. Plik może mieć dowolną nazwę, a podasz ją w parametrach uruchomieniowych. Standardowy plik konfiguracyjny nie jest ciekawy i dla tego należy sobie go dostroić. Jeden z moich wygląda jak niżej:
#======================================= hardstatus alwayslastline attrcolor b ".I" #czerwone tlo np dla roota + zegarek hh:mm:ss #hardstatus string '%{=b rw}[ %{rw}%H %{rw}][%= %{rw}%?%-Lw%?%{=b rw}(%{=b rY}%n*%f %t%?(%u)%?%{=b rw})%{=b rw}%?%+Lw%?%?%= %{=b rw}]%101` %d-%m-%Y %c:%s' #czerwone tlo np dla roota + zegarek hh:mm #hardstatus string '%{=b rw}[ %{rw}%H %{rw}][%= %{rw}%?%-Lw%?%{=b rw}(%{=b rY}%n*%f %t%?(%u)%?%{=b rw})%{=b rw}%?%+Lw%?%?%= %{=b rw}]%101` %d-%m-%Y %c' hardstatus string '%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{=b kR}(%{W}%n*%f %t%?(%u)%?%{=b kR})%{= kw}%?%+Lw%?%?%= %{g}]%{=b C}[ %m/%d %c ]%{W}' termcapinfo xterm|xterms|xs|rxvt ti@:te@ shell -$SHELL screen -t bash01 bash #=======================================
Po uruchomieniu programu:
> screen
mam ekran jak niżej:
Kolor tła i znaków pochodzi z putty ale ważna jest dolna linia statusu. Wyświetlam na niej nazwę maszyny, nazwy wirtualnych okien terminali, i aktualny czas (aktualizacja tylko w momencie wykonywania dowolnej zmiany na ekranie).
Jeśli masz kolorowy znak zachęty np:
to możesz go zachować w screen uruchamiając go poleceniem:
#screen -T xterm
Aby zawsze tak się screen uruchamiał możesz dodać alias do swojego pliku .bashrc albo do pliku aliases:
alias=’screen -T xterm’
Teraz kilka przydatnych skrótów:
Ctrl-a-c tworzy nowe okno (jego nazwa wyświetla się w czerwonych nawiasach)
Ctrl-a-n następne okno
Ctrl-a-p poprzednie okno
Ctrl-a-d opuszczenie screen’a z pozostawieniem uruchomionych w nim programów
Ctrl-a-A zmiana nazwy aktualnego okna
Aby powrócić do screena wydajemy polecenie
> screen -x
Wyjątkowo przydatną funkcjonalnością jest możliwość uruchomienia i pozostawienia w pamięci wielu instancji screena. Każda ma swój numer. Kiedy już mamy jednego screena uruchomionego, opuszczamy go (Ctrl-a-d) i odpalamy następnego. Można dodać przełącznik -S nadający mu nazwę np:
> screen – SYSTEM
Teraz kiedy uruchomimy screen z opcją -x zobaczymy:
Aby uruchomić konkretną instancję trzeba podać jej nazwę lub numer:
>screen -x 1430
To uruchomi pierwszy screen z listy.
Aby całkowicie zakończyć screena trzeba zakończyć wszystkie programy w nim uprzednio uruchomione a każde wirtualne okno zamknąć za pomocą wysłania EOF czyli Ctrl-d.