वे एएनएसआई से बचने के क्रम हैं ; यह लिंक रंग कोड के एक चार्ट के लिए है, लेकिन उस विकिपीडिया पृष्ठ पर अन्य दिलचस्प चीजें भी हैं। उनमें से सभी एक सामान्य लिनक्स कंसोल पर काम नहीं करते (जैसे)।
यह गलत है:
\033]00m\] # white
0
टर्मिनल को उसके डिफ़ॉल्ट पर रीसेट करता है (जो संभवतः सफेद है)। सफेद अग्रभूमि के लिए वास्तविक कोड 37 है। इसके अलावा, अंत में ( \]
भाग) बचे हुए ब्रेस रंग अनुक्रम का हिस्सा नहीं है (शीघ्र सेट करने में उनके उद्देश्य की व्याख्या के लिए नीचे कुछ अंतिम पैराग्राफ देखें)।
ध्यान दें कि कुछ GUI टर्मिनल आपको एक अनुकूलित रंग योजना निर्दिष्ट करने की अनुमति देते हैं। इससे आउटपुट प्रभावित होगा।
नहीं है यहाँ एक सूची है जो 7 अग्रभूमि और 7 पृष्ठभूमि रंग मैंने पहले नहीं देखा था कहते हैं, लेकिन वे काम करने के लिए लग रहे हैं:
# Foreground colors
90 Dark gray
91 Light red
92 Light green
93 Light yellow
94 Light blue
95 Light magenta
96 Light cyan
# Background colors
100 Dark gray
101 Light red
102 Light green
103 Light yellow
104 Light blue
105 Light magenta
106 Light cyan
इसके अलावा, यदि आपके पास 256 रंग का जीयूआई टर्मिनल है (मुझे लगता है कि उनमें से अधिकांश अब हैं), तो आप इस चार्ट से रंग लागू कर सकते हैं:
इन्हें चुनने के लिए एएनएसआई अनुक्रम, नीचे बाएं कोने में संख्या का उपयोग करते 38;5;
हुए अग्रभूमि और 48;5;
पृष्ठभूमि के लिए शुरू होता है , फिर रंग संख्या, इसलिए जैसे:
echo -e "\\033[48;5;95;38;5;214mhello world\\033[0m"
मुझे तन पर एक हल्का नारंगी देता है (मतलब, रंग चार्ट लगभग अनुमानित है)।
आप इस चार्ट 1 में रंग देख सकते हैं क्योंकि वे आपके टर्मिनल पर आसानी से दिखाई देंगे:
#!/bin/bash
color=16;
while [ $color -lt 245 ]; do
echo -e "$color: \\033[38;5;${color}mhello\\033[48;5;${color}mworld\\033[0m"
((color++));
done
आउटपुट स्व-व्याख्यात्मक है।
कुछ सिस्टम $ TERM वेरिएबल को सेट करते xterm-256color
हैं यदि आप 256 कलर टर्मिनल पर किसी शेल कोड के माध्यम से होते हैं /etc/profile
। दूसरों पर, आपको इसका उपयोग करने के लिए अपने टर्मिनल को कॉन्फ़िगर करने में सक्षम होना चाहिए। बता दें कि TUI एप्लिकेशन 256 रंग हैं, और आपको कुछ इस तरह जोड़ने की अनुमति देता है ~/.bashrc
:
if [[ "$TERM" =~ 256color ]]; then
PS1="MyCrazyPrompt..."
fi
खबरदार कि जब आप अपने प्रॉम्प्ट में कलर एस्केप सीक्वेंस का इस्तेमाल करते हैं, तो आपको उन्हें \
इस तरह से एस्कैप्ड ( उपसर्ग) स्क्वायर ब्रैकेट में संलग्न करना चाहिए :
PS1="\[\033[01;32m\]MyPrompt: \[\033[0m\]"
ध्यान दें कि [
रंग क्रम में आंतरिक भाग नहीं है, लेकिन संलग्नक हैं। उत्तरार्द्ध का उद्देश्य शेल को इंगित करना है कि संलग्न अनुक्रम प्रॉम्प्ट की चरित्र लंबाई की ओर नहीं गिना जाता है। यदि वह गिनती गलत है, तो अजीब चीजें तब होंगी जब आप इतिहास के माध्यम से वापस स्क्रॉल करेंगे, उदाहरण के लिए, यदि यह बहुत लंबा है, तो अंतिम स्क्रॉल स्ट्रिंग की अतिरिक्त लंबाई आपके प्रॉम्प्ट से जुड़ी होगी और आप बैकस्पेस में सक्षम नहीं होंगे यह (यह उसी तरह से नजरअंदाज कर दिया गया है)।
यह भी ध्यान दें कि यदि आप हर बार प्रॉम्प्ट का उपयोग करते हुए कमांड कमांड के आउटपुट को शामिल करना चाहते हैं (जैसा कि प्रॉम्प्ट सेट होने पर बस एक बार विरोध किया जाता है), तो आपको इसे सिंगल कोट्स के साथ शाब्दिक स्ट्रिंग के रूप में सेट करना चाहिए, जैसे:
PS1='\[\033[01;32m\]$(date): \[\033[0m\]'
हालांकि यह एक बहुत अच्छा उदाहरण नहीं है यदि आप बैश के विशेष \d
या \D{format}
शीघ्र भागने से खुश हैं - जो प्रश्न का विषय नहीं हैं, लेकिन इसके man bash
तहत पाया जा सकता है PROMPTING
। \w
वर्तमान निर्देशिका के लिए, \u
वर्तमान उपयोगकर्ता के लिए, आदि जैसे कई अन्य उपयोगी भाग हैं ।
1. इस चार्ट का मुख्य भाग, रंग 16 - 231 (ध्यान दें कि वे संख्यात्मक क्रम में नहीं हैं) 6 x 6 x 6 RGB रंग घन हैं। "कलर क्यूब" इस तथ्य को संदर्भित करता है कि एक आरजीबी रंग स्थान को तीन आयामी सरणी (लाल रंग के लिए एक अक्ष के साथ, हरे रंग के लिए एक, और नीले रंग के लिए एक) का उपयोग करके प्रतिनिधित्व किया जा सकता है। यहाँ घन में प्रत्येक रंग को 6 x 6 x 6 सरणी में निर्देशांक के रूप में दर्शाया जा सकता है, और चार्ट में सूचकांक इस प्रकार गणना की जाती है:
16 + R * 36 + G * 6 + B
चार्ट में सूचकांक 16 पर क्यूब में पहला रंग काला है (आरजीबी 0, 0, 0)। आप शेल स्क्रिप्ट में इस सूत्र का उपयोग कर सकते हैं:
#!/bin/sh
function RGBcolor {
echo "16 + $1 * 36 + $2 * 6 + $3" | bc
}
fg=$(RGBcolor 1 0 2) # Violet
bg=$(RGBcolor 5 3 0) # Bright orange.
echo -e "\\033[1;38;5;$fg;48;5;${bg}mviolet on tangerine\\033[0m"
\]
यहां अंतिम वास्तव में रंग अनुक्रम का हिस्सा नहीं है; यह विशेष रूप से संकेतों को स्थापित करने में एक उद्देश्य प्रदान करता है (मैंने इस बारे में अपने उत्तर के अंत में कुछ पैराग्राफ जोड़े हैं)। "यह अच्छा होगा यदि एक अधिक पठनीय रूप भी हो।" -> अपने जवाब में कट एन 'पेस्ट ऐसा करने का एक तरीका है।