Bagaimana cara menetapkan nama untuk layar? [Tutup]

471

Saya menggunakan screenalat multiplexer pada shell perintah dan membuka banyak layar. Saya kemudian lupa ID proses mana yang dikaitkan dengan tugas yang mana.

Saya ingin menetapkan nama untuk layar tetapi tidak dapat menemukan opsi di halaman manual.

Saat ini, daftar layar terlihat seperti ini:

There are screens on:
    5422.pts-1.aws1 (Detached)
    5448.pts-1.aws1 (Detached)
    5027.pts-1.aws1 (Detached)
3 Sockets in /var/run/screen/S-sb.

Dan saya ingin melihat sesuatu seperti ini:

There are screens on:
    5422.logCleanWorker (Detached)
    5448.overNightLongTask(Detached)
    5027.databaseOverNightLongTask (Detached)
3 Sockets in /var/run/screen/S-sb.

Bagaimana saya bisa melakukan ini?

spankmaster79
sumber
4
pertanyaannya lebih seperti bertanya "bagaimana mengubah nama sesi yang ada" daripada "bagaimana memulai sesi baru dengan nama". Dalam konteks itu, jawaban yang dipilih saat ini tidak benar-benar tepat. Jawaban yang benar lebih baik diberikan oleh user164176- stackoverflow.com/a/3309696/636762
Rakib
Nama-nama sesi layar Anda menyarankan agar Anda membuat sesi layar baru per satu tugas (mungkin satu perintah). Layar mendukung banyak jendela , sehingga Anda dapat menjalankan semua tugas ini dalam satu sesi layar.
Melebius
3
Bisakah ini dimigrasikan ke SuperUser (atau situs StackExchange lainnya)? Jelas itu sangat berguna bagi banyak orang, meskipun itu di luar ruang lingkup situs khusus ini.
Patrick Sanan
1
jika Anda menemukan opsi di situs ini untuk memindahkannya ke sana dengan semua sejarah, maka saya setuju untuk memindahkannya
spankmaster79

Jawaban:

652

Untuk memulai sesi baru

screen -S your_session_name

Untuk mengganti nama sesi yang ada

Ctrl+ a, :nama sesi YOUR_SESSION_NAMEEnter

Anda harus berada di dalam sesi

pengguna164176
sumber
14
Ini adalah solusi yang tepat karena berfokus pada penggantian nama sesi yang ada daripada membuat yang baru.
thanos.a
4
Catatan singkat tentang C-a :sintaks .... "Semua perintah layar diawali oleh kunci keluar, secara default C-a(yang Control-a, kadang-kadang ditulis ^a). Untuk mengirim literal C-ake program di layar, gunakan C-a a. Ini berguna saat bekerja dengan layar dalam layar. Misalnya C-a a nakan memindahkan layar ke jendela baru di layar dalam layar. " (ref: aperiodic.net/screen/quick_reference )
Nate Ritter
Sangat dihargai. Meskipun saya tahu Anda bisa mulai dengan sebuah nama, saya sering memulai tanpa menyebutkan nama, kemudian berharap bisa nanti. Terima kasih!
Ketzak
2
setuju setelah melihatnya beberapa tahun kemudian: D
spankmaster79
Bisakah saya mengikatnya C-a :sessionname NEWNAMEke sesuatu yang lebih cepat diketik? Saya mencoba bind $ sessionnametetapi sekarang ketika saya C-a $tidak meminta saya untuk nama baru. Apakah itu mungkin?
andreas-h
592

Untuk membuat layar baru dengan nama foo, gunakan

screen -S foo

Kemudian untuk memasangnya kembali, jalankan

screen -r foo  # or use -x, as in
screen -x foo  # for "Multi display mode" (see the man page)
miedwar
sumber
16
Dalam solusi Anda, Anda menjelaskan cara membuat yang baru dengan nama yang benar daripada mengubah yang sudah ada. Tidak ada yang ingin mengakhiri sesi jika mungkin untuk mempertahankannya.
thanos.a
10
Gulir ke bawah ke jawaban pengguna164176 untuk melihat cara mengganti nama sesi yang ada.
jlh
1
pertanyaannya lebih seperti bertanya "bagaimana mengubah nama sesi yang ada" daripada "bagaimana memulai sesi baru dengan nama". Dalam konteks itu, jawaban yang dipilih saat ini tidak benar-benar tepat. Jawaban yang benar dan dipilih seharusnya menjadi yang diberikan oleh user164176- stackoverflow.com/a/3309696/636762 di bawah ini
Rakib
Saya mencari "ubuntu buat layar baru dengan nama" di google dan ini adalah hasil pertama. Persis apa yang saya cari :) terima kasih
Skylord123
Untuk mengganti nama sesi: Ctrl + a,: sessionname YOUR_SESSION_NAME Enter.
Slake
51

Seperti yang telah dinyatakan, screen -S SESSIONTITLEberfungsi untuk memulai sesi dengan judul ( SESSIONTITLE), tetapi jika Anda memulai sesi dan kemudian memutuskan untuk mengubah judulnya. Ini dapat dicapai dengan menggunakan binding kunci default:

Ctrl+ a,A

Yang meminta:

Set windows title to:SESSIONTITLE

Ubah SESSIONTITLEdengan backspacing dan ketikkan judul yang diinginkan. Untuk mengonfirmasi perubahan nama dan daftar semua judul.

Ctrl+ a,"

E4Y
sumber
40
Anda memperlakukan sesi dan jendela istilah sebagai dapat dipertukarkan saat tidak. Ctrl+a, Atidak mengatur nama sesi ( SESSIONNAME), itu hanya mengatur saat ini judul jendela . Judul windows dalam suatu sesi tidak muncul dalam daftar sesi ketika ditanya screen -list. Pertanyaannya adalah bagaimana cara mengatur nama sesi .
StvnW
5
berguna tetapi itu mengubah judul jendela saat ini, bukan nama sesi.
Znik
13

Cara termudah menggunakan layar dengan nama

screen -S 'name' 'application'
  • Ctrl+ a, d= keluar dan biarkan aplikasi terbuka

Kembali ke layar:

screen -r 'name'

misalnya menggunakan lynx dengan layar

Buat layar:

screen -S lynx lynx

Ctrl+ a, d= keluar

nanti kamu bisa kembali dengan:

screen -r lynx
OneOFPunx
sumber
18
Tiga masalah dengan ini. Pertama, beberapa orang telah memposting ini. Kedua, Anda mengatakan kepadanya hal-hal penggunaan layar dasar yang sudah ia ketahui. Ketiga, Anda tidak benar-benar menjawab pertanyaan, karena dia bertanya bagaimana memberi nama sesi layar yang sudah ada.
Steely Dan
0

Saya seorang pemula untuk menyaring tetapi saya merasa sangat berguna saat memulihkan koneksi yang hilang. Pertanyaan Anda telah dijawab tetapi informasi ini dapat berfungsi sebagai tambahan - saya menggunakan dempul dengan manajer koneksi dempul dan memberi nama layar saya - "tab1", "tab2", dll. - untuk saya gambaran keseluruhan dari 8-10 tab lebih penting daripada setiap nama tab. Saya menggunakan tab ke-8 untuk menghubungkan ke db, ke-7 untuk melihat log, dll. Jadi ketika saya ingin memasang kembali layar saya, saya telah menulis pembungkus sederhana yang mengatakan:

#!/bin/bash
screen -d -r tab$1

di mana argumen pertama adalah nomor tab.

Saurabh Hirani
sumber
1
Ini mungkin lebih baik dilakukan sebagai fungsi bash.
Paul Price