टर्मिनल प्रॉम्प्ट में टाइमस्टैम्प जोड़ना?


53

मैं सोच रहा था कि क्या टर्मिनल प्रॉम्प्ट में टाइमस्टैम्प जोड़ना संभव है, और यदि हां, तो मैं इसे कैसे प्राप्त कर सकता हूं?


सिंक में चल रही घड़ी को प्रदर्शित करने के लिए इस लिंक की जाँच करें
मन '

जवाबों:


60

इस लाइन को ~/.bashrcफाइल में जोड़ें :

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

तो आउटपुट कुछ इस तरह होगा:

[07:00:31] user@name:~$

कभी-कभी मैं अनुभव करता हूं कि समय सही नहीं है और पुराना है, जैसे किसी प्रकार की देरी है। हालांकि मैं यह देखने के लिए उपयोग कर सकता हूं कि कुछ निश्चित आदेश कितने समय तक लगते हैं (ग्रंट ..)। ऐसे कैसे हो सकता है?
केविन सिम्पर

2
@ devav2: क्या समयक्षेत्र को निर्दिष्ट करने का कोई तरीका है?
हिप्पो

क्या कोई तरीका है जब आप रूट का उपयोग करते समय टर्मिनल पर समय की मुहर जोड़ सकते हैं? मेरे पास केवल समय की मोहर है जब मैं एक सामान्य उपयोगकर्ता हूं। धन्यवाद
Yufenyuy Veyeh Dider

4
के लिए dateआदेश, आप बदल सकते हैं +%H:%M:%Sके साथ +%T
Snapfractalpop

5
यह मेरे टर्मिनल रैपिंग के साथ खराब हो गया था, इसलिए मैंने इसके बजाय यहां विस्तृत दृष्टिकोण का उपयोग किया। यह सिर्फ अपने PS1 में '\ D {% T}' जोड़ रहा है
rbennett485

25

मेरा समाधान http://bashrcgenerator.com/ का उपयोग करके .bashrc में डालने के लिए इस PS1 लाइन को बनाने के लिए किया गया था:

export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"

जो दिखेगा

13:05:54 [chad@work-laptop:~/Downloads]$ ls -al

PROMPT_COMMAND का उपयोग मेरे लिए इतिहास को गड़बड़ कर देता है। जब इतिहास के माध्यम से साइकिल चलाते समय एक लंबी लाइन आती है, तो यह शीघ्रता के अंत से कट जाता है, जैसे कि टाइमस्टैम्प जो सामने से जोड़ा गया था। जैसे

13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "

और इस पंक्ति को संपादित नहीं किया जा सकता है क्योंकि यह पात्रों को सही स्थान पर प्रदर्शित नहीं करता है, क्योंकि आप टाइप नहीं कर रहे हैं जहां यह दिखता है कि आप टाइप कर रहे हैं।

मुझे लगता है कि यह PROMPT_COMMAND के साथ किया जा सकता है, शायद उस [$ (tput sgr0)] भाग का उपयोग करके, लेकिन PS1 काम करता है।


यहाँ लिंक आगे के टिकटों को कस्टमाइज़ करने के लिए बढ़िया है।
cellepo

16

अपने आप को शीघ्र जोड़ने की तिथि जोड़ने के बजाय, आप अपने संकेत के ठीक पहले की तारीख को अपने शीर्ष पर निम्नलिखित पंक्ति में जोड़ सकते हैं .bashrc। इसके काम के लिए आपको इंस्टॉल करने की भी आवश्यकता होगी cowsay। यह जबकि एक रखने की तारीख को प्रदर्शित करने में एक मजेदार तरीका है लघु शीघ्र:

cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"

अपने वर्तमान स्वरूप में यह संशोधन के बिना किसी की प्रणाली पर काम करेगा क्योंकि यह वर्तमान वातावरण से $USERऔर dateचर को पढ़ता है।

यहाँ छवि विवरण दर्ज करें


8
इसे प्रॉम्प्ट में डालने का मतलब यह जानना है कि आखिरी बार जब आपने किसी विशिष्ट कमांड को निष्पादित किया था।
जेम्स ओल्टमंस

6

चूंकि मेरे पास इसे सुधारने के उत्तर के लिए एक टिप्पणी जोड़ने के लिए पर्याप्त प्रतिष्ठा अंक नहीं हैं। ऐसा लगता है कि जिस तरह से मैं जानकारी जोड़ सकता हूं वह केवल एक दूसरा उत्तर बनाने के लिए है। इसलिए, मैं उत्तर दूंगा कि उत्तर के रूप में कहा गया था और उस पर निर्माण किया गया था।

उस उपयोगकर्ता के लिए .bashrc फ़ाइल को संपादित करें जिसे आप तारीख के लिए संशोधित करना चाहते हैं।

यदि आप "उपयोगकर्ता @ होस्ट: ~ $" देखते हैं तो आप अपने वर्तमान उपयोगकर्ता के होम डायरेक्टरी में हैं। .Bashrc फ़ाइल एक छिपी हुई फ़ाइल है क्योंकि यह डॉट के साथ उपसर्ग करती है ""। इसे एक सूची में देखने के लिए आपको एक लंबी सूची का उपयोग करना होगा।

आप "ls -a" का उपयोग कर सकते हैं और फिर आपको ".bashrc" फ़ाइल देखनी चाहिए।

पाठ संपादक के साथ फाइल को संपादित करें। निर्वासन के लिए, "नैनो .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" या जो भी संपादक आप उपयोग करना चाहते हैं।

यदि आप इसे स्क्रिप्ट करना चाहते हैं और कई उपयोगकर्ताओं के लिए इसे कई गोले में जोड़ने पर योजना बना रहे हैं, तो यह "इको" कमांड को एपेंड ">>" ऑपरेटर के साथ मिलकर उपयोग करने के लिए फायदेमंद हो सकता है। उदाहरण के लिए,

echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc

यदि आप उस पद्धति का उपयोग करते हैं, तो सुनिश्चित करें कि आप उस उपयोगकर्ता की वर्तमान कार्यशील निर्देशिका में हैं जिसे आप इसके लिए संशोधित करना चाहते हैं। इसे जांचने के लिए आप "pwd" या वर्किंग डायरेक्टरी कमांड को प्रिंट कर सकते हैं।

यदि आपको "]" अंत ब्रैकेट और उपयोगकर्ता नाम के बीच अतिरिक्त स्थान पसंद नहीं है, तो उपयोगकर्ता इसे थोड़ा बहुत संशोधित रेगेक्स का उपयोग करें:

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"

यदि आप सीधे फ़ाइल को संपादित कर रहे हैं तो इसका उपयोग करें।


1
आप संपादन का सुझाव दे सकते हैं।
मूरू

4
export PROMPT_COMMAND=date

प्रत्येक प्रॉम्प्ट जारी करने से पहले तारीख को प्रिंट करता है।


1

अपने .bashrcमाध्यम से खोलें

vim ~/.bashrc

और फिर निम्नलिखित में जोड़ें .bashrc:

#PS1="[\A \u@\h \W\a]$" 

जहाँ \Aसमय के लिए है ( \Wकेवल पथ के अंत के लिए, यदि आप संपूर्ण वर्तमान निर्देशिका पथ चाहते हैं तो हटा दें)। फिर टाइप करें

source ~/.bashrc

आप कुछ इस तरह देखेंगे:

[16:04 trwood@cobalt04 ~/MCEq_dev]$

1
हटाने \Wसे कोई रास्ता नहीं दिखाई देगा। \wपूरा रास्ता देगा।
ज़न्ना

0

बस @ देवव 2 के उत्तर में जोड़ने के लिए:

एक आसान करने के लिए पढ़ा newbies के लिए गूंज आदेश होगा:

export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'

के बजाय

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

निर्यात के समय गूंज कमांड का मूल्यांकन नहीं किया जाता है, यह दोहरे उद्धरणों के बजाय शाब्दिक उद्धरण के लिए एकल उद्धरण का उपयोग करने के लिए अधिक समझ में आता है। पूरे कमांड को उद्धृत करने के लिए सिंगल कोट्स का उपयोग करना, फिर आपको इको कमांड में तर्क को उद्धृत करने के लिए दोहरे उद्धरण चिह्नों का उपयोग करने की अनुमति देता है , जैसे विशेष पात्रों से बचने की आवश्यकता को समाप्त करता है , [और$


1
पलायन का उपयोग स्वरूपण (कोष्ठक) के लिए किया जा रहा है। मैं यह नहीं देखता कि यह स्वीकृत उत्तर में
एल्डर गीक

आप उन्हें 'इको-एन "$ (दिनांक +% एच:% एम:% एस)" "भी जोड़ सकते हैं:' इको-एन" [$ (तारीख +% एच:% एम:% एस)] "" बिना उनसे बचने की जरूरत है। इको कमांड के लिए तर्क के रूप में एक स्ट्रिंग का उपयोग करने का लाभ यह है कि अब आपको बचने की आवश्यकता नहीं है जो अन्यथा मूल्यांकन योग्य है, जिससे इसे पढ़ना आसान हो जाता है।
qwertyzw

@ElderGeek मैंने और स्पष्टीकरण जोड़ा। मुझे आशा है कि वह मदद करेंगे।
qwertyzw

0

मुझे लगता है कि आगे बढ़ने का सही तरीका $HOME/.bashrcउन कोडों का पता लगाना है , जो PS1उन्हें टिप्पणी करते हैं और व्यक्तिगत जोड़ते हैं। यह उदाहरण के लिए मेरा ब्लॉक है:

PS1_DATE="\D{%Y-%m-%d %H:%M:%S}"

if [ "$color_prompt" = yes ]; then
    PS1="[$PS1_DATE \[\e]0; \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\[\033[01;34m\]\w \[\033[00m\]\$] "
    #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='[$PS1_DATE ${debian_chroot:+($debian_chroot)}\w \$] '
    #PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

आउटपुट:

[2019-06-18 15:54:29 ~/Desktop $] echo "It's late!"

0

कमांड प्रॉम्प्ट में टाइमस्टैम्प दिखाने के लिए सबसे आसान सिंटैक्स शायद होगा:

    PS1='\D{%F} \t $...'

कहाँ पे

\D{format}दिनांक स्वरूपित है (देखें man bash, प्रोम्प्टिंग अनुभाग) के रूप में

%Fपूरी तारीख; % Y-% m-% d (देखें man date, FORMAT अनुभाग), और

\t24-घंटे HH में वर्तमान समय है: MM: SS प्रारूप (देखें man bash, जांच अनुभाग)

nano ~/.bashrc

जैसा कि ऊपर दिखाया गया है PS1 चर में परिवर्तन करें

source ~/.bashrc

0

मेरा समय cowsayउपरोक्त उत्तर के समान है । आपको nowअपना डालना होगा ~/.bashrcलेकिन आप इसे टर्मिनल से टाइप करके भी कह सकते हैं now

यहाँ एक स्क्रीनशॉट है:

now.png

बैश कोड को बहुत विस्तृत उत्तर में पोस्ट किया गया है:


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