কোথায় TERM পরিবেশ পরিবর্তনশীল ডিফল্ট সেট করা হয়?


26

আমি যখন ডেস্কটপ জিইউআই-তে জিনোম টার্মিনাল এমুলেটর সহ একটি টার্মিনাল উইন্ডো খুলি তখন শেলের TERM পরিবেশের পরিবর্তনশীল মানটি ডিফল্ট হয় xterm

আমি ব্যবহার করেন তাহলে CTL+ + ALT+ + F1সুইচ করার জন্য একটি কনসোল পির TTY উইন্ডোতে এবং echo $TERMকোনো মানে সেট করা linux

জিজ্ঞাসা করার জন্য আমার অনুপ্রেরণা হ'ল যে আমার ~/.bashrcফাইলের ভিতরে কোনও রঙের শেল সরবরাহ করা হয় বা কেবল ভাল পুরানো ফ্যাশনযুক্ত একরঙা নির্ধারণের জন্য একটি পরিবর্তনশীল ব্যবহৃত হয়।

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

কনসোল শেল এবং জিনোম টার্মিনাল এমুলেটর শেল উভয় ক্ষেত্রে যদি আমি টাইপ করি

export TERM=xterm-color
source /.bashrc

উভয় শাঁস রঙ মোডে পরিবর্তিত হয় (এমন কিছু যা আমি উভয় ক্ষেত্রে সবসময়ই করতে চাই)।

TERMদয়া করে ডিফল্ট মানগুলি কোথায় সেট হয়ে যায় এবং যদি সম্ভব হয় তবে তাদের ডিফল্টগুলি পরিবর্তন করার জন্য সেরা স্থানটি কোথায়? ডিফল্ট TERM মান নির্বাচন বা সেট করতে টার্মিনাল এমুলেটর জিইউআই তে কিছুই নেই।

আমি export TERM=xterm-colorআমার ~/.bashrcফাইলের শীর্ষে কেবল লাইন যুক্ত করার বিষয়টি বিবেচনা করেছি কিন্তু আমার অন্ত্র প্রবৃত্তিটি এটি সেরা সমাধান নয় এবং আমার গুগল অনুসন্ধানগুলি এখনও আমাকে একটি উত্তরের জবাব দেয়নি।

আমি উবুন্টু 15.04 ডেস্কটপ সংস্করণ (ডেবিয়ান ভিত্তিক) চালাচ্ছি।


সম্পর্কিত: unix.stackexchange.com/questions/9957/…
thom_nic

উত্তর:


17

নির্ভর করে প্রচুর জায়গায়

ভার্চুয়াল টার্মিনাল এবং রিয়েল টার্মিনালগুলিতে, TERMপরিবেশ পরিবর্তনশীল প্রোগ্রাম দ্বারা সেট করা হয় যা চেইন করে login, এবং ইন্টারেক্টিভ শেলটি সমস্তভাবে উত্তরাধিকার সূত্রে প্রাপ্ত হয় যা একবার লগইন করার পরে কার্যকর হয়। যেখানে, স্পষ্টতই, এটি ঘটে থাকে সিস্টেম থেকে অন্য সিস্টেমে এবং টার্মিনালের ধরণ অনুসারে।

রিয়েল, সিরিয়াল, টার্মিনালগুলি তারের অন্য প্রান্তে থাকা অনুসারে টাইপ করতে পারে। সুতরাং প্রচলিতভাবে gettyপ্রোগ্রামটি আর্গুমেন্টের সাথে আহ্বান করা হয় যা টার্মিনাল ধরণের নির্দিষ্ট করে বা TERMকোনও পরিষেবা পরিচালকের পরিষেবা কনফিগারেশন ডেটা থেকে প্রোগ্রামটি পাস করে ।

  • ভ্যান স্মোরেনবার্গ initসিস্টেমে, কেউ এটিকে /etc/inittabএন্ট্রিগুলিতে দেখতে পাবে যা এর লাইনের সাথে কিছু পড়বে

    এস0: 3: রেসপন: / এসবিন / অ্যাজেটি টিটিএস0 9600 ভিটি 100-নাভ
    এই agettyলাইনে সর্বশেষ যুক্তি vt100-navহল, এর জন্য সেট করা টার্মিনাল টাইপ /dev/ttyS0। তাই /etc/inittabএই ধরনের সিস্টেমে বাস্তব টার্মিনাল জন্য টার্মিনাল টাইপ পরিবর্তন যেখানে হয়।
  • সিস্টেমেড সিস্টেমে, /usr/lib/systemd/system/serial-getty@.serviceএকক এটি ইউনিট ফাইলে ( /lib/systemd/system/serial-getty@.serviceআন-মার্জড সিস্টেমে) দেখতে পাবে, যা পড়ে

    পরিবেশ = শব্দটি = vt100
    পরিবেশে TERMভেরিয়েবল সেট করে চলেছে agetty। এই পরিষেবা ইউনিট ফাইলটি এমন সিস্টেমে রিয়েল টার্মিনালের জন্য টার্মিনালের ধরণটি পরিবর্তন করতে পারে। নোট করুন যে এটি সমস্ত বাস্তব টার্মিনালের ক্ষেত্রে প্রযোজ্য যা এই পরিষেবা ইউনিট টেম্পলেটটি নিয়োগ করে। (কেবলমাত্র স্বতন্ত্র টার্মিনালের জন্য এটি পরিবর্তন করতে, ম্যানুয়ালি টেম্পলেটটি ইনস্ট্যান্ট করতে হবে))
  • বিএসডিগুলিতে, ডাটাবেসে initপ্রতিটি টার্মিনালের প্রবেশের তৃতীয় ক্ষেত্র থেকে টার্মিনাল প্রকারটি নেয় এবং এটি পরিবেশের সাথে /etc/ttysসেট TERMকরে getty। সুতরাং /etc/ttysযেখানে এক BSD গুলোর প্রকৃত টার্মিনাল জন্য টার্মিনাল প্রকার পরিবর্তন হয়।

কার্নেল ভার্চুয়াল টার্মিনালগুলি, যেমন আপনি উল্লেখ করেছেন যে একটি নির্দিষ্ট ধরণের রয়েছে। নেটবিএসডি থেকে পৃথক, যা ফ্লাইতে কার্নেল ভার্চুয়াল টার্মিনাল ধরণের পরিবর্তিত হতে পারে, লিনাক্স এবং অন্যান্য বিএসডিগুলির একটি একক স্থির টার্মিনাল প্রকারটি কার্নেলের বিল্ট-ইন টার্মিনাল এমুলেশন প্রোগ্রামে প্রয়োগ করা হয়। লিনাক্সে, টাইপটি linuxটার্মিনো ডাটাবেস থেকে মেলে । (ফ্রিবিএসডি-র কার্নেল টার্মিনাল এমুলেশন xterm9 নং সংস্করণের পরে একটি সীমিত উপসেট)

  • সিস্টেমগুলি ব্যবহার করে mingettyবা vc-get-tty(নোশ প্যাকেজ থেকে) প্রোগ্রামটি "জানে" যে এটি কেবল ভার্চুয়াল টার্মিনালের সাথেই কথা বলা যেতে পারে এবং তারা "ज्ञात" ভার্চুয়াল টার্মিনাল টাইপগুলি অপারেটিং সিস্টেমের জন্য উপযুক্ত যা প্রোগ্রামটি সংকলিত হয়েছিল hard
  • সিস্টেমেড সিস্টেমে, /usr/lib/systemd/system/getty@.serviceএকক এটি ইউনিট ফাইলে ( /lib/systemd/system/getty@.serviceআন-মার্জড সিস্টেমে) দেখতে পাবে, যা পড়ে

    পরিবেশ = শব্দটি = Linux
    পরিবেশে TERMভেরিয়েবল সেট করে চলেছে agetty

কার্নেল ভার্চুয়াল টার্মিনালের জন্য, কেউ টার্মিনালের প্রকার পরিবর্তন করে না । কার্নেলের মধ্যে টার্মিনাল এমুলেটর প্রোগ্রামটি পরিবর্তিত হয় না। প্রকারটি পরিবর্তন করা ভুল । বিশেষত, এটি কার্সার / সম্পাদনা কী সিএসআই সিকোয়েন্স স্বীকৃতি স্ক্রু করবে। linuxলিনাক্স কার্নেল টার্মিনাল এমুলেটর দ্বারা প্রেরিত সিএসআই সিকোয়েন্স থেকে ভিন্ন xtermবা vt100ডিসেম্বর, VT মোডে গুই টার্মিনাল এমুলেটর প্রোগ্রাম দ্বারা প্রেরিত সিএসআই সিকোয়েন্স।

আপনার জিইউআই টার্মিনাল এমুলেটরটি এসএসএইচ ড্যামন থেকে শুরু করে screenসিউডো-টার্মিনালগুলির মধ্যে অনেকগুলি প্রোগ্রামের একটি । টার্মিনাল ধরণটি সিউডো-টার্মিনালের মাস্টার সাইডে কী টার্মিনাল এমুলেটর প্রোগ্রাম চলছে এবং কীভাবে এটি কনফিগার করা হয় তার উপর নির্ভর করে। বেশিরভাগ জিইআইআই টার্মিনাল এমুলেটররা স্লেভ সাইডে একটি TERMপরিবর্তনশীল যার প্রোগ্রামটির মান মাস্টার দিকে তাদের টার্মিনাল অনুকরণের সাথে মেলে start এসএসএইচ সার্ভারের মতো প্রোগ্রামগুলি সংযোগের ক্লায়েন্টের শেষে থাকা টার্মিনাল ধরণের "মধ্য দিয়ে" যাওয়ার চেষ্টা করবে। সাধারণত টার্মিনাল ইমুলেশনগুলির মধ্যে বেছে নেওয়ার জন্য কিছু মেনু বা কনফিগারেশন বিকল্প রয়েছে।

হাতের মুঠোয়

রঙের সামর্থ্য সনাক্ত করার সঠিক উপায়টি আপনার স্ক্রিপ্টে টার্মিনাল ধরণের একটি তালিকা হার্ডওয়ার নয় । রঙিনকে সমর্থন করে এমন প্রচুর টার্মিনাল ধরণের রয়েছে।

সঠিক উপায়টি হচ্ছে আপনার টার্মিনাল প্রকার সম্পর্কে টার্মক্যাপ / টার্মিনফো কী বলে।

রঙ = 0
যদি টিপুট কো </ dev / null 2> & 1
তারপর
    "put tput Co`" -গতি 2 && রঙ = 1 পরীক্ষা করুন
এলিফ টিপুট রঙগুলি </ dev / null 2> & 1
তারপর
    "put টিপুট রঙ`" পরীক্ষা করুন -জিটি 2 && রঙ = 1
ফাই

আরও পড়া

  • জোনাথন ডি বয়েন পোলার্ড (2018)। TERMnosh গাইড । সফটওয়্যার।

নিম্নলিখিত ডেবিয়ান Jessie মধ্যে ডিফল্ট .bashrc মধ্যে বিদ্যমান: [ -x /usr/bin/tput ] && /usr/bin/tput setaf 1 >&/dev/null && color_prompt=yes। (
necurses

2
এছাড়াও tput Co"অজানা terminfo সামর্থ্য" ফেরৎ জেসি এবং Xenial হবে। tput colorsএবং tput setaf 1উভয়ই কাজ করে বলে মনে হচ্ছে যদিও আমি স্বীকার করি কেন আমি তা বুঝতে পারি না ।
থোম_নিক

2

আমি কেন ভুল ধারণা এবং উবুন্টু অপ্রচলিত সে সম্পর্কে আমার বিস্তারিত উত্তরের জন্য দয়া করে /ubuntu//a/614714/398785 দেখুন । আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি (যা জিনোম-টার্মিনাল ৩.১16 এর পরে ডিফল্ট, তবে পুরানো জিনোম-টার্মিনালগুলির সাথে ব্যবহার করাও নিরাপদ) এবং সেই অনুযায়ী আপনার সামঞ্জস্য করুন ।TERM=xterm-color.bashrcTERM=xterm-256color.bashrc


1
আপনার লিঙ্কের জন্য +1। গৌণ পরামর্শ; নিম্নলিখিত বাক্যটি বিভ্রান্তিকর হতে পারে (আমি প্রথম একটি ধারণা পেয়েছিলাম যে আপনি বলেছিলেন যে .bashrcব্যবহারটি অপ্রচলিত)। "উবুন্টুর .বাশ্রাক অচল।
আইজ্যাকস

@ ইসহাকস কীভাবে এটির উন্নতি করবেন আপনার কোনও পরামর্শ আছে? যেমন "পুরানো" সহায়তা দিয়ে "অপ্রচলিত" প্রতিস্থাপন করবে?
egmont

1
এটি প্রদর্শিত হয় যে উবুন্টু 18.04-তে এর লেআউটটিকে এই জাতীয়ভাবে বিশৃঙ্খলা xterm-256colorসৃষ্টি htopকরে ।
মনিকা মনিকা 13

@ ওরেঞ্জডগ কোন টার্মিনাল এমুলেটরটিতে? এই প্রশ্নটি এখানে এবং সুতরাং আমার প্রতিক্রিয়াটি জিনোম টার্মিনালের উপর দৃষ্টি নিবদ্ধ করে, যেখানে আপনি লিঙ্ক করা পৃষ্ঠাটি কনসোল দেখায়। বাগটি দেখে মনে হচ্ছে টার্মিনাল এমুলেটর এখনও আরইপি এস্কেপ সিকোয়েন্সটিকে সমর্থন করে না যা ncurses সেই সময়ের জন্য ব্যবহার শুরু করেছিল। ভিটিই (জিনোম টার্মিনাল) ইতিমধ্যে উবুন্টু 18.04 এ এর ​​জন্য সমর্থন যোগ করেছিল, কনসোলের ছিল না এমন সম্ভাবনা রয়েছে। আমার সন্দেহ হয় যে এইচটিপি ব্রেকের সাথে আপনার মন্তব্যটি কনসোলের জন্য বৈধ তবে জিনোম টার্মিনালের জন্য নয়।
egmont

@ ইগমন্ট মূল সমস্যার জন্য কথা বলতে পারে না, তবে ডাব্লুএসএল এর টার্মিনাল (যা কিছু হোক না কেন) নিয়ে আমি একই ফল পেয়েছি।
মনিকা মনিকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.