क्या यूनिक्स स्क्रीन सत्र के लिए एक विशेष नाम देने का कोई तरीका है? उदाहरण के लिए, मान लें कि मैं एक ही कार्यक्रम कई बार चला रहा हूं, प्रत्येक अलग-अलग मापदंडों के साथ और मैं बताना चाहता हूं कि कौन सा है।
क्या यूनिक्स स्क्रीन सत्र के लिए एक विशेष नाम देने का कोई तरीका है? उदाहरण के लिए, मान लें कि मैं एक ही कार्यक्रम कई बार चला रहा हूं, प्रत्येक अलग-अलग मापदंडों के साथ और मैं बताना चाहता हूं कि कौन सा है।
जवाबों:
आप -S name
विकल्प के साथ इसे शुरू करते समय एक सत्र का नाम दे सकते हैं । एक रनिंग स्क्रीन के भीतर से, आप इसे टाइप करके बदल सकते हैं CTRL-a, :sessionname name
। आप साथ स्क्रीन सत्र चला रहे देख सकते हैं screen -ls
, और नाम के साथ एक से कनेक्ट कर सकते हैं screen -xS name
।
एकल स्क्रीन सत्र के भीतर, आप प्रत्येक विंडो को नाम भी दे सकते हैं। यह लिखकर करें CTRL-a, A
फिर आप जो नाम चाहते हैं। आप टाइप की गई खिड़कियों की इंटरेक्टिव सूची देख सकते हैं CTRL-a, "
, और उस सूची से स्विच करना चाहते हैं, जिसका चयन करें।
स्क्रीन के भीतर स्क्रीन और टर्मिनल दोनों का नामकरण वास्तव में यह याद रखने में मददगार है कि वे क्या हैं और आपने उन्हें पहले स्थान पर क्यों शुरू किया।
:sessionname NEWNAME
, लेकिन यह "आमतौर पर हतोत्साहित" है। $STY
वातावरण चर अभी भी मूल नाम को दर्शाता है। screen
मैनुअल देखें : gnu.org/software/screen/manual/html_node/Session-Name.html
यहाँ दो अवधारणाएँ हैं, और मुझे यकीन नहीं है कि आपके मन में कौन सी बात है:
C-a c
एक विंडो बनाता है, C-a n
और C-a p
अगली / पिछली विंडो पर स्विच करता है, और इसी तरह।-r
या -R
) के विकल्प के बिना स्क्रीन शुरू करना एक नया सत्र बनाता है।विंडोज़ के पास शीर्षक हैं, जिन्हें -t
कमांड लाइन विकल्प, C-a A
कुंजी बाइंडिंग, title
कमांड या \ek
एस्केप सीक्वेंस के माध्यम से सेट किया जा सकता है । देखें shellter का जवाब अधिक जानकारी के लिए।
सत्रों के नाम हो सकते हैं। आप आम तौर पर -S
विकल्प के साथ कमांड लाइन पर नाम सेट करेंगे ; यदि आप एक नाम निर्दिष्ट नहीं करते हैं, तो स्क्रीन एक बना देता है। यदि आप कई स्क्रीन सत्रों का उपयोग करते हैं, तो आप आमतौर पर उन्हें अलग-अलग सत्र नाम देंगे। आप के साथ चल रहे स्क्रीन सत्र को सूचीबद्ध कर सकते हैं screen -ls
; प्रत्येक सत्र लाइन पर पहला शब्द है 12345.sessionname
जहां 12345 स्क्रीन प्रोसेस आईडी है। अपने नाम या प्रक्रिया आईडी के माध्यम से संकेतित सत्र का उपयोग करना screen -r sessionname
या screen -r 12345
फिर से शुरू करना।
आह ... स्क्रीन, यह मुझे वापस लेता है ;-)
एक खिड़की के लिए
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
आपके .screenrc से शुरू किए गए उत्परिवर्ती सत्रों के लिए
screen -t top 2 nice top
screen -t ....
यहां स्क्रीन के लिए मैन-पेज की एक ऑन-लाइन कॉपी का लिंक दिया गया है ।
संपादित करें: जोड़ा गया
वर्तमान स्क्रीन नाम बदलने के लिए, शेल स्क्रिप्ट टूल बनाएं
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
बिना काम किए, मेरे पास उस सिस्टम पर स्क्रीन उपलब्ध नहीं है जिस पर मैं काम कर रहा हूं।
screen
कम से कम 25 साल लग गए हैं। मुझे वापस ले जाता है, क्योंकि अब यह एक विशेष उपयोग का मामला है जो मुझे ले जाएगा screen
। आम तौर पर मैं बस खोलना जारी रखता हूं X-Terms
, लेकिन मुझे याद है कि जब X
486 पीसी पर चलना असंभव लगता था ;-) चीयर्स!
ऊपर दिए गए उत्तर आपको पहले ही बता देते हैं कि स्क्रीन को नाम कैसे देना है जब आप इसे शुरू करते हैं। वे यह भी बताते हैं कि एक स्क्रीन को चालू करने के बाद उसका नाम नहीं बदला जा सकता है। विंडो शीर्षक सेट किया जा सकता है लेकिन स्क्रीन पर संलग्न करने के लिए उपयोग किया गया नाम pid.pty.host रहता है।
हालांकि, एक उपयोगी प्रभाव प्राप्त करने के लिए मैंने पाया है कि उपनाम का उपयोग करना बहुत अच्छी तरह से काम करता है। अगर मैं किसी स्क्रीन को नाम देना भूल जाता हूं या अपने आप को एक सत्र में स्क्रीन के झुंड के साथ पाता हूं जो स्वाभाविक रूप से विशेष कार्यों के लिए स्क्रीन बन गए हैं तो मैं बस उन्हें संलग्न करने के लिए कमांड के लिए एक उपनाम सेट करता हूं।
उदाहरण:
alias goncompile='screen -r 2354'
अपने आप से उपनाम आदेश जारी करना आपको याद दिलाएगा कि आपके पास कौन सी स्क्रीन हैं और आपके द्वारा उन्हें संलग्न करने के लिए आपके द्वारा निर्धारित की गई कमांड।
unalias
उन्हें हटाने के लिए उपयोग करें ।