Bagaimana saya bisa memiliki beberapa sesi terminal melalui satu koneksi SSH?

21

Saya memiliki edisi server Ubuntu berjalan dan saya dapat SSH ke dalamnya untuk melakukan berbagai tugas. Yang saya suka adalah kemampuan untuk SSH ke server saya memulai aplikasi server dan kemudian beralih ke sesi "virtual" yang lain (dengan contoh SSH yang sama) dan menjalankan panggilan klien terhadap layanan tersebut. Ketika saya memulai layanan ini adalah panggilan pemblokiran, jadi saya tidak dapat menjalankan panggilan klien terhadapnya tanpa menyalakan sesi SSH anther.

Saya berharap mungkin ada cara yang lebih licin, sesuatu seperti UI tidak dengan desktop virtual.

JPrescottSanders
sumber

Jawaban:

24

Apa yang ingin Anda gunakan adalah layar atau lebih baik pembungkus ramah pengguna di sekitar layar yang disebut byobu.

Layar memungkinkan Anda untuk menjalankan beberapa sesi terminal virtual dalam sesi ssh yang sama. Halaman tutorial dan bantuan tersedia.

byobu adalah pembungkus yang memungkinkan untuk dengan mudah membuka layar baru dengan tombol fungsi sederhana alih-alih kombinasi tombol dari ctrl-a. Ini juga menunjukkan garis status dengan semua terminal virtual terbuka yang dapat dinamai.

Fitur bagus lainnya adalah kenyataan bahwa semua layar Anda dapat tetap aktif saat koneksi ssh Anda terputus. Anda hanya terhubung lagi melalui ssh dan memanggil byobu dan semuanya seperti sebelumnya.

Akhirnya beberapa tangkapan layar byobu.

txwikinger
sumber
5

Layar GNU adalah jawaban yang Anda cari - tetapi sangat mirip dengan Vi. Anda sudah banyak belajar perintah untuk mengatur lingkungan Layar yang sukses. Inilah beberapa hal untuk Anda mulai. Pertama-tama, Anda ingin .screenrc http://paste.ubuntu.com/473764/ menyimpannya di server jarak jauh di folder beranda pengguna Anda. Selanjutnya instal layar pada mesin jarak jauh ( sudo apt-get install screen) Selanjutnya Anda akan ingin menyalakannya di sini adalah beberapa perintah untuk "firing up screen":

screen- Ini sangat sederhana. Ini memulai sesi layar baru screen -ls- Daftar semua sesi layar aktif. Ya, Anda dapat memiliki beberapa terminal di dalam beberapa layar. SANGAT ROMANTIS.

Mencicipi

screen -ls
There is a screen on:
    16467.pts-0.ubuntu  (08/05/2010 07:47:53 PM)    (Detached)
1 Socket in /var/run/screen/S-marco.

screen -x <pid> - Ini akan melanjutkan sesi layar Terpisah, yaitu: screen -x 16467

Setelah Anda di Layar (dan Anda sudah menggunakan .screenrcfile sampel saya ) Anda akan melihat yang berikut di bagian bawah:

(LOAD) 0$* bash

Yang merupakan server memuat dan daftar semua "terminal tab" terbuka. Saat ini hanya satu jendela. Ketik sesuatu kemudian Tekan Kombinasi Tombol ini: Ctrl + Alepaskan, lalu tekan c. Ctrl + Aadalah urutan pelarian. Semua perintah dimulai dengan kombinasi ini. cadalah buat tab baru. Anda akan melihat catatan kaki (LOAD) 0-$ bash 1$* bashyang menunjukkan bahwa ada tab lain yang terbuka dan tab aktif adalah angka 1. Anda dapat membuka maksimum 60 tab per sesi layar.

Jika Anda ingin layar keluar tapi tetap berjalan penggunaan Ctrl + Amaka dyang akan melepaskan sesi Anda. Akhirnya Anda bisa menutup tab dengan menggunakan Ctrl + Amaka kyang akan membunuh tab yang (jika terkunci) tetapi biasanya Anda hanya bisa mengetik exitseolah-olah Anda berada di terminal dan itu akan menutup tab tersebut.

Terakhir untuk daftar semua jendela yang terbuka Anda dapat mengetik Ctrl + Akemudian ".

Ada banyak pilihan yang tersedia untuk Layar, Anda harus menuangkan lebih dari file man untuk lebih. Ada beberapa kekurangannya. Anda tidak dapat menggunakan bilah gulir di Layar Anda harus menggunakan kontrol penyangga untuk memutar kembali, namun hal di atas sudah cukup untuk membuat Anda mulai melihat apakah ini merupakan opsi yang layak. Suatu hal yang hebat tentang ini dan sesuatu yang telah saya tangani sebagai Administrator Sistem - konektivitas jaringan. Jika jaringan Anda keluar, operasi Anda tidak akan hilang! Karena layar berjalan di server. Anda hanya perlu masuk kembali melalui SSH lalu screen -lsdan screen -xkembali ke sesi Anda.

Marco Ceppi
sumber
Sepertinya txwikinger mengalahkan saya dengan beberapa tautan bermanfaat!
Marco Ceppi
Ketik Ctrl + Akemudian ?untuk pergi ke halaman bantuan. Semua perintah dan pintasan tercantum di sana. Ketik Ctrl + Akemudian :untuk menggunakan salah satu perintah dengan nama, jika ingat nama tetapi lupa tombol pintas.
Dan
1

Jika Anda menggunakan Ubuntu Server Edition byobujelas merupakan pilihan terbaik Anda. Panduan Server Ubuntu memiliki beberapa dokumentasi yang bermanfaat .

Secara umum lebih mudah dipelajari dan digunakan daripada screendan itu diinstal secara default.

jbowtie
sumber
0

Saya menggunakan Emacs, jadi konfigurasi default layar membuat hidup saya sulit.

$ cat /home/cjac/.screenrc 

melarikan diri ^ \

Coba itu!

cjac
sumber