क्यों xterm 256 रंग (xterm-256color नहीं) प्रदर्शित करता है?


11

क्या कोई इसे समझा सकता है? मैं उपयोग कर रहा हूं gnome-terminal। सबसे पहले, कुछ जानकारी:

# echo $TERM
xterm

# infocmp xterm
Reconstructed via infocmp from file: /lib/terminfo/x/xterm
colors#8, cols#80, it#8, lines#24, pairs#64

# tput colors
8

मैंने रंगों के विस्तारित सेट के लिए कोड बनाने के लिए सरल स्क्रिप्ट लिखी:

# Output file (current directory) and text.
OFILE='xterm256_colors_test.sh'
OFILE_COLORS='terminal_256_colors'
OTEXT='Sed ut perspiciatis unde omnis iste natus error sit voluptatem...'

# Clearing the contents from previous runs.
if [ -e $OFILE ] || [ -e $OFILE_COLORS ]
then
  > $OFILE
  > $OFILE_COLORS
fi

# Bang!
echo -e '#!/bin/bash\n' | tee --append $OFILE $OFILE_COLORS &> /dev/null
echo -e "\necho -e \"" | tee --append $OFILE &> /dev/null

# \x1b is a control character changing behaviour of the shell.
# It is also the <Ctrl+V><Esc> sequence.
for i in {016..255}; do
  echo -e "\x1b[38;5;${i}m $OTEXT $i \x1b[0m" >> $OFILE
  echo -e "color${i}=\"\[\033[38;5;${i}m\]\"" >> $OFILE_COLORS
done

# End of echo.
echo '"' | tee --append $OFILE &> /dev/null

# The file should be executable.
chmod +x $OFILE

मूल xtermटर्मिनल एमुलेटर के बावजूद जब मैं उत्पन्न स्क्रिप्ट चलाता हूं तो मैं सभी 240 रंगों को देख सकता हूं। क्यों? मैंने सोचा कि मैं बदलना चाहिए $TERMकरने के लिए xterm-256colorपहले।

जवाबों:


18

TERMवातावरण चर एक तरीका है कि आप, उपयोगकर्ता, कार्यक्रमों बता सकते है (जैसे, emacs, grep, less, ls, और vim) क्या टर्मिनल वे, पर चल रहे हैं तो वे इसके मापदंडों पता चलेगा कि कौन क्षमताओं यह है और क्या शामिल है, की तरह भागने दृश्यों वे उन्हें एक्सेस करने के लिए जारी करने की आवश्यकता है। यह मौजूद है क्योंकि यह बहुत कठिन है, सामान्य तौर पर, सॉफ़्टवेयर के लिए यह स्वयं निर्धारित करने के लिए (और यह बहुत असंभव था जब उपयोगकर्ता टर्मिनलों के माध्यम से कंप्यूटर के साथ हस्तक्षेप करते थे जो बाहरी थे, और केवल डेटा केबल द्वारा कंप्यूटर से जुड़ा था)।

gnome-terminalएक ऐसा प्रोग्राम है जो उपयोगकर्ता को टर्मिनल जैसी सेवाएं प्रदान करता है और वे प्रोग्राम जो उपयोगकर्ता टर्मिनल के भीतर चलते हैं।  gnome-terminalपर्यावरण के चर के बारे में पता हो सकता है जो इसके वातावरण में सेट किए गए थे , इससे पहले कि इसे लागू किया गया था ( DISPLAYस्पष्ट उदाहरण होने के नाते), लेकिन इसे पर्यावरण चर का ज्ञान नहीं है जो कि इसके तहत चल रही प्रक्रियाओं में निर्धारित हैं।

इसलिए, gnome-terminalइसके पास जो भी क्षमताएं हैं। यह बाहरी रूप से समायोजित / स्थिर करने के लिए संभव हो सकता है, उदाहरण के लिए, कमांड-लाइन विकल्पों के माध्यम से, पूर्व-मौजूदा वातावरण, कॉन्फ़िगरेशन फ़ाइलें और विंडो फ़्रेम में संवाद, लेकिन विंडो TERMमें शेल में परिवर्तन करके नहीं । यदि यह 256 रंगों को प्रदर्शित करने में सक्षम है, तो यह 256 रंगों को प्रदर्शित करने में सक्षम है, और आप इसे उचित एस्केप अनुक्रम भेजकर ऐसा करने में सक्षम होंगे। लेकिन, जब तक आपने TERMसेट किया है xterm, तब तक आपके द्वारा चलाए जाने वाले प्रोग्राम यह मान लेंगे कि आप उन्हें बता रहे हैं कि वे आठ-रंग-सक्षम टर्मिनल में चल रहे हैं, और इसलिए वे उन क्षमताओं के लिए उनके अनुरोध (एस्केप सीक्वेंस) को प्रतिबंधित कर देंगे । आपको सक्षम TERMकरने के लिए सेट करने की आवश्यकता हैxterm-256colorgnome-terminal256 रंगों को प्रदर्शित करने के लिए, लेकिन जैसे कार्यक्रमों को बताना grepऔर 8 से अधिक रंगों का उपयोग करने के lsलिए कहना


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