it-swarm-id.com

Mengatur nama untuk sesi layar

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.

62
well actually

Anda dapat memberi nama sesi saat memulai dengan -S name pilihan. 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 sambungkan satu nama dengan screen -xS name.

Dalam satu sesi layar tunggal, Anda juga dapat memberi nama setiap jendela. Lakukan ini dengan mengetik CTRL-a, A lalu nama 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 mengingat apa itu dan mengapa Anda memulainya.

73
Lars Yencken

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 c membuat jendela, C-a n dan C-a p beralih 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 pemasangan kembali (-r atau -R) opsi membuat sesi baru.

Windows memiliki judul, yang dapat diatur melalui -t opsi baris perintah, C-a A pengikatan kunci, perintah title, atau \ek urutan pelarian. Lihat jawaban shellter untuk lebih jelasnya.

Sesi dapat memiliki nama. Anda biasanya menetapkan nama pada baris perintah dengan -S pilihan; 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 12345.sessionname di mana 12345 adalah ID proses layar. Gunakan screen -r sessionname atau screen -r 12345 untuk melanjutkan sesi yang ditunjukkan melalui nama atau ID prosesnya.

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 online dari halaman manual 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.

12
shellter

Saat menjalankan screen:

Ctrl+a (atau apa pun screen Anda adalah urutan escape) A

4
ninjalj

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 unalias untuk menghapusnya.

3
caoimhin