कैसे करें: गनोम टर्मिनल में अंडरलाइन, बोल्ड, इटैलिक, स्ट्राइकथ्रू, रंग, पृष्ठभूमि और आकार?


58

कैसे करें: सूक्ति, बोल्ड, इटैलिक, स्ट्राइकथ्रू और ग्नोम टर्मिनल में रंग?

साहसिक

तिरछा

रेखांकित करना

s̶t̶r̶i̶k̶e̶ ̶i̶t̶ ̶l̶i̶k̶̶e̶ ̶i̶t̶s̶ ̶h̶o̶t

रंग

background

font <(इसके मोनो यदि आप नहीं बता सकते)

आकार


1
और वास्तव में क्या बदलना चाहते हैं? प्रांप्ट, आपके द्वारा दर्ज किया गया टेक्स्ट, आपके कमांड का आउटपुट?
राडू राईडेनू

निर्यात PS1 वास्तव में। हालांकि मैं इसे बुनियादी गूंज के लिए भी पसंद करूंगा।
अकीवा

1
यदि यह "बेहोश" का समर्थन करता है, तो मैं स्विच करूँगा। :(
जुरगेन ए। इरहर

जवाबों:


75

ANSI / VT100 टर्मिनल और टर्मिनल एमुलेटर केवल काले और सफेद पाठ प्रदर्शित करने में सक्षम नहीं हैं; वे रंगों को प्रदर्शित कर सकते हैं और क्रम से बचने के लिए धन्यवाद पाठ स्वरूपित कर सकते हैं। वे सीक्वेंस एस्केप कैरेक्टर (अक्सर "^ [" या "Esc" द्वारा दर्शाए गए) से बने होते हैं, इसके बाद कुछ अन्य कैरेक्टर होते हैं: "Esc [FormatCodem"।

बैश में, चरित्र को निम्नलिखित सिंटैक्स के साथ प्राप्त किया जा सकता है:

\e
\033
\x1B

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

कमांड (आसान कॉपी-पेस्ट के लिए):

echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"

स्रोत (सभी प्रकार के अग्रभूमि / पृष्ठभूमि रंग कोड सहित): http://misc.flogisoft.com/bash/tip_colors_and_formatting


मैंने आकार, फ़ॉन्ट और पृष्ठभूमि के लिए तीन और जोड़े। क्या ये संभव हैं?
अकीवा

1
@ अकिवा आप आसानी से पृष्ठभूमि का रंग बदल सकते हैं (समर्पित अनुभाग देखें )। आकार के बारे में, मुझे नहीं लगता कि यह संभव है। फ़ॉन्ट के लिए, एकमात्र सेटिंग एक वैश्विक gconf मान ( /apps/gnome-terminal/profiles/Default/font) है
सिल्वेन पिनेउ

1
@dashesy: en.wikipedia.org/wiki/ANSI_escape_code के अनुसार , 53 को ओवरलाइन करना चाहिए। लेकिन मेरे टर्मिनल में कुछ भी नहीं है।
सिल्वेन पिनेउ

1
@egmont मुझे याद है कि मैं इसे PS1(गनोम-टर्मिनल में वास्तव में) उपयोग करना चाहता था क्योंकि नीचे दिए गए पाठ में मिश्रित की तरह यह पढ़ने के लिए कठिन बना रहा है, और निश्चित रूप से हड़ताल के माध्यम से सिर्फ गलत लग रहा था। एक पंक्ति होने से पिछली कमांड्स को स्क्रॉल करने में मदद मिलेगी (जब रंग होता है)।
दशमी तिथि

1
@Dashesy धन्यवाद, यह वास्तव में एक बहुत अच्छा उपयोग मामला है :) ग्नोम-टर्मिनल प्रगति को यहां ट्रैक किया गया है
19

26

सिल्वेन के उत्तर का विस्तार करने के लिए, कुछ सहायक कार्य:

ansi()          { echo -e "\e[${1}m${*:2}\e[0m"; }
bold()          { ansi 1 "$@"; }
italic()        { ansi 3 "$@"; }
underline()     { ansi 4 "$@"; }
strikethrough() { ansi 9 "$@"; }
red()           { ansi 31 "$@"; }

फिर

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


20

कुछ जो अभी तक कवर नहीं किया गया है, वह दो या तीन मापदंडों का संयोजन है, जैसे बोल्ड और रेखांकित , पूर्वनिर्धारित रंग में। यह उदाहरण के लिए, 3-तरफा सिंटैक्स द्वारा प्राप्त किया जाता है:

~$ printf "\e[3;4;33mthis is a test\n\e[0m"

का कारण होगा "यह एक परीक्षण है" को पीले रंग ( 33m), इटैलिक ( 3m) और रेखांकित ( 4m) में मुद्रित किया जाना है ।
ध्यान दें कि हर बार दोहराना आवश्यक नहीं है \e[
ध्यान दें कि (सिल्वेन के समान) मैंने भी \e[0mहर बार सेटिंग्स रीसेट करने के लिए एक जोड़ा , क्योंकि अन्यथा पीले रंग और फ़ॉन्ट शैली टर्मिनल में सक्रिय रहेंगे! यह कहने की आवश्यकता नहीं है कि स्क्रिप्ट में रीसेट करने के लिए आपको इन पर पूरी तरह से नजर रखनी होगी, क्योंकि आपकी स्क्रिप्ट का उपयोग करने वाले उपयोगकर्ता इसे नापसंद कर सकते हैं यदि आपकी स्क्रिप्ट स्थायी रूप से टर्मिनल में उनके रंग + शैली सेटिंग्स को संशोधित करती है!


16

गनोम टर्मिनल 3.28 (वीटीई 0.52), उबंटू 18.04 एलटीएस में डेब्यू करते हुए, कुछ और स्टाइल के लिए सपोर्ट शामिल करता है जिसमें कर्ली और कलर्ड अंडरलाइन्स शामिल हैं, जैसा कि किट्टी में देखा गया है, जैसा कि कोनसोल में देखा गया है, और आखिर में सभी को बहुत ज्यादा पसंद या हेट ब्लिंक विशेषता भी मिलती है।

ये स्वचालित रूप से किसी भी अन्य VTE- आधारित टर्मिनल एमुलेटर (जैसे कि टेलेक्स, टर्मिनेटर, Xfce4- टर्मिनल, गाइड) आदि में काम करते हैं, यह देखते हुए कि VTE कम से कम 0.52 संस्करण में है।

यहां मानक एस्केप अनुक्रमों के साथ-साथ GNOME टर्मिनल (VTE) के परिवर्धन को दर्शाने वाली एक सूची दी गई है। ध्यान दें कि हर शुरुआती अनुक्रम के लिए, मैं केवल उस संपत्ति के समापन अनुक्रम को दिखा रहा हूं, बजाय सामान्य \e[mया \e[0mजो सभी विशेष मोड को अक्षम करता है।

echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (new in 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (new in 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (new in 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (new in 0.52)\e[4:0m'
echo -e '\e[5mblink (new in 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (new in 0.52)\e[55m'

echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (new in 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'

echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (new in 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'

echo -e '\e[21m\e[58:5:42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (new in 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'

(*) अंडरलाइन के लिए Truecolor मान थोड़ा अनुमानित हैं।

और थोड़ा अजीब है जो इस तस्वीर में बिल्कुल फिट नहीं है, क्योंकि यह एक शैली की तुलना में अधिक कार्यक्षमता है, फिर भी शायद यहां ध्यान देने योग्य है, हाइपरलिंक समर्थन iTerm2 के साथ सह-डिज़ाइन किया गया है, जो गनोम टर्मिनल 3.26 (VTE 0.50) के बाद से उपलब्ध है :

echo -e '\e]8;;http://askubuntu.com\e\\hyperlink\e]8;;\e\\'

यहाँ एक स्क्रीनशॉट परिणाम प्रदर्शित करता है: सूक्ति-टर्मिनल में प्रतिपादन 3.28


2
परिणाम का एक स्क्रीनशॉट बहुत प्यारा होगा, हममें से जिनके पास ये गनोम-टर्मिनल / वीटीई संस्करण नहीं हैं।
मारियस गेदमिनस

@ मार्गीगेडमिनस ने किया।
२०:०५ पर एंगमॉन्ट

बहुत बढ़िया जवाब! इन सभी को इकट्ठा करने के लिए समय निकालने के लिए धन्यवाद! मुझे आश्चर्य है कि अगर वे iTerm2 पर काम करते हैं (शीघ्र ही खुद के लिए जाँच करने की कोशिश करेंगे ...)
filbranden

2

इन हार्ड-कोडित अनुक्रमों को प्रतिस्थापित करें:

tput smul # set underline
tput rmul # remove underline

tput smso # set bold on
tput rmso # remove bold

tput setaf 1 #red
tput setaf 2 #green
...
tput cup 0 0 # move to pos 0,0

इन आदेशों के पूर्ण विवरण के लिए "मैन टर्मोफ़" और "मैन टुट" का संदर्भ लें।

उदाहरण :

function f_help { c_green=$(tput setaf 2 2>/dev/null) c_reset=$(tput sgr0 2>/dev/null) c_bold=$(tput smso 2>/dev/null) echo "${c_bold}DESCRIPTION${c_reset} : .... ${c_green}My green text${c_reset}My plain text" }

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