यह सवाल मुझे कुछ दिनों से परेशान कर रहा है, और यहां मैंने अपने द्वारा सीखी गई सभी सामग्री के साथ अपनी संपादित पोस्ट दी है। विशेष रूप से, मेरा लक्ष्य BASH में संकेत देने के लिए बगल में घड़ी दिखाना था। अपने उत्तर में उल्लेख किए गए राडू रेडीनू की तरह, कुंजी एक फ़ंक्शन या चर खोजने के लिए है जो लगातार कमांड प्रॉम्प्ट को रिफ्रेश करने में सक्षम है या आपकी स्क्रीन के साथ या जो भी आप टाइप करते हैं, उसके बिना स्क्रीन को फिर से रिफ्रेश करने में सक्षम है। हालांकि, लूप के साथ इसे प्राप्त करना संभव है, जैसा कि G_P द्वारा दिखाया गया है, tput फ़ंक्शन के साथ स्क्रीन का निरंतर रिड्रेसिंग जो कुछ भी पाठ के साथ मेरी स्क्रीन पर है उसे तुरंत ताज़ा करता है। मैं प्राप्त करने के लिए काफी करीब आ गया हूँ, जो ओपी ने कोड G_P को कुछ हद तक संशोधित करके पूछा था, लेकिन फिर भी मेरा मानना है कि राडु का जवाब ओपी चाहता है के सबसे करीब है। आगे की हलचल के बिना, यहाँ कुछ चीजें मैं '
# 1, मेरा पसंदीदा समाधान: टर्मिनल मल्टीप्लेक्स
टर्मिनल मल्टीप्लेक्स एक सॉफ्टवेयर है जो टर्मिनल स्क्रीन को दो या अधिक स्क्रीन में विभाजित करने की अनुमति देता है। विशेष रूप से, मैं बायोबू टर्मिनल पर ध्यान आकर्षित करना चाहता हूं। यह टर्मिनल एमुलेटर आधारित है, जो आपको समय, सीपीयू प्रतिशत, मेमोरी और अन्य संकेतकों के पूरे समूह को दिखाने की अनुमति देता है। मेरे बायोबू टर्मिनल के स्क्रीनशॉट में आप सीपीयू तापमान, बैटरी प्रतिशत, इंटरनेट कनेक्शन गुणवत्ता, सीपीयू आवृत्ति, रैम, तिथि और निश्चित समय देख सकते हैं। यदि आप टर्मिनल में रहते हुए इन चीजों की लगातार निगरानी से जुड़े हैं, तो बायोबू जाने का रास्ता है। वास्तव में, मुझे यह इतना पसंद आया है, मैंने इसे टैटी में लॉगिन करते समय स्वचालित रूप से लोड करने के लिए सेट किया है। केवल quirk यह है कि tty में आप वास्तव में अलग विंडो को मर्ज नहीं कर सकते हैं - केवल F3 और F4 कुंजी के साथ टैब के बीच स्विच करें।
मल्टीप्लेक्सिंग विंडो से युक्त एक वैकल्पिक समाधान का उपयोग होता है splitvt
, जो स्क्रीन को दो भागों में विभाजित करता है। आप एक टर्मिनल घड़ी चला सकते हैं जैसे कि tty-clock
, तारीख के साथ घड़ी कमांड का उपयोग करें, या आप एक स्क्रिप्ट के साथ खुद को कोड कर सकते हैं। उस पर और बाद में। स्क्रीनशॉट में आप शीर्ष पर सामान्य बैश प्रॉम्प्ट के साथ विभाजन के एक हिस्से को देख सकते हैं, और निचले हिस्से में आप एक स्क्रिप्ट को चालू देख सकते हैं, जो date
कमांड के साथ clear
कमांड के आउटपुट को लगातार ताज़ा करता है ।
# 2, जबकि डू लूप और टुटू
यह संभवतः उस व्यक्ति के लिए निकटता है जिसने प्रश्न पूछा था जिसे बैश के साथ लागू किया गया था।
G_P ने while do
और tput
कमांड्स को मिलाकर एक शानदार समाधान पोस्ट किया है । हालाँकि G_P के कोड में दो चीजें थीं जो मुझे पसंद नहीं थीं। एक, घड़ी प्रॉम्प्ट के दाईं ओर थी, और दो - क्योंकि स्लीप साइकल 1 सेकंड है (मूल कोड जहां इसे स्लीप कहते हैं) का संदर्भ लें, स्क्रीन को हर सेकंड फिर से तैयार किया जाता है, और इससे मेरा आउटपुट गड़बड़ हो जाता है। मैंने जो किया, वह है कि अपने बैश प्रॉम्प्ट को \ n ऑपरेटर के साथ एक लाइन लोअर संपादित करें और G_P का कोड बदलें, ताकि tput ऑपरेटर घड़ी को प्रॉम्प्ट के ठीक ऊपर स्थित कर सके, और हर 60 सेकंड में रिफ्रेश कर सके; यह मुझे घंटों और मिनटों को देखने की अनुमति देता है (और मैं बिल्कुल मिनटों की परवाह नहीं करता हूं), जबकि घड़ी का लूप मेरी स्क्रीन को गड़बड़ नहीं करता है। सबसे पहले, यहाँ मेरा संकेत है:
PS1='${debian_chroot:+($debian_chroot)}\n[*\u@Ubuntu*]\n $(date) :\w\$ '
और यहां G_P का संशोधित कोड है: enter code here
while sleep 60;do tput sc;tput cup 0 0;date +%R;tput rc;done &
छोटा संपादन : मैंने देखा है कि ऊपर दिया गया यह कोड कभी-कभी घड़ी को तुरंत ऊपर नहीं लाता है। यहां एक बेहतर संस्करण है: while true; do tput sc;tput cup 0 0;date +%R;tput rc; sleep 60; done &
यह एक जगह पहले स्क्रीन पर देखता है, फिर बैश को 60 सेकंड के नींद चक्र के माध्यम से जाने देता है
ध्यान दें, tput कप 0 0 स्क्रीन के ऊपरी दाएं कोने में, मेरे प्रॉम्प्ट के ठीक ऊपर घड़ी होती है और नींद 60 सेकंड के नींद चक्र को 60 सेकंड में बदल देती है, क्योंकि इस तरह से मैं हर सेकंड के बजाय केवल घंटे और मिनट की निगरानी कर सकता हूं। इस तरह, स्क्रीन पर मेरे पास जो भी टेक्स्ट है वह प्रभावित नहीं हुआ है, अधिकांश भाग के लिए (केवल जब मैं कमांड को उसी समय क्लॉक रिफ्रेश चलाने के लिए होता है)।
PS1 लाइन पहले से ही आपके .bashrc प्रोफ़ाइल में है, इसलिए आपको बस इसे थोड़ा ट्विक करने की आवश्यकता है। जबकि लूप को उसी फ़ाइल में कहीं जोड़ा जाना चाहिए, अधिमानतः अंत में # टिप्पणी के साथ कि यह आपके द्वारा शुरू में जोड़ा गया सामान है। और हमेशा किसी भी फाइल को वापस करने के लिए मत भूलना जैसे कि बस आप बुबू बनाते हैं और जिस तरह से यह था, उस पर वापस जाने की आवश्यकता है।
# 3, स्क्रिप्टिंग और अन्य
यह हिस्सा केवल उन लोगों के लिए है जो समय देखना चाहते हैं। जो लोग इसे लगातार मॉनिटर करना चाहते हैं, उनके लिए # 1 और # 2 पसंदीदा विकल्प हैं।
तो जैसा कि हम पहले ही देख चुके हैं जबकि लूप काफी उपयोगी है। यहां बताया गया है कि आप लूप, डेट और स्लीप कमांड के साथ घड़ी कैसे बना सकते हैं।
हिट रिटर्न / एंटर करें, और आप मूल रूप से हर सेकंड क्लीयर स्क्रीन पर दिखाए गए डेट कमांड का आउटपुट देखेंगे। यदि आप हर बार वह सब टाइप नहीं करना चाहते हैं, तो इस सारे सामान को स्क्रिप्ट में बदल दें:
#!/bin/bash
while true
do
clear;date
sleep 1
done
अब आप उस स्क्रिप्ट को दूसरे में काम करते हुए बैश के एक उदाहरण में स्प्लिट के साथ चला सकते हैं।
एक अन्य समाधान watch -n1 date
कमांड है, जो लगातार 1 सेकंड की अवधि के साथ तारीख कमांड को निष्पादित करेगा।
निष्कर्ष में: मैंने इस प्रश्न का उत्तर खोजने की कोशिश करते हुए कुछ चीजें सीखी हैं, और मुझे आशा है कि मेरे निष्कर्षों ने आपको किसी तरह से मदद की, और मुझे आशा है कि मैं इस प्रश्न पर योगदान करने में सक्षम था। बायोबू टर्मिनल IMHO सबसे अच्छा समाधान है, लेकिन खुद के लिए तय करें, कुछ शोध करें, और जो भी आपके लिए सबसे अच्छा काम करता है उसे चुनें।
शोध करते समय कुछ चीजें जो मुझे मिली हैं:
मेरी मूल पोस्ट, न्यूनतर समाधान: अपनी ~ / .bashrc फ़ाइल को संपादित करें। मैं इसे नैनो के साथ संपादित करना पसंद करता हूं, इसलिए
nano ~/.bashrc
यहां मेरी अपनी संपादित फ़ाइल का भाग है:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\$'
else
# PS1='${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]:\w\$ '
PS1='${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]\t:\w\$ '
fi
दूसरे कथन के बाद पहली पंक्ति के साथ # टिप्पणी की गई है (यह मेरा पुराना संकेत है), अब दूसरी पंक्ति वह है जिसे आप चाहते हैं, और विशेष रूप से \t
ऑपरेटर। यह 24 घंटे के प्रारूप में चलने का समय दर्शाता है। अधिक जानकारी के लिए इसे देखें । एक छोटे से नोट के अलावा, मैं सामान का उपयोग कर रहा हूँ, क्योंकि मैं रंगीन संकेत का उपयोग नहीं कर रहा हूँ।
पुनश्च: कृपया मुझे बताएं कि क्या मुझे अपने उत्तर में कुछ भी जोड़ना चाहिए या इसे किसी भी तरह से संपादित करना चाहिए, लेकिन अधिकांश भाग के लिए मेरा मानना है कि यह सबसे निर्णायक उत्तर है जिसके साथ मैं आ सकता हूं, और कम से कम मैं व्यक्तिगत रूप से कुछ भी नहीं जोड़ूंगा इसके लिए नया है।
$PS1
(शीघ्र) चर सेट करने में सक्षम हो सकते हैं , लेकिन यदि परिवर्तन हो तो मुझे यकीन नहीं है।