खोज…


PS1 शीघ्र बदलें

PS1 को बदलने के लिए, आपको बस PS1 शेल चर का मान बदलना होगा। मान को डिस्ट्रो पर निर्भर करते हुए ~/.bashrc या /etc/bashrc फ़ाइल में सेट किया जा सकता है। PS1 को किसी भी सादे पाठ में बदला जा सकता है जैसे:

PS1="hello "

सादे पाठ के अलावा, कई बैकस्लैश-बच गए विशेष वर्ण समर्थित हैं:

स्वरूप कार्य
\a एक ASCII घंटी चरित्र (07)
\d "साप्ताहिक माह की तारीख" प्रारूप में दिनांक (उदाहरण के लिए, "26 मई को")
\D{format} प्रारूप को स्ट्रैफ़टाइम (3) में पारित किया जाता है और परिणाम शीघ्र स्ट्रिंग में डाला जाता है; खाली प्रारूप के परिणामस्वरूप स्थानीय-विशिष्ट समय प्रतिनिधित्व होता है। ब्रेस की आवश्यकता होती है
\e एक ASCII भागने चरित्र (033)
\h पहले तक होस्टनाम। '
\H होस्टनाम
\j वर्तमान में शेल द्वारा प्रबंधित नौकरियों की संख्या
\l शेल के टर्मिनल डिवाइस के नाम का बेसनेम
\n नई पंक्ति
\r कैरिज रिटर्न
\s शेल का नाम, $ 0 का आधार (अंतिम स्लैश के बाद का भाग)
\t 24-घंटे में वर्तमान समय HH: MM: SS प्रारूप
\T 12-घंटे HH: MM: SS प्रारूप में वर्तमान समय
\@ 12-घंटे / दोपहर प्रारूप में वर्तमान समय
\A 24-घंटे HH: MM प्रारूप में वर्तमान समय
\u वर्तमान उपयोगकर्ता का उपयोगकर्ता नाम
\v बैश का संस्करण (जैसे, 2.00)
\V बैश की रिहाई, संस्करण + पैच स्तर (जैसे, 2.00.0)
\w वर्तमान वर्किंग डायरेक्टरी, $ HOME के साथ संक्षिप्त रूप में
\W मौजूदा वर्किंग डायरेक्टरी का बेसनेम, $ होम के साथ एक टिल्ड के साथ संक्षिप्त है
\! इस आदेश की इतिहास संख्या
\# इस कमांड की कमांड संख्या
\$ यदि प्रभावी यूआईडी 0 है, तो #, अन्यथा एक $
\nnn* वर्ण अष्टक संख्या nnn के अनुरूप है
\ एक बैकस्लैश
\[ गैर-मुद्रण वर्णों का एक क्रम शुरू करें, जिसका उपयोग टर्मिनल नियंत्रण अनुक्रम को संकेत में एम्बेड करने के लिए किया जा सकता है
\] गैर-मुद्रण वर्णों के अनुक्रम को समाप्त करें

उदाहरण के लिए, हम PS1 को निम्न पर सेट कर सकते हैं:

PS1="\u@\h:\w\$ "

और यह उत्पादन होगा:

उपयोगकर्ता @ मशीन: ~ $

PROMPT_COMMAND का उपयोग करके एक git शाखा दिखाएं

यदि आप git रिपॉजिटरी के एक फ़ोल्डर के अंदर हैं, तो आपके द्वारा वर्तमान शाखा को दिखाना अच्छा हो सकता है। ~/.bashrc या /etc/bashrc में निम्नलिखित जोड़ें (कार्य करने के लिए यह आवश्यक है):

function prompt_command {
    # Check if we are inside a git repository
    if git status > /dev/null 2>&1; then
        # Only get the name of the branch
        export GIT_STATUS=$(git status | grep 'On branch' | cut -b 10-)
    else
        export GIT_STATUS=""
    fi
}
# This function gets called every time PS1 is shown
PROMPT_COMMAND=prompt_command

PS1="\$GIT_STATUS \u@\h:\w\$ "

अगर हम git रिपॉजिटरी के अंदर एक फोल्डर में हैं तो यह आउटपुट होगा:

शाखा उपयोगकर्ता @ मशीन: ~ $

और अगर हम एक सामान्य फ़ोल्डर के अंदर हैं:

उपयोगकर्ता @ मशीन: ~ $

टर्मिनल प्रॉम्प्ट में git शाखा का नाम दिखाएं

आपके पास PS1 चर में कार्य हो सकते हैं, बस इसे उद्धृत करने के लिए सुनिश्चित करें या विशेष वर्णों के लिए भागने का उपयोग करें:

gitPS1(){
    gitps1=$(git branch 2>/dev/null | grep '*')
    gitps1="${gitps1:+ (${gitps1/#\* /})}"
    echo "$gitps1"
}

PS1='\u@\h:\w$(gitPS1)$ '

यह आपको इस तरह से एक संकेत देगा:

user@Host:/path (master)$ 

टिप्पणियाँ:

  • ~/.bashrc या /etc/bashrc या ~/.bash_profile या ~./profile फ़ाइल (OS के आधार पर) में परिवर्तन करें और इसे सहेजें।
  • फ़ाइल को सहेजने के बाद source ~/.bashrc (डिस्ट्रो विशिष्ट) चलाएँ।

टर्मिनल प्रॉम्प्ट में समय दिखाएं

timeNow(){
    echo "$(date +%r)"
}
PS1='[$(timeNow)] \u@\h:\w$ '

यह आपको इस तरह से एक संकेत देगा:

[05:34:37 PM] user@Host:/path$ 

टिप्पणियाँ:

  • ~/.bashrc या /etc/bashrc या ~/.bash_profile या ~./profile फ़ाइल (OS के आधार पर) में परिवर्तन करें और इसे सहेजें।
  • फ़ाइल को सहेजने के बाद source ~/.bashrc (डिस्ट्रो विशिष्ट) चलाएँ।

टर्मिनल प्रॉम्प्ट को अनुकूलित और अनुकूलित करें

इस तरह से लेखक अपने व्यक्तिगत PS1 चर को सेट करता है:

gitPS1(){
    gitps1=$(git branch 2>/dev/null | grep '*')
    gitps1="${gitps1:+ (${gitps1/#\* /})}"
    echo "$gitps1"
}
#Please use the below function if you are a mac user
gitPS1ForMac(){
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
timeNow(){
    echo "$(date +%r)"
}
if [ "$color_prompt" = yes ]; then
  if [ x$EUID = x0 ]; then
    PS1='\[\033[1;38m\][$(timeNow)]\[\033[00m\] \[\033[1;31m\]\u\[\033[00m\]\[\033[1;37m\]@\[\033[00m\]\[\033[1;33m\]\h\[\033[00m\] \[\033[1;34m\]\w\[\033[00m\]\[\033[1;36m\]$(gitPS1)\[\033[00m\] \[\033[1;31m\]:/#\[\033[00m\] '
  else
    PS1='\[\033[1;38m\][$(timeNow)]\[\033[00m\] \[\033[1;32m\]\u\[\033[00m\]\[\033[1;37m\]@\[\033[00m\]\[\033[1;33m\]\h\[\033[00m\] \[\033[1;34m\]\w\[\033[00m\]\[\033[1;36m\]$(gitPS1)\[\033[00m\] \[\033[1;32m\]:/$\[\033[00m\] '
  fi
else
    PS1='[$(timeNow)] \u@\h \w$(gitPS1) :/$ '
fi

और इस तरह मेरा संकेत दिखता है: यहाँ छवि विवरण दर्ज करें

रंग संदर्भ:

# Colors
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m'   # Black - Background
bakred='\e[41m'   # Red
badgrn='\e[42m'   # Green
bakylw='\e[43m'   # Yellow
bakblu='\e[44m'   # Blue
bakpur='\e[45m'   # Purple
bakcyn='\e[46m'   # Cyan
bakwht='\e[47m'   # White
txtrst='\e[0m'    # Text Reset

टिप्पणियाँ:

  • ~/.bashrc या /etc/bashrc या ~/.bash_profile या ~./profile फ़ाइल (OS के आधार पर) में परिवर्तन करें और इसे सहेजें।

  • root आपको /etc/bash.bashrc या /root/.bashrc फाइल को एडिट करना /root/.bashrc सकता है

  • फ़ाइल को सहेजने के बाद source ~/.bashrc (डिस्ट्रो विशिष्ट) चलाएँ।

  • नोट: यदि आपने ~/.bashrc में परिवर्तन सहेजे हैं, तो अपने ~/.bash_profile में source ~/.bashrc जोड़ना याद रखें ताकि PS1 में यह परिवर्तन हर बार टर्मिनल आवेदन शुरू होने पर रिकॉर्ड किया जाएगा।

पिछली कमांड रिटर्न स्थिति और समय दिखाएं

कभी-कभी हमें पिछली कमांड की वापसी की स्थिति को इंगित करने के लिए एक दृश्य संकेत की आवश्यकता होती है। निम्नलिखित स्निपेट इसे PS1 के सिर पर रखते हैं।

ध्यान दें कि __stat () फ़ंक्शन को हर बार एक नया PS1 उत्पन्न होने पर कॉल किया जाना चाहिए, अन्यथा यह आपके .bashrc या .bash_profile के अंतिम आदेश की वापसी स्थिति से चिपक जाएगा।

# -ANSI-COLOR-CODES- #
Color_Off="\033[0m"
###-Regular-###
Red="\033[0;31m"
Green="\033[0;32m"
Yellow="\033[0;33m"
####-Bold-####

function __stat() {
    if [ $? -eq 0 ]; then
        echo -en "$Green ✔ $Color_Off "
    else
        echo -en "$Red ✘ $Color_Off "
    fi
}

PS1='$(__stat)'
PS1+="[\t] "
PS1+="\e[0;33m\u@\h\e[0m:\e[1;34m\w\e[0m \n$ "

export PS1

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



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow