এলএস আউটপুটে এই সবুজ পটভূমির কারণ কী?


141

লিনাক্স মেশিনে এলএস আউটপুট এর স্ক্রিনক্যাপ

'Ls' দ্বারা প্রদর্শিত দুটি ডিরেক্টরি রয়েছে। সাধারণত যে কোনও জায়গায় ডিরেক্টরি কালো পটভূমিতে নীল blue তবে প্রথমটি সবুজতে নীল এবং পড়া অসম্ভব। কেন? এটিকে কালোতে কীভাবে নীল করা যায় বা অন্ধকার কোনও কিছুতে কমপক্ষে হালকা কিছু করা যায়?

এটি জিনোম টার্মিনালে ব্যাশ ব্যবহার করে উবুন্টু 12.04-এ। কনসোলে, নীলটি কিছুটা গাer়, এবং পড়া সম্ভব, যদিও এটি আরও ভাল হতে পারে।

উত্তর:


162

তাদের ধরণের উপর ভিত্তি করে ফাইলগুলি রঙ করা (অডিও ফাইলগুলির জন্য ফিরোজা, আর্কাইভ এবং সংক্ষেপিত ফাইলগুলির জন্য উজ্জ্বল লাল, এবং চিত্র এবং ভিডিওগুলির জন্য বেগুনি) lsএছাড়াও তাদের বৈশিষ্ট্যের উপর ভিত্তি করে ফাইল এবং ডিরেক্টরিগুলিকে রঙ করে:

  • সবুজ ব্যাকগ্রাউন্ড সহ কালো টেক্সট নির্দেশ করে যে কোনও ডিরেক্টরি মালিকানাধীন ব্যবহারকারী এবং গোষ্ঠী ব্যতীত অন্যদের দ্বারা লিখনযোগ্য এবং এতে স্টিকি বিট সেট রয়েছে ( o+w, +t)।
  • সবুজ পটভূমি সঙ্গে ব্লু টেক্সট নির্দেশ করে যে একটি ডিরেক্টরির পৃথক্ মালিক ব্যবহারকারী এবং গ্রুপ থেকে অন্যদের দ্বারা লিখনযোগ্য, এবং নেই না চটচটে বিট সেট আছে ( o+w, -t)।

জিজ্ঞাসা উবুন্টু-স্টিফানো প্যালাজো বিভিন্ন বৈশিষ্ট্যযুক্ত রঙগুলি সম্পর্কে এই খুব শিক্ষণীয় চিত্র তৈরি করেছেন:

টার্মিনালটিতে বিভিন্ন রঙের অর্থ কী

টেরডন যেমন উল্লেখ করেছে, রঙ সেটিংস এর মাধ্যমে পরিবর্তন করা যেতে পারে dircolors। বিভিন্ন রঙিন সেটিংসের একটি তালিকা ব্যবহার করা যেতে পারে dircolors --print-database

আউটপুট প্রতিটি লাইন যেমন BLK 40;33;01ফর্ম হয়:

[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
  • TARGET রঙিন নিয়মের লক্ষ্য নির্ধারণ করে

  • TEXT_STYLE পাঠ্য শৈলী নির্দেশ করে:

    • 00 = কিছুই না
    • 01 = সাহসী
    • 04 = আন্ডারস্কোর
    • 05 = পলক
    • 07 = বিপরীত,
    • 08 = গোপন
  • FOREGROUND_COLOR অগ্রভাগের রঙ নির্দেশ করে:

    • 30 = কালো
    • 31 = লাল
    • 32 = সবুজ
    • 33 = হলুদ
    • 34 = নীল,
    • 35 = ম্যাজেন্টা
    • 36 = সায়ান
    • 37 = সাদা
  • BACKGROUND_COLOR পটভূমির রঙগুলি নির্দেশ করে:

    • 40 = কালো
    • 41 = লাল
    • 42 = সবুজ
    • 43 = হলুদ
    • 44 = নীল,
    • 45 = ম্যাজেন্টা
    • 46 = সায়ান
    • 47 = সাদা

ক্ষেত্রগুলি ডান থেকে শুরু করে বাদ দেওয়া যেতে পারে, সুতরাং উদাহরণস্বরূপ গা .tar 01;31means় এবং লাল means

এক্সটার্ম এবং অন্যান্য আধুনিক টার্মিনাল এমুলেটরগুলি 256 রঙ সমর্থন করে।

একটি এক্সটার্ম 256-রঙের ফোরগ্রাউন্ড রঙ কোডটি হ'ল:

38;5;[FOREGROUND_COLOR]

একটি এক্সটার্ম 256-রঙের পটভূমির রঙ কোডটি হ'ল:

48;5;[BACKGROUND_COLOR]

যেখানে উভয় FOREGROUND_COLORএবং BACKGROUND_COLORএকটি সংখ্যা 0-255। 16 এবং 256 রঙের মোডগুলির জন্য রঙের কোডগুলির একটি সম্পূর্ণ তালিকা নীচের স্ক্রিনশটে প্রদর্শিত হবে:

16 এবং 256 রঙ মোড রঙ কোড


5
BACKGROUND_COLOR কোডগুলি FOREGROUND_COLOR এর মতো নয়; পটভূমি কোডগুলি 40-47
রায়ান ভি বিসেল

38;5;একটি এক্সটার্ম 256-রঙের অগ্রভাগের রঙ কোড শুরু করে। 48;5;একটি এক্সটার্ম 256-রঙের পটভূমির রঙ কোড শুরু করে। আমার dircolors আউটপুটে সায়ান হয় 38;5;51 না 36 যদিও ফলাফলের একই।
স্টিভস্লিভা

1
@ স্টেভস্লিভা: আপনার মন্তব্যের জন্য ধন্যবাদ আমি ব্যাকগ্রাউন্ড কালার কোডগুলি সঠিকভাবে নির্দেশ করতে উত্তরটি সম্পাদনা করেছি এবং 256-রঙের অগ্রভাগ এবং পটভূমির রঙের কোডগুলি বর্ণনা করেছি।
টমাস নাইম্যান

55

এর রঙগুলি lsঅনুমতিগুলি উপস্থাপন করতে পারে, কিছু সিস্টেমের ডিফল্ট হ'ল ডিরেক্টরিগুলি দেখানো হয় যেখানে প্রত্যেকেরই সবুজ পটভূমিতে লেখার অনুমতি রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

আপনি (থেকে ) $LS_COLORSব্যবহার করে আপনার পরিবর্তনশীল সম্পাদনা করে রঙগুলি পরিবর্তন করতে পারেন :dircolorsman ls

   Using color to distinguish file types is disabled both by  default  and
   with  --color=never.  With --color=auto, ls emits color codes only when
   standard output is connected to a terminal.  The LS_COLORS  environment
   variable can change the settings.  Use the dircolors command to set it.

সিনট্যাক্সটি এখানে স্বীকারোক্তিজনকভাবে বিরক্তিকর হলেও আপনি যে রঙগুলি চান তা দিয়ে একটি ফাইল তৈরি করে এবং এটি সংরক্ষণ করে আপনি এই রঙটি পরিবর্তন করতে পারেন ~/.dircolors:

dircolors -p > ~/.dircolors

এই কমান্ডটি ডিফল্টগুলিকে মুদ্রণ করবে ~/.dircolors। তারপরে আপনাকে সেই ফাইলটি সম্পাদনা করতে হবে এবং এই লাইনটি পরিবর্তন করতে হবে:

OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky

উদাহরণস্বরূপ, এটি একটি লাল পটভূমিতে কালো পাঠ্য করতে ( রঙ কোডের তালিকার জন্য এখানে দেখুন ):

OTHER_WRITABLE 30;41 # dir that is other-writable (o+w) and not sticky

আপনার সমস্ত ডিফল্ট থাকতে হবে না, আপনি কেবল একটি একক লাইন দিয়ে একটি ফাইল তৈরি করতে পারেন, আপনি যেটিকে পরিবর্তন করতে চান কেবল তার পুনরায় সংজ্ঞা দিতে পারেন। যাইহোক, একবার আপনি ফাইলটি তৈরি করার পরে এটি লোড করুন:

eval "$(dircolors ~/.dircolors)";

এবং এখানে এটি কার্যকর হয়:

এখানে চিত্র বর্ণনা লিখুন

এটি স্বয়ংক্রিয়ভাবে ঘটতে, evalআপনার ~/.bashrcফাইলটিতে উপরের কমান্ডটি যুক্ত করুন।


8
ডিফল্ট রঙগুলি প্রায়শই মনে হয় মূল লেখক আমাদের এবং আমাদের চোখকে ঘৃণা করে যদিও ...
কুর্টেম

1
ধন্যবাদ। আপনি কেন কখনও কখনও ~ / .ডেরনাম, এবং কখনও ~ / ডাইক্রোলার, এবং কখনও কখনও ~ / .dircolors লিখেন? তাদের কি একইরকম হওয়ার কথা?
টিম

ধন্যবাদ। এর eval "$(dircolors ~/dircolors)";পরিবর্তে আরও সরাসরি উপায়ের পরিবর্তে কেন dircolors ~/dircolors?
টিম

@ টিম যেহেতু ডার্কোলারগুলি কেবল সেটিংস মুদ্রণ করে, সেগুলি পড়ার জন্য আপনাকে এটিকে খোলার প্রয়োজন।
টেরডন

তাদের পড়া কার জন্য?
টিম

11

সমস্ত প্রযুক্তিগত উত্তর সত্য হলেও, আমি এটিকে কিছুটা অনানুষ্ঠানিক সতর্কতা হিসাবে বিবেচনা করব, যে আপনি উদারতা বা ক্রিসস + ক্রস অনুলিপি করার জন্য কিছুটা অধিকার বঞ্চিত করেছেন ... (বেশিরভাগ ক্ষেত্রে আমরা সবাই করি, প্রাথমিকভাবে জিনিসগুলি পেতে কাজ করতে, এহ ?)

কীভাবে এটিকে কালো করে নীল করা যায়, ...?

আপনি সম্ভবত যে অধিকারগুলি চান তার পক্ষে ফিরে পেতে একটি "ডি-গ্রিনার" হ'ল এই বিবৃতি:

chmod -R a-x,o-w,+X thatGreenFolderWithSubfolders/

এটি কী করে তা সর্বোত্তমভাবে বুঝতে পেরেছিলেন, যদি আপনি বড় হাতের অক্ষর + এক্স - বিশেষ এক্সিকিউট "এর উদ্দেশ্য বুঝতে পারেন, তবে উইকিপিডিয়া দেখুন

সাধারণত '+' ব্যবহার করার সময় এবং সাধারণত ফাইলগুলিতে (যেমন টেক্সট ফাইলগুলির) নির্বাহের অনুমতি নির্ধারণ না করে গ্রুপ বা একটি বড় ডিরেক্টরি ট্রিতে অন্য অ্যাক্সেস দেওয়ার জন্য -R বিকল্পের সাথে একত্রে ব্যবহৃত হয়, যা সাধারণত ঘটে যদি আপনি সবে "chmod -R a + rx ব্যবহার করেছেন ...


8

আমার একই প্রশ্ন ছিল, টেরডনের উত্তরটি দুর্দান্ত তবে আমি মনে করি ডারনাম এবং ডারকলারগুলির মধ্যে কোনও বিভ্রান্তি আছে?

যাইহোক, আরও কিছু গবেষণার পরে আমি রঙগুলি পরিবর্তন করতে পারি, তাই আমি আমার সমাধানটি এখানে ভাগ করছি। কারও কারও কাজে লাগতে পারে!

সুতরাং, 3 সহজ পদক্ষেপ:

প্রথম, টেরডন যেমন বলেছে, কোনও ফাইলে ডিফল্ট রঙগুলি অনুলিপি করুন

dircolors -p > ~/.dircolors

তারপরে এই ফাইলটি সংশোধন করুন। আপনি ভিতরে রঙের জন্য কিছু মান জানতে পারেন, কিন্তু আমি আরো পাওয়া এখানে :)

এবং অবশেষে, ~/.bashrcআপনি যখন কোনও টার্মিনাল খুলবেন তখন রঙগুলি স্বয়ংক্রিয়ভাবে লোড হওয়ার জন্য আপনার ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন :

eval 'dircolors ~/.dircolors' > /dev/null

ভয়েল :)


1
জন্য ~/.zshrcআমি যেতে হয়েছে if [[ -f ~/.dircolors ]] ; then eval $(dircolors -b ~/.dircolors) elif [[ -f /etc/DIR_COLORS ]] ; then eval $(dircolors -b /etc/DIR_COLORS) fi। দুঃখিত লাইন বিরতি ভয়ঙ্কর
এরিক ডি জনসন

2

সমস্যাটি দ্রুত সমাধান করতে, (অন্যান্য-লিখনযোগ্য ফাইলগুলি nobg তে হলুদ করুন):

LS_COLORS+=':ow=01;33'

Nobg এ নীল 33দ্বারা প্রতিস্থাপন 34করুন। এমনকি সহজ, এটি nobg উপর nofg করতে:

LS_COLORS+=:ow=

আপনার পরিবর্তন স্থায়ী করতে, আপনার। প্রোফাইলে এটি যুক্ত করুন:

echo "export LS_COLORS+=':ow=01;33'" >> ~/.profile

LS_COLORS- এর অ-এক্সটেনশন সম্পর্কিত নিয়মগুলি দেখতে:

echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'

sedপ্রতিটি নিয়মকে এক লাইনে রাখে এবং grepশুরু করা বিধিগুলি সরিয়ে দেয়*.'.


lsআপনার টার্মিনালের রঙগুলি অন্বেষণ করতে , ব্যবহার বিবেচনা করুন

C="$LS_COLORS"
function sc () {
    echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'
}
function t () {
    ls /mnt # Or the path to your example directory.
}

তারপর

LS_COLORS="$C:ow=38;5;250;48;5;025";t

অন্য উত্তরে যেমন বলা হয়েছে (থমাস নাইম্যানের), 38;5;তা হল ফোরগ্রাউন্ডের এক্স-টার্ম 256-কালার এবং 48;5;ব্যাকগ্রাউন্ডের এক্স-টার্ম 256-রঙের উপসর্গ। 256- রঙগুলি যদিও সমস্ত টার্মিনাল দ্বারা সমর্থিত নয়।

এছাড়াও দেখুন -আসকেউবুন্টুতে বিভিন্ন বর্ণের অর্থ কী?


1

আচ্ছা এর অর্থ এই যে আপনি যদি এটি চালনা করেন তবে এই ফোল্ডারের অনুমতি রয়েছে:

modহোম ওগ-ডাব্লু এও_লিআই

এটি bgcolor অপসারণ করবে :)


0

এটি ঠিক করতে LS_COLORS এর ওউ পরামিতিটি ব্যবহার করে দেখুন

উদাহরণ স্বরূপ:

~LS_COLORS='fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33'
~ls -l

এখানে চিত্র বর্ণনা লিখুন

এখন আপনি ow বিকল্পটি যুক্ত করুন

~export LS_COLORS='fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33:ow=0'
~ls -l

এখানে চিত্র বর্ণনা লিখুন


0

পাঠ্যটি পঠনযোগ্য করার জন্য আপনি পুট্টিতে সবুজের সুর পরিবর্তন করতে পারেন।

পুট্টি খুলুন এবং উইন্ডো \ রঙগুলিতে যান, "এএনএসআই সবুজ" নির্বাচন করুন, এটি একটি গা green় সবুজতে সেট করুন (আর: 0 জি: 70 বি: 0)।

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