টেক্সট এবং টার্মিনালের পটভূমির রঙ পরিবর্তন?


72

আমি পছন্দের মাধ্যমে রঙটি পরিবর্তন করতে পারি, তবে আমি কীভাবে কমান্ড লাইনের মাধ্যমে টার্মিনালের পটভূমির রঙ এবং পাঠ্য রঙ পরিবর্তন করতে পারি?


স্থায়ীভাবে নাকি ঘটনাক্রমে?
জ্যাকব Vlijm

আপনি ব্যবহার করতে পারেন dconf। : আমি কোন উত্তর অনুরূপ প্রশ্নের আগে লেখা আছে askubuntu.com/a/628129/295286
Sergiy Kolodyazhnyy

উত্তর:


50

নির্দিষ্ট এক্সটার্ম / এএনএসআই-সামঞ্জস্যপূর্ণ টার্মিনালগুলিতে (যেমন xtermএবং gnome-terminal), আপনি প্যালেটটি বড় করে ডিফল্ট 8/16-রঙের প্যালেট ব্যবহার করে রঙ নির্ধারণ করতে পারেন (উদাহরণস্বরূপ 88-বর্ণ, 256-বর্ণগুলি বা 16777216-রং (আরজিবি) প্যালেট ব্যবহার করে ; উভয়ই xtermএবং gnome-terminal256-রঙ এবং 16777216-রঙ (আরজিবি) প্যালেট উভয়ই সমর্থন করে; মনে রাখবেন শেলটি এটিকে ওভাররাইড করতে পারে (এটি ক্ষেত্রে উদাহরণস্বরূপ zsh)।

256-রঙ প্যালেটটিতে রঙগুলি তালিকাভুক্ত করার জন্য এখানে একটি স্ক্রিপ্ট রয়েছে যার 256-রঙের প্যালেট সমর্থন সহ এক্সটির্ম / এএনএসআই-সামঞ্জস্যপূর্ণ টার্মিনালগুলিতে তাদের এএনএসআই রঙ কোড সহ:

#!/bin/bash
for((i=16; i<256; i++)); do
    printf "\e[48;5;${i}m%03d" $i;
    printf '\e[0m';
    [ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done

screenshot1

স্ক্রিনশট

আপনি পুরোভাগে বা পটভূমি রং প্রয়োগ করতে চান কিনা উপর নির্ভর করে, একটি ব্যবহার <fg_bg>মূল্য 38বা 48নিম্নলিখিত কমান্ড (যথাক্রমে):

printf '\e[<fg_bg>;5;<ANSI_color_code>m'

উদাহরণস্বরূপ, অগ্রভাগের রঙ ( <fg_bg>= 38) লাল ( <ANSI_color_code>= 196) এবং ব্যাকগ্রাউন্ডের রঙ ( <fg_bg>= 48) কালো ( <ANSI_color_code>= 0) এ সেট করতে:

printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'

screenshot3

printf '\e[K'পুরো লাইনটিতে ব্যাকগ্রাউন্ড রঙ প্রয়োগ করার জন্য এবং অগ্রভাগের বর্ণটি কার্সারে প্রয়োগ করার জন্য প্রম্পটটি পুনরায় চিত্রিত করা প্রয়োজন :

screenshot4

একটি সামঞ্জস্যপূর্ণ টার্মিনালে এএনএসআই রঙের কোডের পরিবর্তে আরজিবি মানগুলি ব্যবহার করে একই জিনিসটি সম্পন্ন করা যায়; আপনি পুরোভাগে বা পটভূমি রং প্রয়োগ করতে চান কিনা তার উপর নির্ভর করে, একটি ব্যবহার <fg_bg>মূল্য 38বা 48নিম্নলিখিত কমান্ড (যথাক্রমে):

printf '\e[<fg_bg>;2;<R>;<G>;<B>m'

উদাহরণস্বরূপ, অগ্রভাগের রঙ ( <fg_bg>= 38) লাল ( <R>= 255, <G>= 0, <B>= 0) এবং পটভূমির রঙ ( <fg_bg>= 48) কালো ( <R>= 0, <G>= 0, <B>= 0) এ সেট করতে:

printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'

screenshot5

আবার, printf '\e[K'পুরো লাইনটিতে পটভূমির রঙ প্রয়োগ করার জন্য এবং অগ্রভাগের বর্ণটি কার্সারে প্রয়োগ করার জন্য প্রম্পটটি পুনরায় চিত্রিত করা প্রয়োজন :

screenshot6

যে কোনও পদ্ধতি ব্যবহার করে আপনি printf '\e[0m'সমস্ত বৈশিষ্ট্য পুনরায় সেট করতে ব্যবহার করতে পারেন :

screenshot7


1
উভয়ই xtermএবং gnome-terminalস্বীকৃত \ ই [38/48; 2; আর; জি; বি এম সত্য রঙের পালানোর ক্রম; যাইহোক, xtermআসল রঙটিকে তার 256-রঙের প্যালেটে সবচেয়ে কাছের পর্যন্ত গোল করে। gnome-terminalঅব্যাহতি ক্রমে প্রদত্ত সঠিক রঙটি প্রদর্শন করে।
egmont

2
\ ই [কে বিপজ্জনক; কিছু অনুকরণকারী (উদাহরণস্বরূপ xterm) মধ্যে যদি কার্সারটি খুব ডান প্রান্তে ঘটে থাকে (দৃশ্যত ডানদিকের কলামে প্রদর্শিত হয়, তবে যুক্তিযুক্তভাবে ইতিমধ্যে এর বাইরেও যেহেতু একটি অক্ষর ইতিমধ্যে ডানদিকের কলামে মুদ্রিত হয়েছিল), সেই শেষ অক্ষরটি ছিঁড়ে যায়। উদাহরণস্বরূপ bugzilla.gnome.org/show_bug.cgi?id=740789 বা savannah.gnu.org/bugs/?36831 দেখুন
egmont

নিজেকে সংশোধন করা: আপনি যদি রেখার শুরুতে \ ই [কে নির্গত করেন (প্রম্পটের শুরুতে, এটি শেষ না করে) তবে অবশ্যই এটি নিরাপদ। (যদিও মাল্টলাইন প্রম্পট বা কমান্ড দিয়ে কাজ করবে না))
উদাহরণস্বরূপ

@ ইগমন্ট দরকারী তথ্যের জন্য ধন্যবাদ, আমি দেখতে পাচ্ছি যে জিনোম বুগজিলা যা স্থির হিসাবে চিহ্নিত হয়েছে, এটি কি? আমি এই মুহুর্তে এটি পরীক্ষা করতে পারছি না, তাই এটি পরে আছে কিনা তা পরীক্ষা করে নেব (যদি আপনি প্রথমে উত্তর না দিয়ে থাকেন) এবং সেই তথ্যটি উত্তরে অন্তর্ভুক্ত করবেন।
কোস

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

33

পূর্বরূপ কলাম বাদ দিয়ে এই পৃষ্ঠায় পাওয়া তথ্য :

সিকোয়েন্সগুলি এস্কেপ অক্ষর (প্রায়শই " ^[" বা " <Esc>" প্রতিনিধিত্ব করে ) দ্বারা তৈরি হয় তার পরে কিছু অন্যান্য অক্ষর: " ^[FCm" ( FCনীচে বুলেটযুক্ত তালিকার একটি সংখ্যা যেখানে রয়েছে)।

ইন bash, Escকোড নিম্নলিখিত দুটি হতে পারে:

  1. \e
  2. \033 (অকট্যাল)
  3. \x1B (হেক্সাডেসিমেল)

নোট 1: " \e[0m" ক্রমটি সমস্ত বৈশিষ্ট্য (বিন্যাস এবং রং) মুছে ফেলে। প্রতিটি রঙিন পাঠ্যের শেষে এটি যুক্ত করা ভাল ধারণা হতে পারে।

দ্রষ্টব্য 2: টার্মিনালের কনফিগারেশনের উপর নির্ভর করে অগ্রভাগ এবং পটভূমির রঙগুলি পৃথক হতে পারে এবং সমস্ত রঙ সমর্থিত নয়

সেট / পুনরায় সেট করুন

  • 0: সমস্ত সংশোধক, অগ্রভাগ এবং পটভূমি বৈশিষ্ট্যগুলি পুনরায় সেট করুন / সরান: echo -e "\e[0mNormal Text"
  • 1: সাহসী / উজ্জ্বল: echo -e "Normal \e[1mBold"
  • 2: ধীর: echo -e "Normal \e[2mDim"
  • 4: আন্ডারলাইনড: echo -e "Normal \e[4mUnderlined"
  • 5: পলক (এক্সটার্ম ব্যতীত বেশিরভাগ টার্মিনালে কাজ করে না): echo -e "Normal \e[5mBlink"
  • 7: বিপরীত / বিপরীত: echo -e "Normal \e[7minverted"
  • 8: লুকানো (সংবেদনশীল তথ্যের জন্য দরকারী): echo -e "Normal \e[8mHidden Input"
  • 21: রিসেট / মোটা / উজ্জ্বল সরান: echo -e "Normal \e[1mBold \e[21mNormal"
  • 22: রিসেট / অপসারণ ম্লান: echo -e "Normal \e[2mDim \e[22mNormal"
  • 24: আন্ডারলাইন পুনরায় সেট / সরান: echo -e "Normal \e[4mUnderlined \e[24mNormal"
  • 25: রিসেট / পলক সরান: echo -e "Normal \e[5mBlink \e[25mNormal"
  • 27: রিসেট / রিভার্স রিভার্ট / ইনভার্ট: echo -e "Normal \e[7minverted \e[27mNormal"
  • 28: রিসেট / লুকানো সরান: echo -e "Normal \e[8mHidden \e[28mNormal"

পুরোভূমি

  • 39: ডিফল্ট (সাধারণত সবুজ, সাদা বা হালকা ধূসর): echo -e "Default \e[39mDefault"
  • 30: কালো: echo -e "Default \e[30mBlack"(একটি পটভূমির রঙের সাথে সেরা মিলিত echo -e "Default \e[30;107mBlack on white":)
  • 31: লাল (সবুজ পটভূমিতে ব্যবহার করবেন না)
  • 32: সবুজ
  • 33: হলুদ
  • 34: নীল
  • 35: ম্যাজেন্টা / বেগুনি
  • 36: সায়ান
  • 37: উজ্জল ধূসর
  • 90: গাঢ় ধূসর
  • 91: লাল আলো
  • 92: হালকা সবুজ
  • 93: হলুদ বাতি
  • 94: হালকা নীল
  • 95: হালকা ম্যাজেন্টা / গোলাপী
  • 96: হালকা সায়ান
  • 97: সাদা

পটভূমি

  • 49: ডিফল্ট পটভূমির রঙ (সাধারণত কালো বা নীল)
  • 40: কালো
  • 41: লাল
  • 42: সবুজ
  • 43: হলুদ
  • 44: নীল
  • 45: ম্যাজেন্টা / বেগুনি
  • 46: সায়ান
  • 47: হালকা ধূসর (সাদা অগ্রভাগের সাথে ব্যবহার করবেন না)
  • 100: গাark় ধূসর (কালো অগ্রভাগের সাথে ব্যবহার করবেন না)
  • 101: লাল আলো
  • 102: হালকা সবুজ (সাদা অগ্রভাগের সাথে ব্যবহার করবেন না)
  • 103: হালকা হলুদ (সাদা অগ্রভাগের সাথে ব্যবহার করবেন না)
  • 104: হালকা নীল (হালকা হলুদ অগ্রভাগের সাথে ব্যবহার করবেন না)
  • 105: হালকা ম্যাজেন্টা / গোলাপী (হালকা অগ্রভাগের সাথে ব্যবহার করবেন না)
  • 106: হালকা সায়ান (সাদা অগ্রভাগের সাথে ব্যবহার করবেন না)
  • 107: সাদা (হালকা অগ্রভাগের সাথে ব্যবহার করবেন না)

অগ্রভাগ এবং পটভূমি উভয় রঙ একবারে সেট করতে, থার ফর্মটি ব্যবহার করুন echo -e "\e[S;FG;BGm"। উদাহরণস্বরূপ: echo -e "\e[1;97;41m"(লাল পটভূমিতে গা bold় সাদা অগ্রভাগ)

256 রঙের বিকল্পের জন্য, উত্স পৃষ্ঠাটি দেখুন।


30

ঘটনাগুলি ভিত্তিতে রঙগুলি পরিবর্তন করুন

যদি এটি ঘটনামূলক ভিত্তিতে রঙ পরিবর্তন করতে বোঝানো হয় :

আপনি setterm কমান্ডটি ব্যবহার করতে পারেন :

setterm -term linux -back <background_colour> -fore <text_color> -clear

রঙগুলি থেকে, আপনি বেছে নিতে পারেন (অগ্রভাগ এবং পটভূমি উভয়):

black|blue|green|cyan|red|magenta|yellow|white|default

আরও বিকল্পের জন্য:

setterm -help

আপনার প্রোফাইল (রঙ) সেটিংস পরিবর্তন করুন

14.04 এ, আমি dconfরঙগুলি বা টার্মিনাল সেট করতে কোনও বিকল্প খুঁজে পাইনি । আপনি তবে ব্যবহার করতে পারেনgconftool

  • আপনার প্রথমে আপনার প্রোফাইল নামটি পাওয়া দরকার:

    gconftool-2 --get /apps/gnome-terminal/global/profile_list
    
  • তারপরে, আপনার প্রোফাইলের পাঠ্যের রঙগুলি সেট করতে:

    gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/foreground_color" --type string "#FFFFFF"
    

    উদাহরণস্বরূপ, পাঠ্যের রঙ সাদা করতে

    পটভূমির রঙের সাথে একই:

    gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string "#000000"
    

    উদাহরণস্বরূপ পটভূমির রঙ কালো করতে

বিকল্পভাবে, রঙ (গুলি) এর নাম নির্ধারণ করতে, আপনি কেবল সেটটারম কমান্ডের মতো একই প্যালেটটি থেকে whiteবা ব্যবহার করতে পারেন green, যেমন:

gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black

1
এগুলি প্রাথমিক সেটারম কমান্ডে ডাবল ড্যাশ হওয়া উচিত।
ব্যবহারকারী 1770201

14.04 এ কাজ করেছেন, তবে 16.04 এ নয় (বিটা; এটি কারণ কিনা তা নিশ্চিত নয়) ... তবুও, dconf write /org/gnome/terminal/legacy/profiles:/:<profile_id>/background-color "'rgb(0,0,0)'"কৌশলটি করেছেন।
জনক বান্দারা

উবুন্টু 1704-এ কাজ করছেন না, এটি দেখতে খারাপ দেখাচ্ছে
মোম খাঁচা

1
gconftool-2অথবা (উবুন্টু 14.04 এবং হয়ত কয়েক নিম্নলিখিত রিলিজ জন্য) dconfবা gsettingsউবুন্টু পরিবর্তন জিনোম-টার্মিনাল এর সেটিংস এর নতুন সংস্করণে, এবং অবিলম্বে কার্যকর সব ট্যাব এবং একই প্রোফাইলের জানালা। আমি মনে করি না ওপি এই আচরণটি সন্ধান করেছিল।
উদাহরণস্বরূপ

5

রঙিন আউটপুট প্রাপ্ত করার জন্য ব্যবহৃত বিভিন্ন রঙের কোডগুলি রঙিন ব্যাকগ্রাউন্ডগুলি পেতে ব্যবহার করা যেতে পারে :

40  black
41  red
42  green
43  yellow
44  blue
45  magenta
46  cyan
47  white

অতএব, নিম্নলিখিত কমান্ডটি আমার পটভূমিকে লাল করে:

$ echo -e '\e[0;41m'

শেল, টার্মিনাল এমুলেটর ইত্যাদির উপর নির্ভর করে আপনার প্রয়োজন নেই -e


3

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

কিছু পদ্ধতির, যা কিছু টার্মিনাল এমুলেটর দ্বারা সমর্থিত, হ'ল ওএসসি 10/11 অব্যাহতি সিকোয়েন্সগুলি ব্যবহার করে টার্মিনালের ডিফল্ট পূর্বভূমি এবং পটভূমির রঙগুলির সঠিক আরজিবি মানগুলি পুনরায় সংজ্ঞায়িত করা :

echo -ne '\e]10;#123456\e\\'  # set default foreground to #123456
echo -ne '\e]11;#abcdef\e\\'  # set default background to #abcdef

এটি সম্ভবত দীর্ঘকাল স্থায়ী হতে পারে (অন্য কোনও ওএসসি 10/11 দ্বারা ওভারসিড হওয়া বা OSC 110/111 এর মাধ্যমে রিসেট না হওয়া পর্যন্ত), তবে ডকনএফ পদ্ধতির বিপরীতে, এটি কেবলমাত্র বর্তমান টার্মিনালকেই প্রভাবিত করে।

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