Mengatur nama untuk sesi layar


46

Apakah ada cara untuk memberikan nama tertentu ke sesi layar unix? Misalnya, saya menjalankan program yang sama beberapa kali, masing-masing dengan parameter berbeda dan saya ingin memberi tahu yang mana.


Bukan pertanyaan pemrograman. Harus pergi ke SuperUser atau Unix.
0xC0000022L

Jawaban:


56

Anda dapat memberi nama sesi saat memulai dengan -S nameopsi. Dari dalam layar yang sedang berjalan, Anda dapat mengubahnya dengan mengetik CTRL-a, :sessionname name. Anda dapat melihat sesi layar yang sedang berjalan dengan screen -ls, dan terhubung ke satu dengan nama dengan screen -xS name.

Dalam satu sesi layar, Anda juga dapat memberi nama setiap jendela. Lakukan ini dengan mengetikkan CTRL-a, Anama yang Anda inginkan. Anda dapat melihat daftar interaktif dari jendela bernama dengan mengetik CTRL-a, ", dan pilih yang Anda ingin beralih dari daftar itu.

Memberi nama layar dan terminal dalam layar sangat membantu untuk mengingat apa itu dan mengapa Anda memulainya.


Mengganti nama sesi layar setelah dimulai adalah mungkin (menggunakan :sessionname NEWNAME), tetapi "umumnya tidak disarankan". The $STYvariabel lingkungan masih mengacu pada nama asli. Lihat screenmanual: gnu.org/software/screen/manual/html_node/Session-Name.html
Keith Thompson

22

Ada dua konsep di sini, dan saya tidak yakin yang mana yang Anda pikirkan:

  • Anda dapat memiliki banyak jendela layar. Setiap jendela menjalankan shell atau program lain. Semua jendela di-host oleh proses yang sama. C-a cmembuat jendela, C-a ndan C-a pberalih ke jendela berikutnya / sebelumnya, dan seterusnya.
  • Anda dapat memiliki beberapa sesi layar. Setiap sesi diselenggarakan oleh prosesnya sendiri dan tidak tergantung pada semua sesi lainnya. Memulai layar tanpa opsi pemasangan kembali ( -ratau -R) membuat sesi baru.

Windows memiliki judul, yang dapat diatur melalui -topsi baris perintah, C-a Apengikatan tombol, titleperintah, atau \ekurutan escape. Lihat jawaban shellter untuk lebih jelasnya.

Sesi dapat memiliki nama. Anda biasanya mengatur nama pada baris perintah dengan -Sopsi; jika Anda tidak menentukan nama, layar membuat satu. Jika Anda menggunakan beberapa sesi layar, Anda biasanya memberi mereka nama sesi yang berbeda. Anda dapat membuat daftar sesi layar berjalan dengan screen -ls; kata pertama pada setiap baris sesi adalah di 12345.sessionnamemana 12345 adalah ID proses layar. Gunakan screen -r sessionnameatau screen -r 12345untuk melanjutkan sesi yang ditunjukkan melalui namanya atau ID proses.


1
Di binding kunci default, untuk mengubah judul Anda harus menggunakan Ca A.
enzotib

11

Ah ... Layar, itu membawaku kembali ;-)

Untuk satu jendela

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

Untuk sesi mutliple dimulai dari .screenrc Anda

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

Berikut ini tautan ke satu salinan on-line dari man-page untuk layar.

Edit: ditambahkan

Untuk mengubah nama layar saat ini, buat seperti alat skrip shell

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

Belum diuji, saya tidak memiliki layar yang tersedia pada sistem yang saya kerjakan.


Terima kasih, ini sangat membantu. Apakah ada cara untuk mengganti nama sesi layar yang sudah ada?
yah sebenarnya

@Charlotte: lihat suntingan. Terima kasih untuk suaranya!
kerang

Jawaban yang bagus @shellter! Saya ingin tahu, apakah Anda mengatakan "bawa saya kembali" berarti Anda menggunakan sesuatu yang lain hari ini (misalnya tmux), atau hanya lebih dari 32 tahun ?
tutuDajuju

1
@tutuDajuju: Gulp, sekarang setelah kupikirkan lagi, aku sudah menggunakan screensetidaknya 25 tahun. Membawa saya kembali, karena sekarang ini adalah kasus penggunaan khusus yang akan membawa saya ke sana screen. Biasanya saya tetap membuka X-Terms, tapi saya ingat ketika sepertinya tidak mungkin dijalankan Xpada PC 486 ;-) Cheers!
shellter

@shellter FYI, saya menjalankan X pada PC 486 dengan RAM 8Mb pada tahun 1992 ...
Eno

4

Saat berjalan screen:

Ctrl+a(Atau apa pun screenurutan pelarian Anda )A


3

Jawaban di atas sudah memberi tahu Anda cara memberi nama layar saat Anda memulainya. Mereka juga menunjukkan bahwa layar tidak dapat diubah namanya setelah dimulai. Judul jendela dapat diatur tetapi nama yang digunakan untuk melampirkan ke layar tetap pid.pty.host.

Namun, untuk mencapai efek yang bermanfaat, saya menemukan bahwa menggunakan alias berfungsi dengan cukup baik. Jika saya lupa memberi nama layar atau mendapati diri saya dalam sesi dengan sekelompok layar yang secara alami menjadi layar untuk tugas-tugas tertentu, saya cukup menetapkan alias untuk perintah yang dilampirkan.

contoh:

alias goncompile='screen -r 2354'

Mengeluarkan perintah alias dengan sendirinya akan mengingatkan Anda layar apa yang Anda miliki dan perintah yang telah Anda atur untuk dilampirkan.

Gunakan unaliasuntuk menghapusnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.