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.

yah sebenarnya
sumber
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.

Lars Yencken
sumber
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.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
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.

kerang
sumber
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

ninjalj
sumber
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.

caoimhin
sumber