`Ls` কমান্ড থেকে বর্ণহীন রঙের আউটপুট


28

আমি একটি স্থানীয় কলেজে ইউএনআইএক্স / লিনাক্স কোর্সে একটি ইন্ট্রো শিখিয়েছি এবং আমার এক শিক্ষার্থী নিম্নলিখিত প্রশ্নটি জিজ্ঞাসা করেছেন:

আমার ডিরেক্টরিতে থাকা কিছু ফাইল সাদা রঙিন এবং অন্যগুলি ধূসর কেন? আমি যে সাদাগুলি তৈরি করেছি সেগুলি কি আজ এবং ধূসর বিদ্যমান ফাইলগুলি?

আমি এটির দিকে নজর দেওয়ার সাথে সাথে আমি প্রথমে ভেবেছিলাম উত্তরটি LS_COLORSভেরিয়েবলের মধ্যে থাকবে তবে আরও তদন্তে জানা গেছে যে কমান্ডের সাথে -lস্যুইচ বনাম স্যুইচ ব্যবহার করার সময় রঙের তালিকা আলাদা ছিল । নিম্নলিখিত স্ক্রিন শট দেখুন:-alls

ls -l ব্যবহার করে '3' নামের ফাইলটি সাদা হিসাবে দেখায়

-আল সুইচ ব্যবহার করে একই ফাইলটি ধূসর দেখায়

ব্যবহার ls -lনামের ফাইল সাদা হিসাবে '3' শো কিন্তু ব্যবহার -alসুইচ একই ফাইল শো একটি ধূসর।

এটি কি বাগের বাগের মধ্যে রয়েছে বা কেউ জানে কেন এটি হচ্ছে?


আপনার প্রশ্নের শিরোনাম লিখুন: lsকমান্ডের সাথে এই জাতীয় রঙের কোনও সম্পর্ক নেই ।
ড্র হয়েছে

এফডব্লিউআইডাব্লু LS_COLORS='rs=0;1' ls -l, এলএস_সিওএলআরএসের সাথে জগাখিচির মাধ্যমে আপনি এটি পেতে পারেন তবে এটি দেখতে খুব আলাদা।
wjandrea

4
@ ড্রু আপনি কেবল এটিই জানেন যে সমস্যাটি তদন্তের পরে। স্পষ্টতই lsএর আউটপুট এর রঙ পরিবর্তন করতে পারেন।
পাইপ

@ পাইপ: নাহ, আমি জানি যে রঙ ছিল অনেক আগে থেকেই। এটি রঙ সরবরাহ করতে হবে না , যদিও সাম্প্রতিক সংস্করণগুলি রঙ সরবরাহ ls করতে পারে। ;-)
ড্র হয়েছে

উত্তর:


68

দেখে মনে হচ্ছে আপনার প্রম্পট-স্ট্রিং ( $PS1) রঙগুলিকে আরও সুন্দর করার জন্য অক্ষরগুলিতে গা bold় বৈশিষ্ট্য নির্ধারণ করছে, এবং এটি সেট না করে। এর আউটপুট এ lsসম্পর্কে জানে না এবং সাহসী সেট করে না। সুতরাং প্রথম রঙ আউটপুট পরে ls, সবকিছু ম্লান দেখায়।


1
হ্যাঁ, এটি ছিল। PS1 এ শেষ বর্ণ পরিবর্তন + গা bold় + সাদা (1; 37) - ধন্যবাদ!
বিল আর

3
আপনি এটি গ্রহণযোগ্য হিসাবে চিহ্নিত করতে পারেন, তারপর।
টমাস ডিকি

0

Ls এর সম্পূর্ণ আউটপুট শেষ সক্রিয় রঙে মুদ্রিত হবে । যদি lsরঙ ছাড়া বলা হয়:

$ printf '\e[0;31m color test\n'; /bin/ls
 color test
filea  fileb  filec  filed  filee  filef  fileg  fileh

লাল তালিকাতে ফাইলের তালিকা মুদ্রণ করবে ।

বা, যদি এলএসের জন্য কোনও রঙ পরিবর্তন প্রয়োজন না হয় তবে শেষ রঙটি থেকে যাবে:

$ mkdir t1; cd t1; touch file{a..h}
$ printf '\e[0;31m color test\n'; /bin/ls --color -l
 color test
total 0
-rw-r--r-- 1 user user 0 Feb 23 01:16 filea
-rw-r--r-- 1 user user 0 Feb 23 01:16 fileb
-rw-r--r-- 1 user user 0 Feb 23 01:16 filec
-rw-r--r-- 1 user user 0 Feb 23 01:16 filed
-rw-r--r-- 1 user user 0 Feb 23 01:16 filee
-rw-r--r-- 1 user user 0 Feb 23 01:16 filef
-rw-r--r-- 1 user user 0 Feb 23 01:16 fileg
-rw-r--r-- 1 user user 0 Feb 23 01:16 fileh

এখনও, সব লাল।

তবে, যত তাড়াতাড়ি lsএকটি রঙ সেট করা দরকার (এবং তারপরে কনসোল দ্বারা ব্যবহৃত ডিফল্টে রঙগুলি পুনরায় সেট করুন), তখন থেকে ব্যবহৃত রঙটি কনসোল ডিফল্ট হবে।

$ printf '\e[0;31m color test\n'; /bin/ls --color -la
 color test
total 8
drwxr-xr-x 2 user user 4096 Feb 23 01:16 .
drwxr-x--- 7 user user 4096 Feb 23 01:15 ..
-rw-r--r-- 1 user user    0 Feb 23 01:16 filea
-rw-r--r-- 1 user user    0 Feb 23 01:16 fileb
-rw-r--r-- 1 user user    0 Feb 23 01:16 filec
-rw-r--r-- 1 user user    0 Feb 23 01:16 filed
-rw-r--r-- 1 user user    0 Feb 23 01:16 filee
-rw-r--r-- 1 user user    0 Feb 23 01:16 filef
-rw-r--r-- 1 user user    0 Feb 23 01:16 fileg
-rw-r--r-- 1 user user    0 Feb 23 01:16 fileh

প্রথম তিনটি লাইন (নীল বিন্দু পর্যন্ত) লাল রঙে মুদ্রিত।

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