কমান্ড এবং আউটপুট জন্য বিভিন্ন রঙ


13

আমি ভাবছিলাম যে লিনাক্সের কমান্ডের আউটপুটটির রঙটি আমি যে কমান্ড লাইন টাইপ করি তার চেয়ে আলাদা রঙে পরিবর্তন করা সম্ভব the মত,

@USER/Destop$ ----> blue
/*
--------------
output file in white
-----------
*/

ধন্যবাদ


2
সম্ভবত precmd_funitions ব্যবহার করে আপনি প্রম্পট রঙ পরিবর্তন করতে এবং এটি প্রিসেক_ফিউশনগুলি বা এটির মতো কিছু আগে সেট করতে পারেন। (জেডএসে, আমি জানি না যে অন্যান্য শাঁসের সমতুল্য কোনও
মিল রয়েছে কিনা

আমি কেবল আমার পরামর্শটি চেষ্টা করেছি তবে কমান্ডটি রঙিন পাই না ... :(
প্যাটালুক

1
@ পেটালুক: আমি সফল হয়েছি preexec () { echo -n "\\e[40;34m" }; precmdফাংশন এই প্রোগ্রামটিতে প্রয়োজনীয় নয়, এটা zsh রিসেট প্রম্পট প্রদর্শন করার আগে রঙ নিজেই বলে মনে হয়। তবে এটি কেবলমাত্র সেই আদেশগুলির জন্যই কাজ করে যা lsহারুনের দ্বারা বর্ণিত বর্ণটি রঙ পরিবর্তন করে না (বিশিষ্ট উদাহরণটি হ'ল )। সহ cat, bcঅন্তর্নির্মিত শেল কমান্ড ইত্যাদির সাহায্যে (এমনকি alpine) এটি ভাল কাজ করে।
এমপিপি

@ এমপিআই আমি সমস্ত কমান্ড সহ সফলও হয়েছি, ধরে নিই যে রাজ কমান্ডটি রঙ করতে চায় এবং ফলাফলটি নয়, আমি "\\e[40;34m"আমার বর্ণের শেষে যুক্ত করেছি PROMPTএবং এটিকে আবার সাদাতে সেট করেছি preexec () { echo -n "\\e[40;37m" }...
প্যাটালুক

1
@ পেটালুক: দুঃখিত, এখন আমি এই বিষয়টি পেয়েছি। কমান্ড লাইনটি রঙ করতে কেবল zle_highlight=(default:fg=cyan)সাম্প্রতিক zsh সংস্করণ ব্যবহার করুন । জেডএসে গতিময় রঙও সরবরাহ করে, যেমন fish; ম্যান zshzle এ বর্ণাবলীর হাইলাইটিং বিভাগটি দেখুন।
এমপি

উত্তর:


5

আসলে তা না; প্রদত্ত প্রোগ্রামের আউটপুটটির রঙ টার্মিনাল দ্বারা নয়, কমান্ড দ্বারা নিয়ন্ত্রিত হয়।

এটি বলেছিল যে, আপনার টার্মিনালটি রঙের জন্য এএনএসআই এস্কেপ কোডগুলি বোঝে (বেশিরভাগ ক্ষেত্রে), আপনি প্রম্পটের শুরুতে আপনার পছন্দসই প্রম্পট রঙ সেট করতে এবং আপনার পছন্দসই আউটপুট রঙটি শেষে সেটআপ কোড ব্যবহার করতে পারেন; এটি আপনার কমান্ড লাইনগুলির ফলাফল হিসাবে আউটপুট জন্য আপনি যে রঙ নির্ধারণ করেছেন তা হতে পারে তবে আপনি যা খুঁজছেন তা পেতে যা সম্ভবত প্রায় কাছাকাছি। উদাহরণস্বরূপ, নিম্নলিখিত:

$ export PS1='\[\033[00;35m\]\u\[\033[00m\]@\[\033[00;35m\]\H\[\033[00m\]:\[\033[00;33m\]\W\[\033[00m\] \$\[\033[00;34m '

আপনাকে দেখে এমন একটি প্রম্পট দেবে:

user@host:wd $ _

'ব্যবহারকারী' এবং বেগুনি রঙের 'হোস্ট', 'ডাব্লুডি' (আপনার সিডাব্লু) বাদামি (গা yellow় হলুদ) এবং আপনার টার্মিনাল হালকা নীল রঙের জন্য যা কিছু ব্যবহার করে তা '$' এর পরে সমস্ত কিছু। (একটি ডিফল্ট এক্সটার্ম এটি সায়ানে রেন্ডার করবে; জিনোম-টার্মিনাল কর্নফ্লাওয়ার নীলকে বরং চমৎকার ছায়ায় ডিফল্ট বলে মনে হচ্ছে))

বাশের প্রয়োজনীয় ফর্ম্যাটে বর্ণিত আসল রঙ কোডটি হ'ল প্রকৃত রঙের স্পেসিফিকেশনটি \[\033[00;35m\]কোথায় 00;35; নেতৃস্থানীয় 00খুব কমই পরিবর্তিত হয়, তবে আইআইআরসি বোল্ড (01), আন্ডারলাইন (??), এবং বিপরীত ভিডিও (??) প্রভাব তৈরি করতে পারে, যখন '35' এর পিছনে আসল রঙ, যা এই ক্ষেত্রে বেগুনি।

এএনএসআই রঙের কোডগুলির একটি শালীন তালিকা খুঁজে পাওয়া অবাক করা কঠিন, তবে অগ্রভাগের রঙগুলি 30 থেকে 37 এর মধ্যে এবং পটভূমির রংগুলি 40 থেকে 47 এর মধ্যে নীচে চলে:

color        fg  bg
black        30  40
red          31  41
green        32  42
yellow       33  43
blue         34  44
purple       35  45
cyan         36  46
gray/white   37  47

মনে রাখবেন যে, যেহেতু আপনি আপনার প্রম্পট অনুসরণ করে এমন সমস্ত কিছুর জন্য আপনি একটি ডিফল্ট রঙ নির্ধারণ করছেন, আপনি যে প্রোগ্রামগুলি চালান যা পালানোর কোডগুলির মাধ্যমে তাদের নিজস্ব রঙ সেট করে না সেগুলি রঙ নিতে চলেছে - উদাহরণস্বরূপ, আপনি যদি একটি চালনা করেন পেজার, আপনি সম্ভবত অন্যান্য কমান্ডের জন্য সেট করেছেন একই রঙে এর আউটপুট দেখতে পাবেন। এদিকে, কমান্ড যা না পালাবার কোড মাধ্যমে তাদের নিজেদের রং নির্ধারণ করে আপনার প্রচেষ্টা সম্পূর্ণরূপে উপেক্ষা করা হবে।


1
পালানোর কোডগুলির পরিবর্তে, আমি দেখতে পেয়েছি যে tputরঙিন করার জন্য ব্যবহার করা আরও অনেক বেশি পাঠযোগ্য। উদাহরণস্বরূপ, আমার প্রম্পটটি (ব্যাশ-এ) export PS1="[\t \[$(tput setaf 9)\]\u\[$(tput setaf 15)\]@\[$(tput setaf 12)\]\h \[$(tput sgr0)\]\w ] \$ "যা সময়ের আউটপুট দেয়, তারপরে একটি বর্ণের ব্যবহারকারীর নাম, @অন্য বর্ণে এবং তৃতীয় হোস্টনাম (লাল, সাদা এবং নীল এই মুহুর্তে), তারপরে পিডাব্লুডি প্রিন্ট করে এবং $ । ইতিহাসে ফিরে স্ক্রোল করার সময় প্রম্পট লাইনগুলি এমন এক নজরে দেখতে খুব সহজ।
MattDMo

আপনার দুর্দান্ত ... আমি যা চেয়েছিলাম সবই এটি। ধন্যবাদ আপনি কি আমাকে বলতে পারবেন যে আমি যদি কখনও রং পরিবর্তন করতে চাই তবে কী মান পরিবর্তন করতে হবে?
রাজ

এবং শেষের রঙটি আগের মতো করে রাখার কোনও উপায় আছে কি?
রাজ

এবং কেন পরিবর্তন পরিবর্তনশীল নয়, যতবার আমি লগইন করি, আমাকে আবার রঙ করতে হবে
raj

1
পরিবর্তনটি স্থায়ী হয় না যদি না আপনি এটি আপনার শেলের প্রারম্ভিককরণ ফাইলটিতে যোগ করেন না, যা ব্যাশের জন্য ~/.bashrc; আপনার প্রম্পট স্ট্রিংটি পিএস 1 নির্ধারিত রেখাটি সন্ধান করুন এবং উত্তরে বর্ণিত হিসাবে এটি সংশোধন করুন। কীভাবে পরিবর্তন করবেন তা নির্ভর করে আপনার প্রম্পট স্ট্রিংটি কীভাবে সেট আপ করা হয় তার উপর নির্ভর করে তবে বেশিরভাগ স্পষ্টত বিবরণ আমার উত্তরে থাকে এবং বাকীটি কিছুটা গুগলিং করে খুঁজে পাওয়া যায়। আমি নিশ্চিত নই যে আপনি কী বোঝাতে চেয়েছেন "রঙের আগের মতো আগেরটি কী রাখার কোনও উপায় আছে?"
অ্যারন মিলার

7

আপনি আউটপুট কোনও প্রোগ্রামে পাস করতে পারেন যা রঙ করে does উদাহরণস্বরূপ, এখানে প্রোগ্রামগুলি রয়েছে pycolor:

pycolor module.py

নিজের তৈরি করতে:

red="$(tput setaf 1)"
reset="$(tput sgr0)"
echo $'foo\nbar' | sed -e "s/\(bar\)/$red\1$reset/"

রঙ আউটপুট আরও।


3

হ্যাঁ আমার কাছে এটি কমপক্ষে লিনাক্স এবং ম্যাক ওএসে বাশের জন্য কাজ করছে।

প্রথমে কিছু অ্যাট্রিবিউট ভেরিয়েবল সেট করুন, এবং PS1 প্রম্পটটি পছন্দসই কমান্ড-লাইন বৈশিষ্ট্যের সাহায্যে টার্মিনাল সেটটি ছেড়ে যাবে:

bold="\[$(tput bold)\]"
none="$(tput sgr0)"
export PS1="\$ $bold"

তারপরে, কমান্ড আউটপুটটির জন্য পাঠ্য বৈশিষ্ট্যগুলি পরিবর্তন করতে, প্রতিটি কমান্ডের ঠিক আগে কার্যকর করা বাশ ডিইবিইউজি ট্র্যাপ ব্যবহার করুন:

trap 'echo -ne "${none}"' DEBUG

1

আর একটি বিকল্প (কমান্ড ভিত্তিতে কমান্ড ভিত্তিতে) হ'ল গ্র্যাক - জেনেরিক কালারাইজার। এটি জিনিসগুলিকে রঙিন করতে ব্যবহার করে এমন নিয়মিত এক্সপ্রেশন সেটআপ করতে কিছুটা সময় নেয়। আমি এটি সম্পর্কে এখানে জানতে পেরেছি:

/unix/8414/how-to-have-tail-f-show-colored-output?newsletter=1&nlcode=17737|321c

এবং এখানে:

/unix/26313/colored-find-output

আমি রেজিক্সিসহ একটি ফ্ল্যাশ নই, সুতরাং আমি এই কমান্ডগুলির সাথে খুব বেশি কাজ করিনি।


আমি এটি আমার সমস্ত লেজ-লগ স্ক্রিপ্টগুলির সাথে ব্যবহার করি। অবিশ্বাস্য।
স্টেফগোসেলিন

1

এগুলি আপনার .bashrc ফাইলে ফেলে দিন এবং তারপরে সেভ করার পরে ফাইলটি উত্স করুন।

blk=$'\x1b[90m' # Sets text to black
red=$'\x1b[31m' # Sets text to red
grn=$'\x1b[92m' # Sets text to green
ylw=$'\x1b[93m' # Sets text to yellow
blu=$'\x1b[94m' # Sets text to blue
pur=$'\x1b[95m' # Sets text to purple
cyn=$'\x1b[96m' # Sets text to cyan
wht=$'\x1b[97m' # Sets text to white
rst=$'\x1b[0m'  # resets to default terminal color

এটি হয়ে গেলে, আপনি এর পরে আপনার টার্মিনালে স্থায়ীভাবে ব্যবহার করতে পারেন বা যতক্ষণ না ভেরিয়েবলগুলি মন্তব্য করেন বা সেগুলি পুরোপুরি মুছুন until আপনি এগুলি আপনার মেশিনের স্ক্রিপ্টগুলিতে বা কমান্ড প্রতিস্থাপন বা যে কোনও কিছুতে ব্যবহার করতে পারেন। আমি কীভাবে এগুলি ব্যক্তিগতভাবে ব্যবহার করি তার একটি নীচের উদাহরণ এখানে:

echo -e "${red}This text is red.${rst}"
printf "${grn}This text is green.\n${rst"

আমি সাধারণত স্বতন্ত্র echoএবং / অথবা printfকমান্ডের সাহায্যে এগুলি ব্যবহার করি তবে আপনি এগুলি অন্যান্য কমান্ডের পাশাপাশি কমান্ডকে রঙিন করতে ব্যবহার করতে পারেন ping.bashrcপ্রভাবগুলি পেতে নিম্নলিখিতগুলি যুক্ত করুন । তারপরে আপনার .bashrcফাইলটি উত্স করুন এবং বেগুনি রঙের পাঠ্য সহ cpingকমান্ডটি চালান ping। আপনার টার্মিনাল সমর্থন করে যে কোনও রঙ ব্যবহার করতে আপনি প্রতিটি কমান্ড ফাংশন সেট করতে পারেন।

# Add this to your .bashrc file
colored_ping() {

    echo -e "${pur}$(ping $1)${rst}"
}

alias cping='colored_ping'

তারপরে চেষ্টা করুন:

user@linux:~# cping superuser.com

আপনার আউটপুট cpingবেগুনি হবে be যদি আপনি একই আউটপুটে একাধিক রঙ ব্যবহার করতে চান তবে আপনি সেগুলি অনন্য উপায়ে যুক্ত করতে পারেন। আপনি এটি কীভাবে করবেন তা সম্পূর্ণ আপনার উপর নির্ভর করে। উদাহরণ স্বরূপ:

echo -e "${red}This is red and ${blu}this is blue and ${grn}this is green.${rst}

0

গিট হাব:
গিথুব: গিট ক্লোন http://github.com/mbornet-hl/hl
এবং এ:
http://www.flashnux.com/notes/page_000022_US.html
এইচএল এইচএলএল কমান্ডটি আপনার কাছে পাওয়া উচিত সি-তে লিখিত একটি লিনাক্স কমান্ড যা বিশেষত একটি পাঠ্য ফাইল বা কমান্ডের আউটপুট রঙ করার জন্য ডিজাইন করা হয়। আপনি একসাথে ৪২ টি রং ব্যবহার করতে পারেন এবং কমান্ড লাইনগুলি সরল করতে একটি কনফিগারেশন ফাইল ব্যবহার করতে পারেন। আপনি প্রতিটি কমান্ডের আউটপুট রঙিন করতে পারেন যা অন্য একটিতে পাইপ করা যায়। এবং আপনি যদি নিয়মিত প্রকাশগুলি কী তা জানেন তবে এটি আপনার পক্ষে ব্যবহার করা খুব সহজ। আপনি কীভাবে এটি ব্যবহার করবেন তা বোঝার জন্য ম্যান পৃষ্ঠাটি ব্যবহার করতে পারেন।

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