কিভাবে সাহসী অক্ষরে টার্মিনাল প্রদর্শন ব্যবহারকারী @ মেশিন তৈরি করবেন?


31

আমি কিছু স্ক্রিন-শটগুলিতে দেখেছি (ওয়েবে কোথায় আছে তা মনে করতে পারে না) যে টার্মিনালটি [username@machine /]$সাহসী বর্ণগুলিতে প্রদর্শন করতে পারে । আমি এটি পাওয়ার অপেক্ষায় রয়েছি কারণ আমার কমান্ডের পরে প্রথম লাইনটি অসুবিধা সহকারে খুঁজে বের করার জন্য নিজেকে সর্বদা দীর্ঘ আউটপুটগুলি দিয়ে স্ক্রল করতে দেখি।

আমি কীভাবে ব্যবহারকারীর নাম ইত্যাদি সাহসী বা রঙিন করতে পারি?


আপনি ব্যাশ শেল বা অন্য কোনও শেল ব্যবহার করছেন কিনা তা আপনি পরিষ্কার করতে পারেন?
স্টিফান কোয়ান

জিনোম টার্মিনাল বাশ।
বেনিয়ামিন

উত্তর:


22

PS1আপনার ~/.bashrcফাইলটিতে প্রম্পট ভেরিয়েবলটি সেট করে আপনার এটি করা উচিত:

PS1='[\u@\h \w]\$ '

এটিকে রঙিন করতে (এবং সম্ভবত সাহসী - এটি আপনার টার্মিনাল এমুলেটরটি সক্ষম করেছে কিনা তার উপর নির্ভর করে) আপনাকে এস্কেপ কালার কোড যুক্ত করতে হবে:

PS1='\[\e[1;91m\][\u@\h \w]\$\[\e[0m\] '

এখানে, অংশ 1;91mএবং 0mঅংশগুলির মধ্যে অব্যাহতি না দেওয়া সমস্ত কিছুই 1;91রঙিন (গা bold় লাল) হয়ে যাবে। এই পালানোর কোডগুলি প্রম্পটের বিভিন্ন অংশে বিভিন্ন রঙ ব্যবহার করার জন্য রাখুন তবে রঙগুলি পুনরায় সেট করতে ভুলবেন 0mনা অন্যথায় আপনার রঙিন টার্মিনাল আউটপুটও থাকবে। বর্তমান শেলটি আপডেট করার জন্য ফাইলটি উত্সাহিত করার পরে মনে রাখবেন:source ~/.bashrc


লাল কেন 31 ব্যবহার করবেন না? 91 টি মানক কোড বলে মনে হচ্ছে না।
jw013

1
@ jw013 পরিসীমা 90-97 30-37 পরিসরের হয় সমতুল্য যদি সাহসী অর্থাত হিসাবে ব্যবহার 1;31এবং 1;91। স্বাভাবিক ফন্টের ওজন ব্যবহার করে, 90-97 পরিসরটি অন্যটির চেয়ে আরও উজ্জ্বল রঙ দেয়।

45

আপনার PS1কোথায় সেট করা আছে তা সন্ধান করুন .bashrcএবং '\[\e[1m\]'শুরুতে এবং \[\e[0m\]শেষে সন্নিবেশ করুন ।

  • \[এবং \]এটি প্রয়োজনীয় যাতে শেলটি জেনে যায় যে গণ্ডগোলটি ভিতরে স্ক্রিনে 0 টি জায়গা নেয় যা লাইন-সম্পাদনা করার সময় কিছুটা খারাপ আচরণকে বাধা দেয়। আপনার এটি নিয়ে খুব বেশি চিন্তা করার দরকার নেই।
  • \e[সিএসআই (নিয়ন্ত্রণ সিকোয়েন্স পরিচিতি) হিসাবে পরিচিত। আপনি এটি উল্লেখ করা উইকিপিডিয়া পৃষ্ঠায় তালিকাভুক্ত বেশিরভাগ কোডগুলিতে দেখতে পাবেন see \e এর অর্থ পালানোর চরিত্র।
  • আপনি যদি উইকিপিডিয়া পৃষ্ঠায় এসজিআর টেবিলটিতে লক্ষ্য করেন তবে আপনি দেখতে পাবেন যে উজ্জ্বল / গা bold় পাঠ্যের জন্য 1 নম্বরটি, এবং 0টি পুনরায় সেট করার জন্য। এইভাবে CSI 1mসাহসী চালু হয় এবং CSI 0mফন্টটি পুনরায় সেট করে যাতে আপনার বাকী বাক্যটি স্বাভাবিক থাকে।

উইকিপিডিয়ায় এএনএসআই এস্কেপ কোডগুলির একটি সম্পূর্ণ তালিকা রয়েছে যা আপনি ব্যবহার করতে পারেন যদি আপনার টার্মিনাল এমুলেটর সমর্থন করে।

সম্পাদন করা

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

আমি আমার মধ্যে যা করি তার একটি উদাহরণ এখানে .bashrc:

# color names for readibility
reset=$(tput sgr0)
bold=$(tput bold)
black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
white=$(tput setaf 7)
user_color=$green
[ "$UID" -eq 0 ] && { user_color=$red; }
PS1="\[$reset\][\[$cyan\]\A\[$reset\]]\[$user_color\]\u@\h(\l)\
\[$white\]:\[$blue\]\W\[$reset\][\[$yellow\]\$?\[$reset\]]\[$white\]\
\\$\[$reset\] "

আমার এক জেনেরাইজড সংস্করণটি দেখতে কেমন হবে তা এখানে। এটি 0হ'ল শেষ কমান্ডের প্রস্থান স্থিতি।

পিএস 1 স্ক্রিনশট


সুন্দর এবং ব্যাখ্যামূলক উত্তর, +1। তবুও আমি বিন্দুতে দ্বিধাদ্বন্দ্বের উত্তর আরও পেয়েছি , সুতরাং আমি এটি পরিবর্তে বেছে নিয়েছি।
বেনিয়ামিন

আমি যখন এটি চেষ্টা করেছিলাম তখন টার্মিনাল প্রম্পটটি সঠিকভাবে মোড় না দেওয়ার মতো সমস্যায় পড়েছিলাম । আপনি কি? আপনি কি পালানোর ক্রম আপডেট করেছেন?
স্টিফান লাসিউইস্কি

6

এটি সাইগউইন বাশ শেলের মধ্যে পাওয়া ডিফল্ট প্রম্পট:

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '

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

\[\e]0;\w\a\] = Set the Window title to your current working directory
\n            = new line
\[\e[32m\]    = Set text color to green
\u@\h         = display username@hostname
\[\e[33m\]    = Set text color to yellow
\w            = display working directory
\[\e[0m\]     = Reset text color to default
\n            = new line
\$            = display $ prompt

তথ্যসূত্র:


সুন্দর, আমি [ব্যবহারকারী @ হোস্ট] এর আগে একটি নতুন লাইন যুক্ত করেছি যা প্রতিটি কমান্ডকে আরও পাঠযোগ্য করে তোলে (এটি টার্মিনাল ইমোতে ডিফল্টরূপে সেট করা উচিত)।
বেনিয়ামিন

2

টার্মিনালে পাঠ্য বৈশিষ্ট্য পেতে আমি এই শেল ফাংশনটি ব্যবহার করি:

color () {
  if [ -z "$1" -a -z "$2" -a -z "$3" ]; then
    echo "\033[0m"
    return
  fi
  case $1 in
    black)   color_fg=30;;
    red)     color_fg=31;;
    green)   color_fg=32;;
    yellow)  color_fg=33;;
    blue)    color_fg=34;;
    magenta|purple) color_fg=35;;
    cyan)    color_fg=36;;
    white)   color_fg=37;;
    -)       color_fg='';;
    *)       color_fg=39;;
  esac
  case $2 in
    bold)      color_bd=1;;
    italics)   color_bd=3;;
    underline) color_bd=4;;
    inverse)   color_bd=7;;
    strike)    color_bd=9;;
    nobold)      color_bd=22;;
    noitalics)   color_bd=23;;
    nounderline) color_bd=24;;
    noinverse)   color_bd=27;;
    nostrike)    color_bd=29;;
    -)         color_bd='';;
    *)         color_bd=0
  esac
  case $3 in
    black)   color_bg=40;;
    red)     color_bg=41;;
    green)   color_bg=42;;
    yellow)  color_bg=43;;
    blue)    color_bg=44;;
    magenta|purple) color_bg=45;;
    cyan)    color_bg=46;;
    white)   color_bg=47;;
    -)       color_bg='';;
    *)       color_bg=49;;
  esac
  s='\033['
  if [ -n "$color_bd" ]; then
    s="${s}${color_bd}"
    if [ -n "$color_fg" -o -n "$color_bg" ]; then
      s="${s};"
    fi
  fi
  if [ -n "$color_fg" ]; then
    s="${s}${color_fg}"
    if [ -n "$color_bg" ]; then
      s="${s};"
    fi
  fi
  if [ -n "$color_bg" ]; then
    s="${s}${color_bg}"
  fi
  s="${s}m"
  echo "$s"
  unset s color_bd color_bg color_fg
}

তারপরে এটি ব্যবহার করতে:

color_reset=`color`
color_grbd=`color green bold`
color_bubd=`color blue bold`
PS1="\[${color_grbd}\][\u@\h]\[${color_reset}\]:\[$color_budb}\]\w\[${color_reset}\]> "

এটি আমাকে দেয় [username@hostname]:cwd>যেখানে username@hostnameগা bold় সবুজ এবং cwdগা bold় নীল।


এর জন্য ধন্যবাদ. আমি মনে করি আমাকেও উপরের সমস্তগুলি অনুলিপি করতে হবে ~/.bashrc?
বেনিয়ামিন

হ্যাঁ, আমি এটি আমার ~/.bashrcফাইলে সেট করেছি এবং এটি আমার প্রম্পট সেট করতে ব্যবহার করি। আমি যে সিস্টেমে চলেছি তার উপর নির্ভর করে রঙগুলিও পরিবর্তন করি।
আর্জেজ

1

এটিকে ডিফল্ট উবুন্টু প্রম্পটের মতো দেখানোর জন্য যুক্ত করুন

export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '

আপনার ~/.bashrc

এটি সুপরিচিত সবুজ user@host(গা bold়) উত্পাদন করবে , তার পরে একটি অ-সাহসী সাদা কোলন হবে, তারপরে আপনার কার্যনির্বাহী ডিরেক্টরিটি গা directory় নীল রঙে, তারপরে একটি $চিহ্ন, একটি স্থান এবং অ-গা bold় সাদা বর্ণগুলিতে আপনার আদেশ হবে:

উবুন্টু বাশ প্রম্পট

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