स्क्रीन के लिए नाम कैसे निर्दिष्ट करें? [बन्द है]


471

मैं screenकमांड शेल पर मल्टीप्लेक्स टूल का उपयोग कर रहा हूं और बहुत सारे स्क्रीन खोल रहा हूं । मैं फिर भूल जाता हूं कि कौन सी प्रक्रिया आईडी किस कार्य के साथ जुड़ती है।

मैं एक स्क्रीन के लिए एक नाम सेट करना चाहूंगा, लेकिन मैनपेज में कोई विकल्प नहीं खोज सकता।

वर्तमान में, स्क्रीन की सूची इस तरह दिखती है:

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.

और मैं कुछ इस तरह देखना चाहता हूं:

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

मैं यह कैसे कर सकता हूँ?


4
यह प्रश्न अधिक दिखता है कि यह "मौजूदा सत्रों का नाम कैसे बदला जाए" के बजाय "नए सत्रों को एक नाम से कैसे शुरू करें" कहा जाए। इस संदर्भ में, वर्तमान में चुना गया उत्तर वास्तव में उचित नहीं है। सही उत्तर के बजाय एक दिया जाना चाहिए user164176- stackoverflow.com/a/3309696/636762
रकीब

आपके स्क्रीन सत्रों के नाम बताते हैं कि आप प्रति कार्य (शायद एक कमांड) प्रति एक नया स्क्रीन सत्र बनाते हैं। स्क्रीन कई खिड़कियों का समर्थन करती है , इसलिए आप इन सभी कार्यों को एक स्क्रीन सत्र में चला सकते हैं।
मेलेबियस

3
क्या यह SuperUser (या कुछ अन्य StackExchange साइट) पर माइग्रेट किया जा सकता है? जाहिर है यह बहुत सारे लोगों के लिए काफी उपयोगी है, हालांकि यह इस विशेष साइट के दायरे से बाहर है।
पैट्रिक सानन

1
यदि आप इसे इस साइट पर सभी इतिहास के साथ स्थानांतरित करने के लिए एक विकल्प पाते हैं, तो मैं इसे स्थानांतरित करने के लिए सहमत हो
जाऊंगा

जवाबों:


651

एक नया सत्र शुरू करने के लिए

screen -S your_session_name

मौजूदा सत्र का नाम बदलने के लिए

Ctrl+ a, :सत्रनाम your_SESSION_NAMEEnter

आपको सत्र के अंदर होना चाहिए


14
यह उपयुक्त समाधान है क्योंकि यह एक नया निर्माण करने के बजाय मौजूदा सत्र का नाम बदलने पर केंद्रित है।
thanos.a

4
C-a :वाक्यविन्यास पर एक त्वरित नोट .... "सभी स्क्रीन कमांड एक एस्केप कुंजी द्वारा डिफ़ॉल्ट रूप से उपसर्ग किए जाते हैं, C-a(जो कि कंट्रोल-ए, कभी-कभी लिखा जाता है ^a)। C-aस्क्रीन में कार्यक्रमों के लिए एक शाब्दिक भेजने के लिए, उपयोग करें C-a a। जब यह काम करता है तो उपयोगी होता है। स्क्रीन के भीतर स्क्रीन। उदाहरण के लिए C-a a nस्क्रीन पर स्क्रीन पर एक नई विंडो में स्क्रीन जाएगी। " (Ref: aperiodic.net/screen/quick_reference )
नैट रिटर

बहुत सराहना की। हालांकि मुझे पता है कि आप एक नाम के साथ शुरू कर सकते हैं, मैं अक्सर नाम के बिना शुरू करता हूं, फिर मैं बाद में चाह सकता हूं। धन्यवाद!
केतजाक

2
कुछ साल बाद इसे देखने के बाद सहमति हुई: D
spankmaster79

क्या मैं C-a :sessionname NEWNAMEटाइप करने के लिए कुछ तेज कर सकता हूं ? मैंने कोशिश की bind $ sessionnameलेकिन अब जब मैं C-a $इसे एक नए नाम के लिए संकेत नहीं देता। क्या यह किसी तरह संभव है?
andreas-h

592

नाम के साथ एक नई स्क्रीन बनाने के लिए foo, उपयोग करें

screen -S foo

फिर इसे रीटच करने के लिए, भागो

screen -r foo  # or use -x, as in
screen -x foo  # for "Multi display mode" (see the man page)

16
आपके समाधान में आप समझाते हैं कि मौजूदा नामों को बदलने के बजाय सही नामों के साथ नए कैसे बनाएं। ऐसा कोई भी नहीं है जो सत्र को समाप्त करना चाहता है यदि इसे रखना संभव है।
thanos.a

10
मौजूदा सत्रों का नाम बदलने के तरीके को देखने के लिए user164176 के उत्तर पर स्क्रॉल करें।
jlh

1
यह प्रश्न अधिक दिखता है कि यह "मौजूदा सत्रों का नाम कैसे बदला जाए" के बजाय "नए सत्रों को एक नाम से कैसे शुरू करें" कहा जाए। इस संदर्भ में, वर्तमान में चुना गया उत्तर वास्तव में उचित नहीं है। चुने गए सही उत्तर के बजाय नीचे दिए गए एक होना चाहिए user164176- stackoverflow.com/a/3309696/636762 नीचे
रकीब

मैंने Google पर "ubuntu नाम के साथ एक नई स्क्रीन बनाएँ" की खोज की और यह पहला परिणाम था। वास्तव में मैं क्या देख रहा था :) धन्यवाद
Skylord123

एक सत्र का नाम बदलने के लिए: Ctrl + a,: sessionname your_SESSION_NAME दर्ज करें।
Slake

51

जैसा कि पहले ही कहा गया है, screen -S SESSIONTITLEएक शीर्षक के साथ सत्र शुरू करने के लिए काम करता है ( SESSIONTITLE), लेकिन यदि आप एक सत्र शुरू करते हैं और बाद में इसका शीर्षक बदलने का निर्णय लेते हैं। इसे डिफ़ॉल्ट कुंजी बाइंडिंग का उपयोग करके पूरा किया जा सकता है:

Ctrl+ a,A

जो संकेत देता है:

Set windows title to:SESSIONTITLE

SESSIONTITLEवांछित शीर्षक में बैकस्पेसिंग और टाइपिंग द्वारा बदलें । नाम बदलने की पुष्टि करने और सभी शीर्षकों को सूचीबद्ध करने के लिए।

Ctrl+ a,"


40
जब आप नहीं हैं तो आप शब्द सत्र और विंडो को विनिमेय मान रहे हैं। Ctrl+a, सत्र नाम ( ) Aसेट नहीं करता है , यह केवल वर्तमान विंडो शीर्षक सेट करता है । एक सत्र के भीतर खिड़कियों के शीर्षक सत्रों की सूची में प्रकट नहीं होते हैं जब उनके साथ प्रश्न किया जाता है । सवाल पूछता है कि सत्र का नाम कैसे सेट किया जाए । SESSIONNAMEscreen -list
StvnW

5
उपयोगी लेकिन यह वर्तमान विंडो शीर्षक को बदलता है, सत्र नाम नहीं।
१२:२५ पर

13

नाम के साथ सबसे आसान तरीका स्क्रीन का उपयोग करें

screen -S 'name' 'application'
  • Ctrl+ a, d= बाहर निकलें और आवेदन खुला छोड़ दें

स्क्रीन पर लौटें:

screen -r 'name'

उदाहरण के लिए स्क्रीन के साथ lynx का उपयोग करना

स्क्रीन बनाएं:

screen -S lynx lynx

Ctrl+ a, d= बाहर निकलें

बाद में आप साथ लौट सकते हैं:

screen -r lynx

18
इसके साथ तीन समस्याएं। सबसे पहले, कई लोग इसे पहले ही पोस्ट कर चुके हैं। दूसरा, आप उसे बेसिक स्क्रीन यूसेज सामान बता रहे हैं जो वह पहले से जानता है। तीसरा, आपने वास्तव में इस सवाल का जवाब नहीं दिया, क्योंकि उन्होंने पूछा कि पहले से मौजूद स्क्रीन सेशन का नाम कैसे रखा जाए।
डैन

0

मैं स्क्रीन के लिए शुरुआत कर रहा हूं, लेकिन मुझे खोए हुए कनेक्शन को पुनर्स्थापित करते समय यह बहुत उपयोगी लगता है। आपके प्रश्न का पहले ही उत्तर दिया जा चुका है, लेकिन यह जानकारी एक ऐड के रूप में काम कर सकती है - मैं पोटीन का उपयोग कनेक्शन मैनेजर के साथ करता हूं और अपनी स्क्रीन को नाम देता हूं - "tab1", "tab2", आदि - जैसा कि मेरे लिए 8-10 की समग्र तस्वीर है। प्रत्येक व्यक्तिगत टैब नाम की तुलना में टैब अधिक महत्वपूर्ण है। मैं db से जुड़ने के लिए 8 वें टैब का उपयोग करता हूं, लॉग देखने के लिए 7 वां आदि। इसलिए जब मैं अपनी स्क्रीन को रीटेट करना चाहता हूं तो मैंने एक साधारण आवरण लिखा है जो कहता है:

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

जहां पहला तर्क टैब नंबर है।


1
यह बैश फंक्शन के रूप में बेहतर किया जा सकता है।
पॉल प्राइस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.