স্ক্রিন সেশন শুরু করার সময় ব্যাশ প্রম্পট রঙগুলি ধরে রাখা


11

আমি যখন উবুন্টু লুসিড বাক্সে প্রবেশ করি তখন প্রম্পটটি সমস্ত রঙের সাথে সুন্দর হয়। আমি যতদূর জানি সমস্ত কিছুই ডিফল্ট। এখানে আমার $ PS1 এর বাইরে স্ক্রিন রয়েছে:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@dev\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

স্ক্রিনের সাথে সংযুক্ত হওয়ার আগে

তবে তারপরে আমি একবার স্ক্রিন আপ শুরু করলে রংগুলি চলে যায়। অন্য সবকিছু ঠিক আছে, এবং আমার স্ক্রিনটি রঙগুলিকে সমর্থন করতে পারে (লক্ষ্য করুন যে এটির মধ্যে .এবং ..এটি ls -alনীল) তবে প্রম্পটটি তা নয়। তত্ত্বের মধ্যে সবকিছু ঠিক একই হওয়া উচিত। Screen PS1 পর্দার ভিতরে:

${debian_chroot:+($debian_chroot)}\u@dev:\w\$

স্ক্রিনিং পরে

সম্পাদনা: এটি কেবল প্লেইন ভ্যানিলা স্ক্রিন।


এই সরল ভ্যানিলা স্ক্রিন, বা আপনি বাইবু ইনস্টল করেছেন? (। এই বিষয়টি যদিও ব্যাপার নয়)
belacqua

2
echo $PS1পর্দার ভিতরে এবং বাইরের স্ক্রিনের মধ্যে কি একই জিনিস মুদ্রণ করা যায়?
মাইকেল

$ পিএস 1 আসলেই আলাদা different এটি অন্তর্ভুক্ত করতে সম্পাদিত প্রশ্ন।
chmullig

উত্তর:


16

আপনি আপনার .bashrc এ নিম্নলিখিত লাইনটি সম্পাদনা করতে পারেন (এটি আমার .Bashrc এ # 39):

#force_color_prompt=yes

পরিবর্তন:

force_color_prompt=yes

আপনি রঙিন সমর্থিত নয় এমন কোনও জায়গা থেকে লগ ইন করলে এটি সম্ভবত বিরক্তিকর হতে পারে তবে আমি এটি অত্যন্ত অসম্ভব বলে মনে করি।


নিখুঁত, এটি আমার জন্য এটি করেছে। আমি যদি রঙ ছাড়াই কোথাও থেকে লগইন করতে যাই তবে এটি সমস্যাযুক্ত দেখতে পাচ্ছি, তবে এটি খুব বিরল হতে চলেছে। ধন্যবাদ!
chmullig

পরিবর্তনটি ক্লায়েন্টের নয়, সার্ভার মেশিনে করা দরকার।
অ্যাডাম রাইজকোভস্কি

3

.screenrcফাইল আমার কাছে একটি রহস্য। মাইন গাব্বলডিগুক যা আমি ইন্টারনেটগুলি থেকে কপিপাস্ট করেছি। তবে আমি কয়েকটি লাইন দেখতে পাচ্ছি যা আপনার সমস্যার সাথে প্রাসঙ্গিক বলে মনে হচ্ছে:

# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

আমি মনে করি আপনি যদি উপরের লাইনগুলিকে নিজের সাথে যুক্ত করেন তবে আপনি রঙ পাবেন। এখানে .screenrcরেফারেন্সের জন্য আমার সম্পূর্ণ :

jake@daedalus:~$ cat .screenrc 
startup_message off # skip splash screen
vbell off # Kill the annoying dog

# Voodoo
hardstatus alwayslastline
hardstatus string '%{= wk}%-Lw%{= KW}%50>%n%f* %t%{= dK}%+Lw%<'

# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# erase background with current bg color 
defbce "on"

2

আপনার PS1সেটিংটি স্থাপন করা উচিত .bashrc, না .bash_profile

যদি সমস্যা না হয় তবে দয়া করে আপনার সেট PS1করা লাইনটি অন্তর্ভুক্ত করতে আপনার প্রশ্নটি সম্পাদনা করুন ।

আপনি এগুলি চালানোর চেষ্টাও করতে পারেন:

echo "$TERM"                                 # will probably print "screen"
tput setaf 2 | cat -vte                      # should print "^[[32m"
echo "$(tput setaf 2)"green"$(tput sgr0)"    # should print "green" in green

2

স্ক্রিন সাধারণত একটি বিশেষ টার্মিনাল ধরণের ব্যবহার করে, যেমন "স্ক্রিন", বা যদি আপনি এটি আপনার স্ক্রিনসিআরসি, "স্ক্রীন-256 রঙ" তে সেট করেন।

রঙ সনাক্তকরণ কেস স্টেটমেন্টের জন্য কেবল আপনার .brcrc দেখুন এবং তালিকায় স্ক্রিন যুক্ত করুন।

উদাহরণস্বরূপ, এর মতো কিছু:

case "$TERM" in
    xterm)
        color_prompt=yes
        ;;
    screen)
        color_prompt=yes
        ;;
    *256*) 
        color_prompt=yes
        ;;
esac

আমি 256-রঙের টার্মিনাল ধরণের ব্যবহার করি, সুতরাং আমার কেবল 256 কেস স্টেটমেন্টের প্রয়োজন, যেহেতু এটি xterm-256color, gnome-256color এবং স্ক্রিন-256 রঙটি ধারণ করে। আপনার মাইলেজ পরিবর্তিত হতে পারে. 🙂



0

-T xtermআমার জন্য কাজগুলির সাথে স্ক্রিনটি চালিত করা , তাই সহজভাবে:

screen -T xterm

কোনও ফাইল পরিবর্তন করার দরকার নেই।

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