Bash
अनुरूपण PS1
खोज…
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