`स्क्रीन` की छिपी विशेषताएं


31

चूंकि मैं पूरे दिन * nix कमांड काscreen उपयोग करता हूं , और मुझे यह प्रश्न शुरू करने वाला कोई नहीं मिला, मुझे लगा कि इसे शुरू किया जाना चाहिए। आप इस कवायद को जानते हैं: सामुदायिक विकि, सुविधाओं के प्रति एक उत्तर ताकि हम सभी मतदान कर सकें।


5
स्क्रीन इतनी उपयोगी है कि यह सभी साइटों पर है: stackoverflow.com/questions/70614/gnu-screen-survival-guide
Zac थॉम्पसन

जवाबों:


31

मुझे धारावाहिक कंसोल से कनेक्ट करने के लिए इसका उपयोग करना पसंद है , अर्थात

screen /dev/ttyS0 19200

यह कमांड बस सीरियल पोर्ट 0 (ttyS0) से 19200 की बॉड स्पीड के साथ कनेक्शन खोलता है


यह मेरी पसंदीदा चीजों में से एक है, लोगों को बाहर निकालने के लिए, वास्तव में स्क्रीन की कम से कम अपेक्षित सुविधाओं में से एक
महाकाव्य 9x 14'09

1
और वास्तव में मेरे पसंदीदा में से एक। मुझे यह पता चलने पर कैंडी स्टोर में एक छोटे से बच्चे की तरह, से निपटने, या कॉन्फ़िगर करने, मिनिकॉम, कॉन्सवर, आदि से निपटने की कोई आवश्यकता नहीं है।
स्कॉट पैक

बिल्कुल - स्क्रीन सेशन खुला होना अच्छा है, दो विंडो में विभाजित करें, जिसमें दोनों USB-सीरियल डोंगल दिखाई दे रहे हैं।
डॉटविफल

10

screenब्योबू की सबसे अच्छी विशेषता (पूर्व में स्क्रीन-प्रोफाइल) जो उबंटू के बाद से डिफ़ॉल्ट रूप से जयंती के साथ आती है: https://launchpad.net/byobu

यह बहुत अच्छी चूक, स्टेटस नोटिफिकेशन और उपयोगी कीबोर्ड शॉर्टकट (यानी नई स्क्रीन के लिए f2, प्रचलित / अगले आदि के लिए f3-f4) के साथ एक कॉन्फ़िगरेशन मैनेजर है

मैं वास्तव में अब इसके बिना कहीं नहीं जाना :)


10

केटामस के एम्सर से: एक से अधिक व्यक्ति एक ही स्क्रीन का उपयोग कर सकते हैं, अर्थात यदि आपका कोई दोस्त sshआपके कंप्यूटर में है, तो वह आपकी स्क्रीन से जुड़ सकता है। यह बहुत अच्छा है जब दो या तीन लोग एक ही प्रोजेक्ट पर काम कर रहे हैं।


1
यह उन रिमोट सपोर्ट उपयोगकर्ताओं के लिए बहुत बेहतर है जो अपना काम कर रहे हैं, और यदि वे अच्छे नहीं हैं तो अपने सत्र को मार सकते हैं!
टॉम ओ'कॉनर

6

बिल्कुल नहीं "छिपी हुई विशेषता"; लेकिन ठीक से सेटअप .screenrc फ़ाइल अंतर की दुनिया बना सकती है। वहाँ बेहतर उदाहरणों में से एक googling screenrc और 'ब्रैड सिम' द्वारा पाया जा सकता है - उसके पास टिंकर के लिए एक उत्कृष्ट फ़ाइल है।

उसने कहा, मेरी पसंदीदा सेटिंग बिन्दी होगी:

# bind F7  to detach screen session from this terminal
# bind F8  to kill current screen window.
# bind F9  to create a new screen
# bind F10 to rename current screen window
# bind F11 to move to previous window
# bind F12 to move to next window
bindkey -k k7 detach
bindkey -k k8 kill
bindkey -k k9 screen
bindkey -k k; title
bindkey -k F1 prev
bindkey -k F2 next

2
यह देखते हुए कि ctrl + a का उपयोग अक्सर स्क्रीन के बाहर किया जाता है (किसी को भी मारना शुरू करना?) मुझे यह पसंद है।
स्कॉट पैक

1
ctrl + a / ctrl + e कर्सर को हिलाने के लिए, लेकिन यह भी जब minicom एक स्क्रीन में चल रहा हो। Ctrl + a, विकल्पों के लिए ओ ...
पेट्रस

6

मुझे याद नहीं है कि मैंने इसे किससे चुराया है (dotfile.org पर)। मैंने इसे ssh के लिए थोड़ा संशोधित किया है:

#!/bin/sh
# scr - Runs a command in a fresh screen
#
# Get the current directory and the name of command

wd=`pwd`
cmd=$1
shift

# We can tell if we are running inside screen by looking
# for the STY environment variable.  If it is not set we
# only need to run the command, but if it is set then
# we need to use screen.

if [ -z "$STY" ]; then
        $cmd $*
else
        # Screen needs to change directory so that
        # relative file names are resolved correctly.
        screen -X chdir $wd

        # Ask screen to run the command
        if [ $cmd == "ssh" ]; then
                screen -X screen -t ""${1##*@}"" $cmd $*
        else
                screen -X screen -t "$cmd $*" $cmd $*
        fi
fi

फिर मैंने निम्नलिखित बैश उपनाम सेट किए:

vim() {
        scr vim $*
}

man() {
        scr man $*
}

info() {
        scr info $*
}

watch() {
        scr watch $*
}

ssh() {
        scr ssh $*
}

यह उपरोक्त उपनामों के लिए एक नई स्क्रीन खोलता है और यदि ssh का उपयोग करता है, तो यह ssh hostname के साथ स्क्रीन शीर्षक का नाम बदल देता है।

चीयर्स z0mbix


: ओ। क्या आपने इसे उठाया और मुझसे अनुकूलित किया? gist.github.com/137214
VxJasonxV

नहीं, मुझे लगता है कि यह एक last.fm स्टाफ सदस्य से था जो एक बार इसके बारे में ब्लॉगर करता है।
z0mbix

4

एक चीज जो मुझे उपयोगी लगती है वह यह है कि स्क्रीन आपके टर्मिनल की तुलना में बड़ी चौड़ाई का अनुकरण कर सकती है। मुझे यह उपयोगी लगता है अगर मैं lessवास्तविक लॉग फ़ाइलों का उपयोग कर रहा हूं , और मैं नहीं चाहता कि लाइनें लपेटें। का उपयोग करते हुए:

Ctrl-A:width -w 999

मैं screenअपने टर्मिनल की तुलना में व्यापक होने के लिए सेट कर सकता हूं और lessरैप नहीं कर सकता।


10
FYI करें, कम विकल्प -sइसे लाइनों को लपेटने के लिए नहीं बताएगा। आप लाइनों को स्क्रॉल Leftऔर उपयोग कर सकते हैं Right
मिकीबी

4

स्क्रीन शुरू करते समय -ethat के साथ नियंत्रण कुंजी को बदलने की क्षमता। मैं इसका इस्तेमाल करता हूं इसलिए मैं एक-दूसरे के अंदर स्क्रीन सेशन कर सकता हूं। उदाहरण: "स्क्रीन -e ^ w ^ x" नियंत्रण कुंजी ctr-w बनाता है।


2

एक अच्छी सुविधा: आप backtickकैप्शन में प्रदर्शन के लिए अतिरिक्त जानकारी में खींचने के लिए उपयोग कर सकते हैं । उदाहरण के लिए, मेरे पास एक स्क्रिप्ट है जो विभिन्न फ़ोल्डरों में नए मेल काउंट्स की एक-लाइन सारांश का उत्पादन करती है, और मुझे नीचे की पंक्ति में दिखाई देता है यदि मेरा स्क्रीन सत्र होस्टनाम के साथ एक कॉन्फ़िगरेशन के साथ होता है जो इस तरह दिखता है:

backtick 1 15 15 /home/waltermundt/bin/newmail

caption always
caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"

कुंजी% 1` बिट है, जो कि बैकटिक जॉब 1 के आउटपुट को संदर्भित करता है।

(मैं hardstatusxterm शीर्षक स्ट्रिंग के रूप में उपयोग करता हूं और इसे अलग तरीके से सेट करता हूं , इस प्रकार captionइसके बजाय का उपयोग होता है hardstatus alwayslastline।)


2

"छिपी हुई" सुविधा नहीं है, लेकिन किसी अन्य सक्रिय उपयोगकर्ता के साथ स्क्रीन सत्र साझा करने की क्षमता बहुत उपयोगी है।

एक्सेस कंट्रोल परमिशन और यूजर नेम मैनेजमेंट सहित स्क्रीन शेयरिंग सेट करने के जटिल तरीके हैं। सहकर्मियों के साथ मैं जो अक्सर करता हूं वह बहुत जल्दी और गंदा होता है:

  1. नई विंडो में विचाराधीन मशीन में लॉग इन करें।
  2. किसी को भी मेरे टर्मिनल पर लिखने की अनुमति दें: chmod 777 $(tty)
  3. उनके खाते में सुडो: sudo su <username>
  4. उनकी स्क्रीन साझा करें: screen -x <session>

इसके लिए किसी अग्रिम कॉन्फ़िगरेशन या पासवर्ड साझा करने की आवश्यकता नहीं है।


1

थोड़ी सी चीट शीट मैंने अपने लिए छपवाई है;

(नोट: सब कुछ पहले से है Ctrl-A)

A: एक विंडो का नाम बदलें   
"" खिड़कियों की एक सूची दिखाते हैं   
डी: बाधा सत्र

और screen -D -Rचल रहे सत्र को फिर से शुरू करने और फिर से लिखने के लिए (यदि आप किसी तरह अपने सत्र तक पहुंच खो देते हैं)।

इनमें से कोई भी वास्तव में छिपी हुई विशेषताएं नहीं हैं, लेकिन ये ऐसी विशेषताएँ हैं जो मुझे सबसे अधिक उपयोगी लगती हैं।


1

यह एक मुख्य विशेषता है, लेकिन निश्चित रूप Ctrl-A:से स्क्रीन पर सीधे बात करना सबसे अच्छा है । : screen -t title ssh hostnameआदि।

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