Tek bir SSH bağlantısı üzerinden birden fazla terminal oturumunu nasıl yapabilirim?


21

Çalışan bir Ubuntu sunucu sürümüne sahibim ve çeşitli görevleri gerçekleştirmek için SSH'ye girebiliyorum. Tek istediğim SSH'yi sunucuma sokma yeteneği, bir sunucu uygulamasını başlatıp ardından başka bir "sanal" oturuma (aynı SSH örneğinde) geçiş yapmak ve hizmete karşı müşteri çağrıları yapmak. Hizmeti başlattığımda engelleme çağrısı olduğu için, SSH oturumunu başlatmadan istemci çağrılarını buna karşı çalıştıramam.

UI gibi sanal masaüstlerinde olduğu gibi daha yumuşak bir yol olabileceğini umuyordum.

Yanıtlar:


24

Kullanmak istediğiniz ekran byobu adı verilen ekran etrafında kullanıcı dostu bir paketleyicidir.

Ekran, aynı ssh oturumunda birden fazla sanal terminal oturumu çalıştırmanıza izin verir. Bir öğretici ve yardım sayfaları mevcuttur.

byobu , ctrl-a tuş kombinasyonu yerine basit bir fonksiyon tuşuyla yeni ekranların kolayca açılmasını sağlayan bir sarıcıdır . Ayrıca, adlandırılabilecek tüm açık sanal terminallerin bulunduğu bir durum satırı gösterir.

Bir başka güzel özellik ise, ssh bağlantınız kopukken tüm ekranınızın açık kalması. Sadece ssh ile tekrar bağlanın ve byobu ile çağrı yapın ve her şey eskisi gibi.

Sonunda byobu'nun bazı ekran görüntüleri .


5

GNU Screen , aradığınız cevaptı - ama Vi gibi. Başarılı bir Ekran ortamı oluşturmak için birçok komut öğrendiniz. İşte başlamanız için bazı şeyler. Her şeyden önce bu .screenrc http://paste.ubuntu.com/473764/ bunu kullanıcılarınızın ana klasöründeki uzak sunucuya kaydedin. Uzaktaki makineye bir sonraki kurulum ekranı ( sudo apt-get install screen) Daha sonra, buradan ateşlemek isteyeceksiniz, "ekranı açma" için bazı komutlar:

screen- Bu oldukça basit. Yeni bir ekran oturumu başlatır screen -ls- Tüm aktif ekran oturumlarını listeler. Evet, birden fazla ekranın içinde birden fazla terminal olabilir. ÇOK TATLI.

Numune

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> - Bu, bir Ayrılmış ekran oturumuna devam edecektir, IE: screen -x 16467

Bir Ekrana girdikten sonra (ve örnek dosyamı kullandınız .screenrc) aşağıdakileri göreceksiniz:

(LOAD) 0$* bash

Sunucuların yükü ve açık olan tüm "terminal sekmelerinin" listesi. Şu anda sadece bir pencere. Bir şeyler yazın sonra Bu Tuş Kombinasyonuna basın: Ctrl + Abırakın, ardından düğmesine basın c. Ctrl + Akaçış dizisidir. Tüm komutlar bu kombinasyonla başlatılır. cyeni sekme oluştur. (LOAD) 0-$ bash 1$* bashAçık olan başka bir sekme olduğunu ve etkin sekmenin 1 olduğunu gösteren altbilgiye sahip olduğunu göreceksiniz . Ekran oturumu başına maksimum 60 sekme açabilirsiniz.

Eğer çıkış ekranına istiyorum ama kullanımını çalışmasını sağlamak ise Ctrl + Ao zaman doturumunuzu ayırmak hangi. Son olarak kullanarak sekmeleri kapatabilirsiniz Ctrl + Asonra k(o kilitleniyor ise) o sekmeyi öldürecek ancak genellikle sadece yazabilirsiniz hangi exitbir terminalde sanki ve o sekmeyi kapanacak.

Son olarak tüm pencereleri yazabilirsiniz açmak Listeye Ctrl + Asonra ".

Daha fazla bilgi için Man dosyasının üzerine dökmeniz gereken Ekran için birçok seçenek bulunmaktadır. Bazı dezavantajlar var. Ekrandaki kaydırma çubuğunu kullanamazsınız, geri almak için arabellek denetimlerini kullanmanız gerekir, ancak yukarıdakilerin bunun uygun bir seçenek olup olmadığını görmeniz için yeterlidir. Bu konuda harika bir şey ve Sistem Yöneticisi olarak çokça uğraştığım bir şey - ağ bağlantısı. Ağınız kesilirse operasyonlarınız kaybolmaz! Çünkü ekran sunucuda çalışıyor. Sadece o zaman SSH ile tekrar giriş gerekir screen -lsve screen -xsizin oturumuna.


Bazı faydalı linkler ile txwikinger beni dövdü gibi görünüyor!
Marco Ceppi

Tür Ctrl + Aardından ?yardım sayfasına gitmek için. Tüm komutlar ve kısayollar burada listelenir. Tür Ctrl + Asonra :adını hatırlamıyorum ama kısayol unuttuysanız, adıyla komutların herhangi birini kullanmak için.
Dan

1

Ubuntu Server Edition kullanıyorsanız byobukesinlikle en iyi seçenek. Ubuntu Sunucu Kılavuzu'nda bazı yararlı belgeler vardır .

Öğrenmek ve kullanmak genellikle daha kolaydır ve screenvarsayılan olarak kurulur.


0

Emacs kullanıyorum, bu yüzden ekranın varsayılan konfigürasyonu hayatımı zorlaştırıyor.

$ cat /home/cjac/.screenrc 

kaçış ^ \

Bunu dene!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.