GNU/Linux >> Znalost Linux >  >> Linux

15 Příkaz obrazovky Linuxu pro řešení relací terminálu

Obrazovka nebo obrazovka GNU je terminálový multiplexer. Pomocí tohoto můžete spouštět libovolný počet aplikací založených na konzole, interaktivních příkazových shellů, aplikací založených na kurzech atd. Pomocí obrazovky můžete pokračovat v běhu programu poté, co omylem zavřete terminál, nebo dokonce po odhlášení a později pokračovat, ať jste kdekoli.

Praktickým příkladem je situace, kdy spouštíte úlohu na vzdáleném počítači s Linuxem, na kterém máte ssh relaci. Mnohokrát jste viděli, jak se tato ssh relace ukončuje a vy už nemůžete pracovat. Zde je nástroj obrazovky, který vám pomůže obnovit relace.

Jak funguje obrazovka?

Když se zavolá obrazovka, vytvoří se jediné okno s shellem (nebo zadaným příkazem) a pak vám ustoupí z cesty, abyste mohli program používat jako obvykle. Poté můžete kdykoli vytvořit nová (celoobrazovková) okna s dalšími programy v nich (včetně více shellů), zabíjet aktuální okno, zobrazit seznam aktivních oken, kopírovat text mezi okny, přepínat mezi okny atd. .

Obrazovka spravuje relaci skládající se z jednoho nebo více oken každý obsahuje shell nebo jiný program. Kromě toho může obrazovka rozdělit displej terminálu na více regionů , přičemž každý zobrazuje obsah okna. Všechna okna spouštějí své programy zcela nezávisle na sobě. Programy pokračují v běhu, když jejich okno aktuálně není vidět, a dokonce i když je celá relace obrazovky odpojena od uživatelského terminálu. To je praktické, aby se zabránilo nedobrovolné relaci časového limitu ssh.

Nyní se podívejme, jak používat tento nástroj v Linuxu.

1) Vyvolat nová okna

Pokud příkaz screen ve vašem systému ještě není, můžete jej nainstalovat pomocí příkazu níže.

V Debianu

# apt-get install screen

Na Centos

# yum install screen

Obrazovku můžete spustit pouhým zadáním obrazovky do příkazového řádku. Tento příkaz obrazovky spustí nové okno na obrazovce.

# screen

Můžete otevřít nové okno na obrazovce a také pojmenovat okno, například nahoře. Vytvoří relaci s identifikovanou tímto názvem. Název lze později použít k opětovnému připojení.

# screen -S aloft

Všimněte si, že veškerou svou práci můžete dělat tak, jak jste v normálním prostředí CLI.

2) Seznam všech procesů obrazovky

Jelikož jsme schopni spouštět nová okna na obrazovce, je možné zobrazit aktuálně otevřené obrazovky včetně těch běžících na pozadí. Zobrazí seznam všech existujících relací obrazovky.

# screen -ls
There is a screen on:
 10437.aloft (Attached)
1 Socket in /var/run/screen/S-root.

3) Hlavní příkaz obrazovky

S obrazovkou je možné pracovat pomocí některých příkazů. Níže uvádíme hlavní užitečnější příkazy.

  • Ctrl-a následuje c :vytvořit nová okna
  • Ctrl-a následuje w :zobrazí seznam všech aktuálně otevřených oken
  • Ctrl-a následuje A :přejmenování aktuálních oken. Název se objeví, když vypíšete seznam oken otevřených pomocí Ctrl-a následuje w .
  • Ctrl-a následuje n :přejděte na další okna
  • Ctrl-a následuje p :přejít na předchozí okna
  • Ctrl-a následovaný Ctrl-a:zpět na poslední použitá okna.
  • Ctrl-a následované číslem od 0 do X:přejděte do oken č. X.
  • Ctrl-a následuje " :vyberte okna, do kterých chcete přejít.
  • Ctrl-a následuje k :zavře aktuální okna (kill)
  • Ctrl-a následuje S :rozdělit aktuální okna vodorovně. Pro přepínání mezi okny stiskněte Ctrl-a následuje Tab .
  • Ctrl-a následovaný | :vertikálně rozdělit aktuální okna
  • Ctrl-a následuje d :odpojit relaci obrazovky bez jejího zastavení
  • Ctrl-a následuje r :znovu připojte relaci oddělené obrazovky
  • Ctrl-a následuje [ :spuštění režimu kopírování
  • Ctrl-a následovaný ] :vložte zkopírovaný text

4) Zobrazit parametr obrazovky

Pro nápovědu si můžete vypsat všechny parametry obrazovky. Chcete-li to provést, zadejte Ctrl-a následovaný znakem ? . Zobrazí se seznam všech příkazů.

5) Odpojení relace

Nejlepší výhodou příkazu screen je možnost odpojit relaci obrazovky. Můžete zahájit relaci obrazovky na jednom počítači v kanceláři, odpojit relaci od místního terminálu, jít domů, vzdáleně se přihlásit k našemu kancelářskému počítači a znovu připojit relaci obrazovky k terminálu našeho domácího počítače. Během této doby se všechny úlohy na vašem kancelářském počítači nadále vykonávaly. Tato funkce se používá, aby se zabránilo ztrátě dat, ke které náhle dojde během přerušení ssh připojení.

Abychom dobře pochopili, o čem mluvíme, uveďme si příklad. Spouštíme instalační proces.

Nyní odpojíme obrazovku pomocí Ctrl-a následuje d . Můžeme to zkontrolovat pomocí příkazu níže.

# screen -ls
There is a screen on:
 12449.win (Detached)
1 Socket in /var/run/screen/S-root.

Obrazovku je možné odpojit pomocí screen -d příkaz následovaný id obrazovky nebo jejím názvem. To znamená, že budete muset otevřít další okna nebo konzolu, abyste odpojili relaci, pokud na aktuální konzoli probíhá proces. Nejprve musíte vypsat aktuální připojenou obrazovku.

# screen -ls
There is a screen on:
 13686.win200 (Attached)
1 Socket in /var/run/screen/S-root.

Nyní na novém terminálu zadejte příkaz níže.

# screen -d 13686

nebo můžete použít jméno

# screen -d win200

Budete mít výstup, jak je uvedeno níže, který označuje, že obrazovka byla odpojena.

[remote detached from 13686.win200]

6) Znovu připojte relaci

Po odpojení obrazovky je možné ji znovu připojit pomocí příkazu. Normálně vaše relace obrazovky stále funguje, takže všechny vaše procesy nejsou zastaveny. Před opětovným připojením relace je třeba uvést relaci jako výše a poté vybrat relaci, kterou chcete znovu připojit.

# screen -r 13686

nebo můžete použít

# screen -r win200

Můžete vidět, že po opětovném připojení relace okna ukazují konec procesu, který je dokončen. To znamená, že můžete pracovat na ssh a odpojit relaci, kterou znovu připojíte u vás doma, abyste mohli pokračovat ve svém pracovním procesu, aniž byste cokoli ztratili.

7) Vytvořte nový interaktivní shell

Pokud máte nějaké úkoly a nechcete o svou práci přijít, je možné vytvořit nový interaktivní shell. Některé interaktivní shelly (číslované od 0 do X) můžete snadno otevřít v jednom okně terminálu. Když zahájíte novou relaci, budete v shell 0 .

Chcete-li to provést, musíte vytvořit nová okna ve stávajících oknech pomocí Ctrl-a následuje c . Budete mít něco jako níže.

Můžete vidět obrazovka 3 v horní části snímku obrazovky, což znamená, že jsme na třetí obrazovce. V dolní části také vidíme 3

8) Přepínání mezi okny obrazovky

Pokud jste otevřeli více než jedno okno obrazovky, můžete mezi jednotlivými okny přepínat stisknutím Control-a následuje space nebo číslo pláště. Chcete-li například přepnout na shell číslo 1, stiskněte Control-a pak 1 . Například se přesuneme na první obrazovku.

Horní a spodní část snímku obrazovky ukazuje, že jsme na první obrazovce.

9) Rozdělit okna

Chcete-li mít globální přehled o své práci, budete možná muset rozdělit okna místo toho, abyste měli více oken. Ctrl-a následuje S nebo | rozdělit obrazovku vodorovně nebo svisle. Operaci je možné opakovat bez omezení. Chcete-li přesunout další okna, použijte Ctrl-a následuje Tab .

Když je kurzor na spodních oknech, můžete vytvořit nové okno (Ctrl-a následuje c ) nebo zavolejte existující okno (Ctrl-a následované číslem).

Chcete-li zavřít rozdělená okna, použijte Ctrl-a následovaný X (Všimněte si, že se jedná o velké písmeno).

10) Znovu se připojte k odpojené relaci ssh

Když se poprvé přihlásíte,

  • spuštěním obrazovky spustíte relaci obrazovky. Získáte další shell, spouštějte v něm příkazy.
# screen -S remote_session
  • Po dokončení odpojte relaci obrazovky a poté se odhlaste do ssh
[detached from 20995.remote_session]
  • Nejprve můžete uvést všechny relace obrazovky
# screen -ls
There are screens on:
 20995.remote_session (Detached)
 14331.daby (Attached)
 14134.mom (Detached)
3 Sockets in /var/run/screen/S-root.
  • Znovu se připojte k relaci obrazovky a pokračujte v práci
# screen -d -r remote_ression

Příkaz screen se nejvíce používá pro relaci ssh, protože pomáhá pokračovat v práci po odpojení bez ztráty aktuálně probíhajících procesů.

11) Posuňte se v oknech obrazovky nahoru

Protože obrazovka přebírá správu vašich vzdálených programů, nemůžete používat funkce posouvání emulátoru terminálu při spuštění obrazovky. Pro přístup k vyrovnávací paměti pro posun zpět musíte použít příkazy obrazovky.

  • Použijte Ctrl-a následuje escape
  • Stiskněte Up a Down šipky nebo PgUp a PgDn pro procházení předchozího výstupu.

Na snímku obrazovky můžete vidět, kde je můj kurzor. Každý virtuální terminál má svůj vlastní scrollback buffer.

12) Podívejte se na vlastníka každé relace obrazovky

screen -ls nebo screen -list příkazy vám zobrazují pouze vaše vlastní relace obrazovky, a to i pro uživatele root. Pokud vím, je to tak dobré, jak jen to může být pro obrazovku samotnou.

Pokud chcete vidět, které relace obrazovky byly zahájeny, kteří uživatelé se podívají do adresáře jednotlivých uživatelů v /var/run/screen/ .

# ls -lR /var/run/screen
/var/run/screen:
total 0
drwx------ 2 patrick patrick 60 Jun 17 20:47 S-patrick
drwx------ 2 root root 100 Jun 17 19:39 S-root

/var/run/screen/S-patrick:
total 0
srwx------ 1 patrick patrick 0 Jun 17 20:47 21941.pat_session

/var/run/screen/S-root:
total 0
srw------- 1 root root 0 Jun 9 16:45 14134.mom
srwx------ 1 root root 0 Jun 9 01:07 14331.daby
srwx------ 1 root root 0 Jun 17 20:46 20995.remote_session

13) Sdílení relace obrazovky s jedním účtem

Můžete mít dva lidi přihlášené ke stejnému účtu ze vzdálených míst. Mohou snadno sdílet relaci obrazovky (takže to, co jeden píše, vidí druhý a naopak). Chcete-li to provést:

  • Vytvořte relaci pojmenované obrazovky:
# screen -d -m -S share_session
  • Připojte se k relaci obrazovky v okně terminálu
# screen -x share_session
  • Požádejte druhou osobu (přihlášenou do stejného účtu), aby se také připojila k relaci obrazovky
# screen -x share_session

budete mít přesně stejný výstup zobrazený na druhém místě. Vše, co se objeví na vašem terminálu, se objeví také na terminálu druhého uživatele.

14) Relace uzamčené obrazovky

Je možné zamknout relaci obrazovky bez uzamčení vašeho běžného uživatele relace. To znamená, že můžete opustit počítač a mít jistotu, že nikdo nepřijde k neoprávněným operacím. K tomu použijte příkaz Ctrl-a  následuje x (Všimněte si, že se jedná o malé písmeno).

Screen used by root <root> on centos-01.
Password:

15) Ukončete relaci obrazovky

Až budete hotovi a budete chtít ukončit relaci obrazovky, můžete použít příkaz Ctrl-a následuje k . Budete vyzváni k potvrzení.

Můžete také použít příkaz exit. Pokud chcete uložit probíhající proces, můžete před ukončením relace jednoduše odpojit relaci obrazovky.

Závěr

Obslužný program obrazovky může monitorovat aktivitu nebo nečinnost okna. To je skvělé, pokud stahujete velké soubory, kompilujete nebo čekáte na výstup. V případě potřeby můžete dokonce spustit nějaký proces z počítače pomocí příkazu obrazovky a po dokončení jej odpojit.


Linux
  1. Sdílení relací terminálu Linux pomocí Tmux a obrazovky

  2. Mých 10 nejlepších terminálových zkratek pro Linux

  3. 5 použití příkazu mv v linuxovém terminálu

  1. Průvodce linuxovým terminálem pro začátečníky

  2. Jak používat Linux Screen Command

  3. Co je ekvivalentní příkazu Linux File pro Windows?

  1. Linuxové tipy pro používání GNU Screen

  2. Linux tty Command Tutorial pro začátečníky (s příklady)

  3. Linux ekvivalentní příkaz pro otevřený příkaz na Mac/Windows?