चूंकि मैं पूरे दिन * nix कमांड काscreen
उपयोग करता हूं , और मुझे यह प्रश्न शुरू करने वाला कोई नहीं मिला, मुझे लगा कि इसे शुरू किया जाना चाहिए। आप इस कवायद को जानते हैं: सामुदायिक विकि, सुविधाओं के प्रति एक उत्तर ताकि हम सभी मतदान कर सकें।
चूंकि मैं पूरे दिन * nix कमांड काscreen
उपयोग करता हूं , और मुझे यह प्रश्न शुरू करने वाला कोई नहीं मिला, मुझे लगा कि इसे शुरू किया जाना चाहिए। आप इस कवायद को जानते हैं: सामुदायिक विकि, सुविधाओं के प्रति एक उत्तर ताकि हम सभी मतदान कर सकें।
जवाबों:
मुझे धारावाहिक कंसोल से कनेक्ट करने के लिए इसका उपयोग करना पसंद है , अर्थात
screen /dev/ttyS0 19200
यह कमांड बस सीरियल पोर्ट 0 (ttyS0) से 19200 की बॉड स्पीड के साथ कनेक्शन खोलता है
screen
ब्योबू की सबसे अच्छी विशेषता (पूर्व में स्क्रीन-प्रोफाइल) जो उबंटू के बाद से डिफ़ॉल्ट रूप से जयंती के साथ आती है: https://launchpad.net/byobu
यह बहुत अच्छी चूक, स्टेटस नोटिफिकेशन और उपयोगी कीबोर्ड शॉर्टकट (यानी नई स्क्रीन के लिए f2, प्रचलित / अगले आदि के लिए f3-f4) के साथ एक कॉन्फ़िगरेशन मैनेजर है
मैं वास्तव में अब इसके बिना कहीं नहीं जाना :)
केटामस के एम्सर से: एक से अधिक व्यक्ति एक ही स्क्रीन का उपयोग कर सकते हैं, अर्थात यदि आपका कोई दोस्त ssh
आपके कंप्यूटर में है, तो वह आपकी स्क्रीन से जुड़ सकता है। यह बहुत अच्छा है जब दो या तीन लोग एक ही प्रोजेक्ट पर काम कर रहे हैं।
बिल्कुल नहीं "छिपी हुई विशेषता"; लेकिन ठीक से सेटअप .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
मुझे याद नहीं है कि मैंने इसे किससे चुराया है (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
एक चीज जो मुझे उपयोगी लगती है वह यह है कि स्क्रीन आपके टर्मिनल की तुलना में बड़ी चौड़ाई का अनुकरण कर सकती है। मुझे यह उपयोगी लगता है अगर मैं less
वास्तविक लॉग फ़ाइलों का उपयोग कर रहा हूं , और मैं नहीं चाहता कि लाइनें लपेटें। का उपयोग करते हुए:
Ctrl-A:width -w 999
मैं screen
अपने टर्मिनल की तुलना में व्यापक होने के लिए सेट कर सकता हूं और less
रैप नहीं कर सकता।
-s
इसे लाइनों को लपेटने के लिए नहीं बताएगा। आप लाइनों को स्क्रॉल Left
और उपयोग कर सकते हैं Right
।
एक अच्छी सुविधा: आप 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 के आउटपुट को संदर्भित करता है।
(मैं hardstatus
xterm शीर्षक स्ट्रिंग के रूप में उपयोग करता हूं और इसे अलग तरीके से सेट करता हूं , इस प्रकार caption
इसके बजाय का उपयोग होता है hardstatus alwayslastline
।)
"छिपी हुई" सुविधा नहीं है, लेकिन किसी अन्य सक्रिय उपयोगकर्ता के साथ स्क्रीन सत्र साझा करने की क्षमता बहुत उपयोगी है।
एक्सेस कंट्रोल परमिशन और यूजर नेम मैनेजमेंट सहित स्क्रीन शेयरिंग सेट करने के जटिल तरीके हैं। सहकर्मियों के साथ मैं जो अक्सर करता हूं वह बहुत जल्दी और गंदा होता है:
chmod 777 $(tty)
sudo su <username>
screen -x <session>
इसके लिए किसी अग्रिम कॉन्फ़िगरेशन या पासवर्ड साझा करने की आवश्यकता नहीं है।
थोड़ी सी चीट शीट मैंने अपने लिए छपवाई है;
(नोट: सब कुछ पहले से है Ctrl-A)
A: एक विंडो का नाम बदलें "" खिड़कियों की एक सूची दिखाते हैं डी: बाधा सत्र
और screen -D -R
चल रहे सत्र को फिर से शुरू करने और फिर से लिखने के लिए (यदि आप किसी तरह अपने सत्र तक पहुंच खो देते हैं)।
इनमें से कोई भी वास्तव में छिपी हुई विशेषताएं नहीं हैं, लेकिन ये ऐसी विशेषताएँ हैं जो मुझे सबसे अधिक उपयोगी लगती हैं।
यह एक मुख्य विशेषता है, लेकिन निश्चित रूप Ctrl-A:से स्क्रीन पर सीधे बात करना सबसे अच्छा है । : screen -t title ssh hostname
आदि।