বাশ শেলটি অনুকূলিতকরণ: কমান্ডটি বোল্ড / রঙ করুন


13

অনলাইনে বেশ কয়েকটি টিউটোরিয়াল / পোস্ট রয়েছে (যেমন: http://www.cyberciti.biz/faq/bash- Shell- change- the- color- of-my-shell- prompt- und- linux- or-unix/ ) সেটিং দ্বারা কীভাবে আপনার প্রম্পটটিকে কাস্টমাইজ করতে হয় সে সম্পর্কে PS1। আমি টাইপ করা কমান্ডটির রঙ / সাহসীকরণ কাস্টমাইজ করার কোনও উপায় আছে কি?

অন্য কথায়, উদাহরণ হিসাবে বলা যাক যে আমি একটি সবুজ প্রম্পট, একটি সাহসী নীল কমান্ড চেয়েছিলাম এবং তারপরে যে কোনও রঙের মধ্যে ডিফল্ট হবে output নীচের উদাহরণে, আমি ইতিমধ্যে জানি যে কীভাবে joe>সবুজ, নীল, গা bold়, যা কিছু সেট করে " " প্রদর্শন করতে হবে PS1। তবে আমি কি এমন কোনও উপায় আছে যা git statusউদাহরণস্বরূপ সাহসী করতে পারি ?

joe> git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
...

আপনি যদি সত্যিই একটি ভাল শেল চান তবে আপনার zsh ব্যবহার করা উচিত, আপনি যা অর্জন করতে চান তা দিয়ে খুব সহজ হবেpreexec() { printf '\e[0m' }
bollovan

3
@ বল্লোভান - 'সত্যই ভাল' কিছুটা বিষয়ভিত্তিক, আমি এটি খুব ঘৃণ্য বলে মনে করি কারণ এটি ফুলে ও পসিক্স অমান্যতার কারণে। কিন্তু, যাই হোক না কেন আপনার নৌকা ভাসা।
ক্রিস ডাউন

@ ক্রিসডাউন ফোলা আপনার নৌকাকে ভাসিয়ে দেয় - এটি কখনও শুনেনি, বেশ মজাদার।
n611x007

উত্তর:


13

পিএস 1 এর পরে আপনাকে একটি রঙ ছেড়ে যেতে হবে (এটি >আপনার উদাহরণের পরে শুরু করুন ), এবং তারপরে DEBUGআপনার কমান্ডটি চালানোর আগে রঙ সাফ করার জন্য ব্যাশ ট্র্যাপটি ব্যবহার করতে হবে (তবে আপনি শেলটি প্রবেশ করার পরে টিপুন like :

shopt -s extdebug
trap "tput sgr0" DEBUG

কোডগুলি পালানোর জন্য অপরিচিত কারোর জন্য: এটি কি কমান্ডটির মূল রঙ সংরক্ষণ করবে (উদাহরণস্বরূপ ls --color=alwaysরঙিন হবে)?
n611x007

@naxa - হ্যাঁ, এটি স্পষ্টভাবে রঙ কোড সেট করে (ডিফল্ট টার্মিনাল রঙে বর্ণযুক্ত রঙগুলি বাদ দেয় যা কেবল প্রথম রঙের পরে কার্যকর হবে)।
ক্রিস ডাউন

এই কৌশলটি ট্যাব সমাপ্তিতে হস্তক্ষেপ বলে মনে হচ্ছে (অদ্ভুত জিনিসগুলি প্রিন্ট করে ^[(B^[[m)। এটি কেবলমাত্র কয়েকটি সিস্টেমে ঘটে, যদিও: আমি দুটি সিস্টেমে এটি পরীক্ষা করেছি, উভয়ই উবুন্টু 12.04 এলটিএস চালিয়েছি, এবং কেবলমাত্র তাদের মধ্যে একটিরই হস্তক্ষেপ ছিল।
ম্যাসিফিল

7

সম্পূর্ণতার জন্য, এখানে কীভাবে একটি প্রম্পট রঙ এবং বাশনে কমান্ড লাইন ইনপুট রঙ সেট করবেন। এই লাইন আপনার মধ্যে রাখুন .bashrc

PS1='\[\e[1;34m\]\w\$ \[\e[0;32m\]'
trap 'printf \\e[0m' DEBUG

ক্রিস ডাউন দ্বারা প্রস্তাবিত ডিইবিইউজি ট্র্যাপটি পাঠ্যের বৈশিষ্ট্যগুলি পুনরায় সেট করতে ব্যবহৃত হয়। এটা তোলে ডিবাগ করার জন্য সেসব কিন্তু এটি কমান্ড ব্যবহারকারী দ্বারা টাইপ করা চালানোর আগে কোড সঞ্চালিত হয়ে দরকারী

প্রম্পট সেটিংয়ে:

  • \[…\] বাশকে বলার জন্য যে তারা কোনও স্ক্রিন রিয়েল এস্টেট ব্যবহার করে না সেদিকে এস্কেপ সিকোয়েন্সগুলির আশেপাশে ব্যবহার করা হয় (বাশ প্রম্পটটি পুনরায় আঁকানোর প্রয়োজন হলে তাদের ছাড়াই পর্দা গার্ফড হয়ে যায়)।
  • \e[…mযেখানে একটি সংখ্যা বা আরও সাধারণভাবে সেমিকোলন দ্বারা পৃথক করা সংখ্যার ক্রম হ'ল নীচের পাঠ্যের রঙ এবং অন্যান্য বৈশিষ্ট্যগুলি প্রভাবিত করতে টার্মিনালে প্রেরণ করা ক্রম । উদাহরণস্বরূপ, 1;34গা bold় নীল সেট করে; 0;32সমস্ত বৈশিষ্ট্য পুনরায় সেট করে তারপরে রঙটি সবুজতে পরিবর্তন করে। স্বাদ সামঞ্জস্য করুন।
  • \w\$বর্তমান ডিরেক্টরি মুদ্রণ এবং $বা #। আপনি অবশ্যই যা পছন্দ করেন এটিতে অবশ্যই এটি পরিবর্তন করতে পারেন এবং আপনি যদি চান তবে এর মধ্যে পাঠ্য বৈশিষ্ট্যের পরিবর্তন সন্নিবেশ করতে পারেন।
  • শেষে একটি চূড়ান্ত বৈশিষ্ট্য পরিবর্তন আছে, যা পাঠ্য ইনপুটটির রঙ নির্ধারণ করে।

এফওয়াইআই, বাশ রঙের কোড / সিকোয়েন্সগুলি এখানে সন্ধান করা যেতে পারে: misc.flogisoft.com/bash/tip_colors_and_ formtting
kaiwan

0

আমি কেবল বেস কমান্ডগুলি সম্পর্কে শিখছি এবং আমি এখানে আমার সংস্করণে রঙিন কমান্ডগুলি নিয়ে খেলছি। আমি এই সমাধানটি বের করেছিলাম:

এই আদেশটি ব্যবহার করে:

PS1='\[\e[0:36m\]\h>\[\e[0;31m\]'

ডিকনস্ট্রাক্ট: পিএস 1 =: পিএস 1 কমান্ড শুরু করে

'': একক উদ্ধৃতিতে কমান্ডটি অন্তর্ভুক্ত করুন (সুতরাং BASH এটির জন্য আদেশ বলে মনে করে না)

।: প্রতিটি স্বতন্ত্র কমান্ড এটি দিয়ে শুরু হয়

[]: প্রতিটি কমান্ড অন্তর্ভুক্ত

। ই (এএসসিআইআই এস্কেপ চরিত্রটি 033 ডলারও হতে পারে): একটি কালার কমান্ড শুরু করে

রঙ কমান্ডটি প্রয়োগ করা জিনিসটির আগে।

[\ ই [0; 36 মি]: সায়ান

\ এইচ: হোস্টের নাম

'>': হোস্টের নামের পরে মুদ্রিত

[\ ই [0; 31 মি]: লাল

স্পষ্টতই, রেড কমান্ডটি শেষে ইনপুটটিকে লাল করে তোলে। কেবল আপনার পছন্দ অনুযায়ী রঙগুলি পরিবর্তন করুন এবং এটিই আপনি খুঁজছেন।

এছাড়াও, এই সাইটটি আমাকে একটু সহায়তা করেছে:

https://www.linuxnix.com/linuxunix-shell-ps1-prompt-explained-in-detail/

আমার সংস্করণ: জিএনইউ বাশ, বনাম 4.2.46

যত্ন নিবেন,

বেজি

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