Bir ekran oturumu için bir ad belirleme


44

Bir unix ekran oturumuna belirli bir ad vermenin bir yolu var mı? Örneğin, her biri farklı parametrelerle aynı programı birden çok kez çalıştırdığımı ve hangisinin hangisi olduğunu söylemek istediğimi söyleyin.


Programlama sorusu değil. SuperUser veya Unix'e gitmeli.
0xC0000022L,

Yanıtlar:


54

Seçeneğe başladığınızda bir oturumu adlandırabilirsiniz -S name. Çalışan bir ekrandan yazarak değiştirebilirsiniz CTRL-a, :sessionname name. Çalışan ekran oturumlarını ile görüntüleyebilir screen -lsve isme göre birine bağlayabilirsiniz screen -xS name.

Tek bir ekran oturumunda her pencereyi de adlandırabilirsiniz. Bunu CTRL-a, Asonra istediğiniz adı yazarak yapın . Adlandırılmış pencerelerin etkileşimli listesini yazarak görüntüleyebilir CTRL-a, "ve o listeden geçmek istediğinizi seçebilirsiniz.

Ekranları içinde hem ekranları hem de terminalleri adlandırmak, ne olduklarını ve neden ilk başta onları başlattığınızı hatırlamak için gerçekten yararlıdır.


Başladıktan sonra bir ekran oturumunu yeniden adlandırmak mümkündür (kullanma :sessionname NEWNAME), ancak "genellikle önerilmez". $STYOrtam değişkeni hala orijinal adı ifade eder. screenEl kitabına bakın : gnu.org/software/screen/manual/html_node/Session-Name.html
Keith Thompson

22

Burada iki kavram var ve hangisini düşündüğünüzden emin değilim:

  • Birden çok ekran pencereniz olabilir. Her pencere bir kabuk veya başka bir program çalıştırır. Tüm pencereler aynı işlem tarafından barındırılmaktadır. C-a cbir pencere yaratır C-a nve C-a psonraki / önceki pencereye geçer ve böyle devam eder.
  • Birden çok ekran oturumunuz olabilir. Her oturum kendi süreci tarafından barındırılır ve diğer tüm oturumlardan bağımsızdır. Ekranı herhangi bir yeniden takma ( -rveya -R) seçeneği olmadan başlatmak , yeni bir oturum oluşturur.

Windows, -tkomut satırı seçeneği, C-a Atuş ciltleme, titlekomut veya \ekkaçış dizisi aracılığıyla ayarlanabilen başlıklara sahiptir . Daha fazla ayrıntı için shellter'ın cevabına bakınız.

Seansların isimleri olabilir. Komut satırında genellikle -Sseçeneği olan adı belirlersiniz ; Bir ad belirtmezseniz, ekran bir tanesini oluşturur. Birden fazla ekran oturumu kullanıyorsanız, genellikle onlara farklı oturum adları verirsiniz. Çalışan ekran oturumunu screen -ls; Her oturum satırındaki ilk sözcük 12345.sessionname12345'in ekran işlem kimliği olduğu yerdir. Adı veya işlem kimliği ile belirtilen oturuma devam etmek için screen -r sessionnameveya screen -r 12345düğmesini kullanın .


1
Varsayılan anahtar ciltlerinde, başlığı değiştirmek için Ca A'yı kullanmanız gerekir.
enzotib

11

Ah ... Ekran, beni geri alır ;-)

Bir pencere için

-t name
    sets the title (a.k.a.) for the default shell or specified program. 
    See also the "shelltitle" .screenrc command.

Karşılıklı oturumlar için .screenrc'den başlayın

screen -t top 2 nice top
screen -t ....

İşte ekranın man sayfasının çevrimiçi bir kopyasına bir link .

Düzenleme: eklendi

Geçerli ekran adını değiştirmek için, gibi bir kabuk komut dosyası aracı yapın.

cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'

Denenmemiş, üzerinde çalıştığım sistemde ekran yok.


Teşekkürler, bu çok yardımcı olur. Zaten var olan bir ekran oturumunu yeniden adlandırmak için yine de var mı?
Aslında

@Charlotte: düzenlemelere bakınız. Oylar için teşekkürler!
shellter

Güzel cevap @shellter! Merak ediyorum, bugünlerde başka bir şey kullandığınızdan (örneğin, tmux) ya da sadece 32 yaşın üzerinde olduğunuzu söylemek için "beni geri alır" mı dediniz ?
tutuDajuju

1
@tutuDajuju: Gulp, şimdi düşünüyorum da, screenen az 25 yıl kullandım. Beni geri alıyor, çünkü şimdi beni götürecek özel bir durum screen. Normalde açılmaya devam X-Termsediyorum ama X486 PC'de çalıştırmanın imkansız göründüğünü hatırlıyorum ;-) Şerefe!
mermi

@shellter Bilginize, ben ... 1992 yılında 8Mb RAM sırtı bir 486 PC'de X ran
Eno

4

Çalışırken screen:

Ctrl+a(veya screenkaçış diziniz ne olursa olsun )A


3

Yukarıdaki cevaplar, başlattığınızda ekranın nasıl adlandırılacağını zaten açıklıyor. Ayrıca, bir ekran başlatıldıktan sonra yeniden adlandırılamayacağını da belirtiyorlar. Pencere başlığı ayarlanabilir, ancak ekrana eklemek için kullanılan ad pid.pty.host olarak kalır.

Ancak, yararlı bir etki elde etmek için takma ad kullanmanın oldukça iyi çalıştığını gördüm. Bir ekran adı vermeyi ya da kendimi belirli görevler için doğal olarak ekran haline gelmiş bir grup ekranın olduğu bir oturumda bulmayı unutursam, komutun kendilerine ekleyebileceği bir takma ad ayarladım.

örnek:

alias goncompile='screen -r 2354'

Alias ​​komutunu kendi başına vermek, hangi ekranlara sahip olduğunuzu ve bunlara eklemek için hangi komutu ayarladığınızı hatırlatır.

unaliasOnları kaldırmak için kullanın .

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.