Page tree
Skip to end of metadata
Go to start of metadata

Wstęp

Sreen jest bardzo wygodnym i popularnym narzędziem używanym bardzo szeroko przez administratorów. Screen jest emulowaną sesję terminala, na której tak jak na każdym tradycyjnym terminalu można uruchamiać programy. Jego zaletą jest to, że taki terminal wirtualny można "odłączyć" (detache) - a program na nim uruchomiony działa cały czas w tle. Do takiego odłączonego screena można później się podłączyć (attache).

Kolejną zaletą screena jest to, ż uodparnia prace administracyjne od potencjalnego zerwania połączenia sieciowego z terminalem. Jeśli stracimy połączeniem sieciowe z maszyną na której uruchomiliśmy screena mamy pewność, że screen nadal tam działa i będziemy mogli się do niego podłączyć później, po przywróceniu łączności sieciowej.

Jeszcze inną zaletą screena jest możliwość uruchomienia wilu okien terminala na jednej sesjii screena tak, jakbyśmy pracowali na wielu terminalach na raz.

Tworzenie, odłączanie i podłączenie do screena

Za pomocą nawiasów ostrych opisane jest naciśnięcie odpowiednich skrótów klawiszowych. Poniżej przedstawione są widoki dwóch terminali - A i B i to co na nich widać w tym samym czasie.


Uruchamianie nowego screena z sesją o nazwie "sesja1", uruchomienie programu który co sekundę wyświetla kropkę, oraz odłączenie screena za pomocą skrótu klawiaturowego <CTRL+a><d> (to nie jest <CTRL+a+d>)

Terminal A
Welcome to Linux Mint 18 Sarah (GNU/Linux 4.4.0-62-generic x86_64)

 * Documentation:  https://www.linuxmint.com
Last login: Mon Feb 20 19:52:08 2017 from 127.0.0.1
 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ screen -S sesja1
 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ while true; do echo -n "."; sleep 1; done
..........<CTRL+a><d>
[detached from 5579.sesja1]
xonicman@melatonina ~ $ 
Terminal B
Welcome to Linux Mint 18 Sarah (GNU/Linux 4.4.0-62-generic x86_64)

 * Documentation:  https://www.linuxmint.com
Last login: Mon Feb 20 19:52:31 2017 from 127.0.0.1
 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ 
Terminal A
xonicman@melatonina ~ $ 

Podłączenie (-resume) do screena na terminalu B. Screen został wcześniej odłączony na terminalu A:

Terminal B
xonicman@melatonina ~ $ screen -r
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ while true; do echo -n "."; sleep 1; done
..............................

Nieudana próba podłączenia (-resume) do screena aktywnego - działającego na terminaluB na pierwszym planie:

Terminal A
xonicman@melatonina ~ $ screen -r
There is a screen on:
	5579.sesja1	(20.02.2017 19:54:31)	(Attached)
There is no screen to be resumed.



Terminal B
.................................................................
.................. 



Odłączenie screena (niezależnie na którym terminalu jest uruchomiony na pierwszym planie):

Terminal A
xonicman@melatonina ~ $ screen -d
[5579.sesja1 detached.]

Informacja, że screen został odłączony:

Terminal B
[remote detached from 5579.sesja1]
xonicman@melatonina ~ $ 



Podłączenie (-resume) do screena na terminalu A.

Terminal A
xonicman@melatonina ~ $ screen -r
 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ while true; do echo -n "."; sleep 1; done
.................................................................
.............................................................

Uruchomienie nowego screena bez nazwy sesji na terminalu B. Uruchomienie programu, który co 2 sekundy wyświetla na ekranie cyfrę 2.

Terminal B
xonicman@melatonina ~ $ screen
 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ 
xonicman@melatonina ~ $ while true; do echo -n "2"; sleep 2; done
2222222

Odłączenie bieżącego screena <CTRL+a><d>

Terminal A
xonicman@melatonina ~ $ screen -r
 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ while true; do echo -n "."; sleep 1; done
.................................................................
.................................................................
...<CTRL+a><d>

[detached from 5579.sesja1]
xonicman@melatonina ~ $ 

Odłączenie bieżącego screena <CTRL+a><d>

Terminal B
xonicman@melatonina ~ $ screen

 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ 
xonicman@melatonina ~ $ while true; do echo -n "2"; sleep 2; done
2222222222222<CTRL+a><d>


[detached from 6582.pts-3.melatonina]
xonicman@melatonina ~ $ 

Próba podłączenia do screena. Ponieważ dwa screeny są odłączone program wyświetla informacje o obu z podpowiedzią jak podłączyć się do jednego z nich. Przy kolejnej próbie podłączenia do screena używamy numer screena do którego chcemy się podłączyć (6582):

Terminal A
xonicman@melatonina ~ $ screen -r
There are several suitable screens on:
	6582.pts-3.melatonina	(20.02.2017 20:11:58)	(Detached)
	5579.sesja1	(20.02.2017 19:54:31)	(Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
xonicman@melatonina ~ $ screen -r 6582


 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ 
xonicman@melatonina ~ $ while true; do echo -n "2"; sleep 2; done
2222222222222222222222222
Terminal B
xonicman@melatonina ~ $ 

Zakończenie sesji screena 6582:

Terminal A
xonicman@melatonina ~ $ while true; do echo -n "2"; sleep 2; done
22222222222222222222222222222<CTRL+C>^C
xonicman@melatonina ~ $ exit
[screen is terminating]
xonicman@melatonina ~ $ 

Podłączenie do screena o nazwie sesja1 i zakończenie sesji screena:

Terminal B
xonicman@melatonina ~ $ screen -r sesja1




 ______________________________________
< Witaj xonicman w systemie melatonina >
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
xonicman@melatonina ~ $ while true; do echo -n "."; sleep 1; done
.................................................................
.................................................................
........................................<CTRL+c>^C
xonicman@melatonina ~ $ <CTR+d>

[screen is terminating]
xonicman@melatonina ~ $ 

Inne przydatne skróty klawiaturowe aktywne podczas sesji

Wiele okien

<CTRL+a><c> - tworzenie (create) nowego okna

<CTRL+a><n> LUB <CTRL+a><spacja> - przechodzenie pomiędzy kolejnymi oknami

exit - wychodzenie z okna (taka sama komenda jak wychodzenie z powłoki)

<CTRL+a><k> - zabij (ekwiwalent kill) bieżące okno (np. gdy komendy przestają być responsywne


<CTRL+a><S> - podziel okno na dwa poziomio

<CTRL+a><|> - podziel okno na dwa pionowo

<CTRL+a><TAB> - przejdź pomiędzy podzielonymi oknami

<CTRL+a><X> - zamknij jedno z podzielonych okien

Logowanie komend i zrzuty ekranu

<CTRL+a><h> - zrób zrzut widocznego terminala do pliku (nazwa pliku będzie widoczna po wykonaniu komendy)

<CTRL+a><H> - uruchomienie/zatrzymanie ciągłego logowania komend i wyników do pliku (nazwa pliku będzie widoczna po uruchomieniu logowania)


Zmiana nazwy sesji screen

<CTRL+a> :sessionname NOWA_NAZWA    - zmienia nazwe sesji na NOWA_NAZWA


Pozostała dokumentacja i video tutorial

Więcej skrótów, opcji i funkcjonalności:


Video tutorial:

  • No labels
Write a comment…