GNU/Linux >> Belajar Linux >  >> Linux

Kiat untuk menggunakan layar

Apa yang terjadi ketika Anda terhubung ke sistem jarak jauh, menggunakan program yang berjalan lama, dan kemudian koneksi terputus? Kemungkinannya adalah, minimal, Anda harus memulai ulang program, dan dalam skenario terburuk, Anda akan mengalami kerusakan data. Untuk membantu menyiasatinya, beberapa program berjalan di cangkang jendela pada sistem. Contoh yang sangat mendasar dari hal ini adalah screen program:

[pgervase@pgervase ~]$ ssh [email protected]
X11 forwarding request failed on channel 0
Last login: Wed Jan 27 12:10:06 2021 from xxxxxxxx.redhat.com

[root@rhel7dev ~]# screen

Ini membuka shell baru saya di rhel7dev sistem. Saya akan menjalankan ping perintah di bawah ini dari dalam sesi itu:

[root@rhel7dev ~]# ping www.google.com
PING www.google.com (74.125.24.147) 56(84) bytes of data.
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=1 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=2 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=3 ttl=100 time=242 ms

Sekarang saya akan mendemonstrasikan cara melepaskan dari sesi untuk mensimulasikan pemadaman jaringan atau membiarkan sesuatu berjalan dalam semalam. Untuk melakukan ini, saya menekan Ctrl , tahan tombol itu, lalu tekan A , lalu tekan D . Itu membawa saya kembali ke prompt SSH default dan saya kemudian dapat menjalankan screen -ls untuk melihat sesi terpisah saya:

[root@rhel7dev ~]# screen -x
[detached from 25665.pts-0.rhel7dev]
[root@rhel7dev ~]# screen -ls
There is a screen on:
    25665.pts-0.rhel7dev    (Detached)
1 Socket in /var/run/screen/S-root.

[root@rhel7dev ~]#

[ Anda mungkin juga menikmati: Bekerja dengan pipa di baris perintah Linux ]

Untuk melanjutkan sesi layar saya, saya mengetik screen -x karena hanya ada satu sesi sebagai pilihan. Itu membawa saya kembali ke sesi layar di mana ping perintah masih berjalan:

[root@rhel7dev ~]# ping www.google.com
PING www.google.com (74.125.24.147) 56(84) bytes of data.
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=1 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=2 ttl=100 time=242 ms
<snipped>
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=19 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=20 ttl=100 time=242 ms
^C
--- www.google.com ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 20278ms
rtt min/avg/max/mdev = 242.105/242.197/242.727/0.576 ms
[root@rhel7dev ~]#

Saya dapat memiliki beberapa sesi layar sekaligus:

[root@rhel7dev ~]# screen -ls
There is a screen on:
    25665.pts-0.rhel7dev    (Detached)
1 Socket in /var/run/screen/S-root.

[root@rhel7dev ~]# screen
[detached from 25693.pts-0.rhel7dev]
[root@rhel7dev ~]# screen -ls
There are screens on:
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
2 Sockets in /var/run/screen/S-root.

[root@rhel7dev ~]# screen
[detached from 25706.pts-0.rhel7dev]
[root@rhel7dev ~]# screen -ls
There are screens on:
    25706.pts-0.rhel7dev    (Detached)
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
3 Sockets in /var/run/screen/S-root.

[root@rhel7dev ~]#

Di masing-masing dari tiga sesi layar tersebut, saya dapat menjalankan perintah atau membiarkan sesi duduk di prompt.

screen -x default tidak akan berfungsi untuk melanjutkan sesi sekarang karena beberapa layar berjalan:

[root@rhel7dev ~]# screen -x
There are several suitable screens on:
    25706.pts-0.rhel7dev    (Detached)
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

[root@rhel7dev ~]#

Untuk melampirkan ke salah satu sesi saya, saya perlu menjalankan screen -x dan tambahkan nama layar yang cukup untuk menjadi unik:

[root@rhel7dev ~]# screen -x 257
[detached from 25706.pts-0.rhel7dev]

[root@rhel7dev ~]#

Daripada mencoba membatasi diri Anda hanya pada satu sesi atau mengingat apa yang sedang berjalan di layar mana, Anda dapat menetapkan nama untuk sesi tersebut dengan menggunakan -S argumen:

[root@rhel7dev ~]# screen -S "db upgrade"
[detached from 25778.db upgrade]

[root@rhel7dev ~]# screen -ls
There are screens on:
    25778.db upgrade    (Detached)
    25706.pts-0.rhel7dev    (Detached)
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
4 Sockets in /var/run/screen/S-root.

[root@rhel7dev ~]# screen -x "db upgrade"
[detached from 25778.db upgrade]

[root@rhel7dev ~]#

Untuk keluar dari sesi layar, Anda dapat mengetik exit atau tekan Ctrl+A lalu D .

Sekarang Anda tahu cara memulai, menghentikan, dan memberi label screen sesi mari kita sedikit lebih mendalam. Untuk membagi sesi layar Anda menjadi dua secara vertikal, tekan Ctrl+A lalu | tombol (Shift+garis miring terbalik ). Pada titik ini, Anda akan memiliki sesi layar dengan perintah di sebelah kiri:

Untuk beralih ke layar Anda di sebelah kanan, tekan Ctrl+A lalu Tab kunci. Kursor Anda sekarang berada di sesi yang tepat, tetapi tidak ada perintah. Untuk mendapatkan klik cepat Ctrl+A lalu C . Saya dapat melakukan ini beberapa kali untuk mendapatkan beberapa pemisahan vertikal ke layar:

Sekarang Anda dapat beralih antara dua panel layar dengan menggunakan Ctrl+A+Tab .

Apa yang terjadi jika Anda cat keluar file yang lebih besar dari yang dapat ditampilkan konsol Anda dan beberapa konten bergulir melewatinya? Untuk menggulir kembali ke buffer, tekan Ctrl+A lalu Esc . Sekarang Anda dapat menggunakan tombol kursor untuk bergerak di sekitar layar dan kembali ke buffer.

Ada opsi lain untuk screen , jadi untuk melihatnya, tekan Ctrl , lalu A , lalu tanda tanya :

[ Kursus online gratis:Tinjauan teknis Red Hat Enterprise Linux. ] 

Bacaan lebih lanjut dapat ditemukan di halaman manual untuk screen . Artikel ini adalah pengantar singkat untuk menggunakan screen perintah sehingga sesi jarak jauh yang terputus tidak berakhir dengan mematikan proses secara tidak sengaja. Program lain yang mirip dengan screen adalah tmux dan Anda dapat membaca tentang tmux dalam artikel ini.


Linux
  1. 3 tips ulasan diri yang solid untuk sysadmin

  2. Menggunakan alat SS untuk pemecahan masalah jaringan

  3. Perintah Tidur Menggunakan Perintah Layar Tidak Ditampilkan Di Ps?

  1. Bagaimana cara menetapkan nama untuk layar?

  2. Menggunakan variabel dalam SQLCMD untuk Linux

  3. Apakah saya menggunakan virtio untuk tamu KVM saya?

  1. 3 tips untuk mencetak dengan Linux

  2. Kiat Linux untuk menggunakan Layar GNU

  3. 8 tips untuk baris perintah Linux