मुझे $ PS1 चर के लिए पूर्ण संदर्भ कहां मिल सकता है?


20

मेरी मशीन पर डिफ़ॉल्ट PS1 चर (कुबंटु 13.10) यह है:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

मैं एक संदर्भ के लिए देख रहा हूं कि $ PS1 चर कैसे काम करता है, कम से कम, मुझे उपरोक्त PS1 चर को समझने की अनुमति देता है।


@ RaduRădeanu मैंने इसे एक अलग उत्तर में स्थानांतरित कर दिया है।
मार्क रेमंड

एक सामान्य नोट के रूप में, आप PS1एक टर्मिनल में मान सेट करके इसके साथ खेल सकते हैं , उदा PS1="How r u, \u?"। परिवर्तन केवल तब तक चलेगा जब तक आप टर्मिनल बंद नहीं करते।
djvg

संबंधित: askubuntu.com/a/984073/301745
wjandrea

जवाबों:


24

संदर्भ

अब तक, बैश प्रॉम्प्ट में जाने वाली हर चीज के लिए एक भी संदर्भ नहीं है - लेकिन जैसा कि यह एक विशेषता है जो दशकों से विकसित हुई है और शायद डिस्ट्रो से डिस्ट्रो में भिन्न होती है, शायद यह पूछने के लिए बहुत अधिक है। मैंने संक्षेप में बताने की कोशिश की है कि मुझे यहां सबसे अधिक उपयोगी क्या मिला।

यह कैसे- सबसे पूर्ण है, लेकिन बहुत लंबा और जुआ है। अधिक उपयोगी वर्गों में से कुछ:

  • धारा 2.4 और 2.5 PS1 की स्थापना की मूल बातें समझाते हैं, जिसमें (प्रिंट करने योग्य) एस्केप अक्षर भी शामिल हैं।
  • धारा 3.4 बताती है कि क्यों \[और \]आवश्यक हैं।
  • धारा 6 सभी मुख्य (गैर-प्रिंट करने योग्य) एस्केप अनुक्रमों का वर्णन करती है, जिन्हें आप उपयोग करना चाहते हैं, जिसमें प्रॉम्प्ट का रंग सेट करना और एक xterm विंडो का शीर्षक शामिल है।

यह मार्गदर्शिका बताती है कि ${}सामान्य रूप से बैश में कैसे काम किया जाता है, और यह उबंटू प्रश्न पूछते हैं कि यह कैसे काम करता है, इसके बारे में थोड़ा और बताते हैं debian_chroot

उन लोगों के बीच, मुझे लगता है कि डिफ़ॉल्ट Ubuntu PS1 चर में हर चरित्र को समझाया गया है।

उबंटू प्रॉम्प्ट की व्याख्या

प्रॉम्प्ट के तीन भाग हैं:

  • \[\e]0;\u@\h: \w\a\] एक xterm विंडो का शीर्षक बार सेट करता है:

    • \[ गैर-मुद्रण योग्य वर्णों का एक भाग शुरू करता है
    • \e]0; 'सेट xterm शीर्षक' के लिए भागने का क्रम है (मेरा मानना ​​है कि 0 के अलावा अन्य संख्याएँ अन्य xterm गुण सेट करेंगी, हालाँकि मैंने कोई परीक्षण नहीं किया है)
    • \u@\h: \wउपयोग करने के लिए शीर्षक (नीचे देखें \u, \hऔर \w)
    • \a शीर्षक का अंत
    • \] गैर-मुद्रण योग्य वर्णों के अंत को चिह्नित करता है
  • ${debian_chroot:+($debian_chroot)}अगर $ debian_chroot सेट है, तो कोष्ठक में $ debian_chroot के मान का विस्तार होता है। $ Debian_chroot के बारे में अधिक जानकारी के लिए यह प्रश्न देखें ।
  • \u@\h:\w\$ शीघ्र ही है:

    • \u वर्तमान उपयोगकर्ता नाम पर फैलता है
    • \h मौजूदा होस्टनाम में फैलता है
    • \w वर्तमान कार्य निर्देशिका में फैलता है
    • \$#जड़ के लिए और $अन्य सभी उपयोगकर्ताओं के लिए फैलता है

6

साथ अनुसार बैश संदर्भ मैनुअल , PS1है:

प्राथमिक शीघ्र स्ट्रिंग। डिफ़ॉल्ट मान है \s-\v\$। प्रदर्शित होने से पहले विस्तारित होने वाले एस्केप दृश्यों की पूरी सूची के लिए, एक प्रॉम्प्ट को नियंत्रित करना देखें PS1

कुछ अन्य अच्छे संदर्भ हो सकते हैं:


बैश मैनुअल पूरी तरह से PS1 एस्केप सीक्वेंस का वर्णन करता है: gnu.org/software/bash/manual/bashref.html#Printing-a-Prompt
ग्लेन जैकमैन

@Radu - धन्यवाद, मुझे इससे पहले जो मिला है, उससे अधिक मुझे मिला है। अभी भी बहुत कम जानकारी है कि क्या अंदर जा सकता है \[और \]हालांकि, क्या आपके पास इसके लिए कोई संदर्भ है?
मार्क रेमंड

@MarkRaymond यह दो लिंक है कि मैं तुम्हें दे दी है (में विस्तार से बताया है एक तत्काल मुद्रण और PS1 शीघ्र लिनक्स / यूनिक्स के लिए समझाया ): \[- गैर मुद्रण वर्ण, जो शीघ्र में एक टर्मिनल नियंत्रण अनुक्रम एम्बेड करने के लिए इस्तेमाल किया जा सकता का एक क्रम शुरू हो; \]- गैर-मुद्रण वर्णों के अनुक्रम को समाप्त करें। बस अपना समय ले लो और ध्यान से पढ़ें;)
राडु रियडेनु

हाँ, मैंने पढ़ा है कि - मैं के एक संदर्भ के लिए देख रहा था क्या उन गैर-मुद्रण वर्ण है। क्षमा करें यदि मैं स्पष्ट नहीं था!
मार्क रेमंड


5

ss64.com मुझे मिला सबसे अच्छा संदर्भ लगता है।

यह निम्नलिखित चर की व्याख्या करता है:

\d   The date, in "Weekday Month Date" format (e.g., "Tue May 26"). 

\h   The hostname, up to the first . (e.g. deckard) 
\H   The hostname. (e.g. deckard.SS64.com)

\j   The number of jobs currently managed by the shell. 

\l   The basename of the shell's terminal device name. 

\s   The name of the shell, the basename of $0 (the portion following 
    the final slash). 

\t   The time, in 24-hour HH:MM:SS format. 
\T   The time, in 12-hour HH:MM:SS format. 
\@   The time, in 12-hour am/pm format. 

\u   The username of the current user. 

\v   The version of Bash (e.g., 2.00) 

\V   The release of Bash, version + patchlevel (e.g., 2.00.0) 

\w   The current working directory. 
\W   The basename of $PWD. 

\!   The history number of this command. 
\#   The command number of this command. 

\$   If you are not root, inserts a "$"; if you are root, you get a "#"  (root uid = 0) 

\nnn   The character whose ASCII code is the octal value nnn. 

\n   A newline. 
\r   A carriage return. 
\e   An escape character. 
\a   A bell character.
\\   A backslash. 

\[   Begin a sequence of non-printing characters. (like color escape sequences). This
     allows bash to calculate word wrapping correctly.

\]   End a sequence of non-printing characters.

\[ ... \]गैर मुद्रण वर्ण की एक श्रृंखला को परिभाषित करता है। उन्हें कर्सर की स्थिति पर सही तरीके से नज़र रखने की आवश्यकता होती है।

\eआपके शीघ्र शुरू होता है में एक एस्केप अनुक्रम। यहाँ उन पर अधिक (उस पृष्ठ पर "Esc" \eअनुक्रम देखें)।

  • नोट: मैंने वास्तव में भागने के दृश्यों को कभी पसंद नहीं किया है। tputआपके लिए एस्केप कोड प्राप्त करने के लिए उपयोग करें ।

${debian_chroot:+($debian_chroot)}पैरामीटर विस्तार है। यहाँ देखें

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