टर्मिनल और एसएसएच पर रंगों को अक्षम करें


11

मेरी स्थानीय लिनक्स मशीन में इस तरह रंगीन टर्मिनल आउटपुट हैं;

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

जब मैं एक pfSense / BSD बॉक्स के लिए SSH यह इस तरह रंग बदलता है;

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

यहां तक ​​कि जब मैं एक मशीन से एसएसएच करता हूं जिसमें रंगीन स्थानीय टर्मिनल आउटपुट नहीं होता है, और वहां से एसएसएच इस pfSense / FreeBSD बॉक्स में यह रंगीन आउटपुट को सक्षम करता है, और अवांछित रंगीन आउटपुट / का उत्पादन शुरू करता है

क्या कुछ ऐसा है जो मैं स्थानीय रूप से बदल सकता हूं ताकि जब मैं अपने स्थानीय मशीन से या एक मध्यस्थ मशीन के माध्यम से pfSense बॉक्स में एसएसएच करूं, तो मेरा ग्राहक दूरस्थ रंग सेटिंग्स की उपेक्षा करेगा। आदर्श रूप से मैं केवल काले और सफेद, दो टोन मानक पृष्ठभूमि और पाठ रंग में रहना चाहता हूं?


आप किस टर्मिनल एप्लिकेशन का उपयोग कर रहे हैं?
gertvdijk

1
यहां मैं मिंट लिनक्स 13 चला रहा हूं, इसलिए यह Xfce Terminal Emulator 0.4.8 है।
jwbensley

मुझे पता है कि यह वह नहीं है जो आप पूछ रहे हैं, लेकिन क्या आपने काले रंग की पृष्ठभूमि पर अपनी टर्मिनल सेटिंग्स को सफेद [या हल्के ग्रे] पाठ में बदलने पर विचार किया है? यह मूल रंग योजना है जिसे अधिकांश चीजों के साथ काम करने के लिए डिज़ाइन किया गया है। या आप रिमोट मशीन (शायद .bash_profile) पर अपनी त्वरित सेटिंग्स बदल सकते हैं ताकि बेहतर रंग या कोई रंग न हो।
रैंडम 832 15

1
आम तौर पर मैं TERM=xterm-mono ssh user@hostदूरस्थ वातावरण में उस सेटिंग को प्राप्त करने के लिए कुछ करता हूं ।
ott--

जवाबों:


7

आपके टर्मिनल में रंग दिखाई देते हैं क्योंकि रंग बदलने के लिए अपने टर्मिनल को बताने के लिए tty ANSI-एन्कोडेड नियंत्रण अनुक्रम भेजता है। कुछ, यदि अधिकांश टर्मिनल एप्लिकेशन को इसे अनदेखा करने के लिए कॉन्फ़िगर नहीं किया जा सकता है और बस एक रंग में सभी पाठ प्रदर्शित करते हैं।

में xterm, आप -cmविकल्प का उपयोग कर सकते हैं । कोनो कंसोल के लिए, सभी रंगों की मैपिंग को एक ही में बदल सकते हैं। आपके XFCE टर्मिनल एप्लिकेशन के समान विकल्प हो सकते हैं।


यह उत्तर कुछ मामलों में मदद कर सकता है, लेकिन यह वास्तव में एक उत्तर नहीं है। जैसा कि उल्लेख किया गया है "आपके टर्मिनल में रंग दिखाई देते हैं क्योंकि ट्टी ANSI-एन्कोडेड नियंत्रण अनुक्रम भेजता है जो आपके टर्मिनल को रंग बदलने के लिए कहता है"। जैसा कि SSH TTY प्रदान कर सकता है, SSH के लिए रंगों की अनदेखी करना भी संभव होना चाहिए। किसी भी विचार यह कैसे किया जाता है?
१०:१० बजे

SSH को वास्तव में tty पर डेटा के साथ हस्तक्षेप करने के लिए डिज़ाइन नहीं किया गया है। SSH एक चैनल स्थापित करता है जिस पर आप इसे चला सकते हैं, मुझे नहीं लगता कि इसे उस चैनल पर डेटा को बदलने में कभी भी शामिल होना चाहिए । यह, हालांकि, संदर्भ और मेटाडेटा प्रदान करता है, जैसे कि ऐसे चैनल के सेटअप समय के दौरान क्लाइंट से सर्वर तक पर्यावरण चर कौन से हैं।
gertvdijk

7

TERMचर को कुछ प्रविष्टि में बदलना जो संगत है लेकिन रंग समर्थन नहीं है काम कर सकता है। पसंद:

TERM=xterm-old

मूल रूप से, आपको TERMFreeBSD सिस्टम टर्मपेक या टर्मोफो डेटाबेस द्वारा ज्ञात की आवश्यकता है जिसके लिए TERM=the-term tput colorsएक सकारात्मक संख्या नहीं लौटती है , और GNU ls के लिए, जिसके लिए dircolors -p | grep -x 'TERM the-term'कुछ भी नहीं लौटता है। यह अभी भी उन अनुप्रयोगों के लिए काम नहीं कर सकता है जो आउटपुट रंग से बचते हैं, चाहे टर्मिनल इसका समर्थन करने का दावा करता है या नहीं।

वैकल्पिक रूप से, आप screenरंगों को निष्क्रिय करने के लिए GNU का उपयोग कर सकते हैं , जैसे (zsh वाक्य रचना):

screen -c =(printf %s\\n "termcapinfo * 'AF=\E[1m:AB=\E[7m'") ssh ...

यह अग्रभूमि रंग सेट करने के लिए हर प्रयास के लिए बोल्ड को सक्षम करेगा और पृष्ठभूमि को सेट करने के प्रत्येक प्रयास के लिए रिवर्स होगा

मुझे लगता है कि यह सब इस तथ्य से उबलता है कि FreeBSD मानता है कि टर्मिनल पृष्ठभूमि काली है (या कम से कम अंधेरा है)। जहां आप xtermइसके बजाय का उपयोग कर रहे हैं xfce-terminal, आप अलग-अलग रंग प्रोफाइल सेट करने के लिए पृष्ठभूमि और अग्रभूमि रंग और / या अलग-अलग रंगों को गतिशील रूप से बदल सकते हैं। यह पलायन अनुक्रमों के माध्यम से किया जाता है, लेकिन आप उस xtermcontrolकमांड का भी उपयोग कर सकते हैं जो इसे आसान बनाता है।


कोशिश की कि - मेरे लिए काम नहीं करता है। export TERM=vt100पूर्ववर्ती ls --colorअभी भी रंगीन आउटपुट दिखाता है।
gertvdijk

@gertvdijk अच्छी बात है। ऐसा लगता है कि GNU ls में एक बग है जो डिफ़ॉल्ट हार्ड कोड द्वारा vt100रंग समर्थन के साथ एक टर्मिनल के रूप में है। मैंने वह बदल दिया है, xterm-oldजिसमें वह समस्या नहीं है, लेकिन FreeBSD पर एक समाप्ति प्रविष्टि नहीं हो सकती है।
स्टीफन चेज़लस

खैर, यह अन्य कार्यक्रमों को रंग के आउटपुट से भी नहीं रोकता है - यानी byobu। मैं Ubuntu 12.04 btw पर हूँ।
gertvdijk

1
@gertvdijk। जैसा मैंने कहा। यह केवल अच्छी तरह से व्यवहार किए गए कार्यक्रमों के लिए काम करता है $TERMजो एस्केप सीक्वेंस को हार्डकोड करने के बजाय उपयोग करते हैं और टर्मकैप / टर्मोफ डेटाबेस (शाप या अन्य टर्मिनल एपीआई के माध्यम से)।
स्टीफन चेजेलस

ईओएफ के बाद टर्मिनल राज्य को बदल सकने वाले सभी एस्केप दृश्यों को हटाने के लिए मैं क्या उपयोग कर सकता हूं?
Janus Troelsen

2

इसे निकालने के लिए निम्न कमांड टाइप करें:

$ ls --color=none

या unaliasइसे हटाने के लिए उपयोग करें:

$ unalias ls

1
lsहालांकि यह सिर्फ कमद के लिए नहीं है ?
jwbensley

ls को "ls --color = tty" का नाम दिया गया है
Len

हाँ। मुझे पता है। लेकिन मेरे सभी टर्मिनल आउटपुट रंगीन आउटपुट हैं, न कि केवल lsकमांड, इसलिए मेरी पिछली टिप्पणी के अनुसार: क्या यह सिर्फ lsरंगीन आउटपुट का उत्पादन बंद करने के लिए नहीं है , बाकी सब अभी भी रंगीन होंगे?
jwbensley

हां केवल एलएस भाग
लेन

1
क्या आप xterm का उपयोग कर रहे हैं? xterm -cm
लेन

1

यदि आप अपने ~ / .bashrc को संशोधित नहीं करना चाहते हैं, तो मुझे यकीन है कि इसमें कुछ शामिल हैं export PS2=.....+colors......:

Linux कंसोल पर, TERM=linux-m1bया तो या TERM=linux-m2मोनोक्रोम को linux-m1b के लिए "ग्रे / व्हाइट / ब्लैक एंड डिम" या linux-m2 के लिए "ग्रीन / व्हाइट / ब्लैक एंड ब्लू" (विंटेज!) के रूप में प्राप्त करने का प्रयास करें ...

पोटीन के साथ (मैक उपयोगकर्ताओं के लिए एक बंदरगाह है), उपयोग करें TERM=putty-m1bऔर TERM=putty-m2इसके बजाय ...

यह वही करेगा जो आपको चाहिए लेकिन: आपको उसके लिए हाल ही में टर्मोफ डेटाबेस की आवश्यकता होगी या यदि आवश्यक हो तो वहां से प्राप्त करना होगा: wget http://canal.chez.com/linux.ti ; tic -x linux.ti

एलेक्स। पुनश्च: xterm- मोनो अब मौजूद नहीं है।


-1

सबसे पहले, अपने डिफ़ॉल्ट उपनाम की जाँच करें:

alias

alias ls-'ls --color=auto

अगर काम नहीं करता है और आपको एक त्वरित समाधान की आवश्यकता है। इस lsऔर awkपाइप की कोशिश करो :

vi /usr/local/bin/list
#!/bin/bash
ls $1
exit

परमिट सेट करें 744
इसके लिए एक सुरक्षित स्थान /usr/local/bin सुनिश्चित करें कि आपका पेटीएम शामिल हो /usr/local/bin

फिर से विवेक का उपयोग करें।

एक बात ... रंगों का मतलब होता है फ्लैग डाइरेक्टरीज़ ... ls="ls --color=auto"पत्तियों को केवल नामों से बंद करना ... ls -aFया ls -Fडायरेक्टरी नामों को जोड़ना होगा /। इसलिए मैं आपको सुझाव दूंगा कि आप जागरूक रहें। आप कर सकते हैं alias ls="ls -aF"या alias ls="ls -F"


2
यह प्रश्न मूल प्रश्न का उत्तर कैसे प्रदान करता है?
jwbensley

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