এসএসএইচ সেশনের পরে টার্মিনাল ট্যাব শিরোনাম


11

ম্যাক ওএস এক্সে (আমি 10.6.8 এ রয়েছি, যদিও আমি বিশ্বাস করি যে অন্যান্য সংস্করণগুলি একইরকম) একটি দূরবর্তী মেশিনে ssh'ing টার্মিনালের বর্তমান ট্যাবের শিরোনাম পরিবর্তন করে। বিরক্তিকরভাবে, যখন আমি দূরবর্তী মেশিন থেকে সংযোগ বিচ্ছিন্ন করি তখন স্পষ্টভাবে exitবা সময়সীমা সহ, ট্যাবটির শিরোনামটি যা ছিল তা ফিরে আসে না।

প্রায় প্রতিদিনের ভিত্তিতে এটি আমার হৃদরোগে আক্রান্ত হওয়ার কারণ হয়ে দাঁড়ায়, যখন আমি কোনও কমান্ড বা অন্য কোনও কাজ সম্পাদন করে টাইপ করি তখন কেবল আমার চোখের কোণ থেকে দেখতে পাতাম যে ট্যাবটির নামকরণ করা হয়েছে ব্যবহারকারী @ রিমোটহোস্ট। আমি একজন সতর্ক ব্যবহারকারী যা সর্বদা pwdকিছু করার আগে আমার অবস্থানটি নিশ্চিত করতে প্রবণতা বজায় রাখে , তবুও যখন এটি করছি তখন আতঙ্কের মুহুর্তে এটি আমাকে ধরে ফেলবে DROP DATABASE xএবং আমি ট্যাবে দূরবর্তী হোস্টের নামটি দেখতে পাচ্ছি।

দীর্ঘ গল্প সংক্ষেপে, কোনও দূরবর্তী হোস্ট থেকে সংযোগ বিচ্ছিন্ন করার সময় এই শিরোনামটি ফেরত দেওয়ার কোনও উপায় আছে, বা শিরোনামটি পুনরায় সেট করার জন্য, প্রতিবার সংযোগ বিচ্ছিন্ন করার সময় আমাকে নতুন ট্যাব খোলার সাথে থাকতে হবে?


আপনি যখন প্রস্থান করবেন তখন টার্মিনালের নামগুলিও পুনরায় সেট হয়npm
Awesome_girl

উত্তর:


20

আপনার একটিতে যুক্ত PROMPT_COMMANDকরুন .bash_profile

export PROMPT_COMMAND="echo -ne '\033]0;${USER}@${HOSTNAME}\007';$PROMPT_COMMAND"

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

দয়া করে মনে রাখবেন যে আমরা বিদ্যমান PROMPT_COMMANDপরিবেশের পরিবর্তনশীলকে অন্তর্ভুক্ত করি , যেমন আমরা কোনও বিদ্যমান সেটিংস (যেমন update_terminal_cwd) হারাতে পারি না ।


2
আপনার কোডটি প্রতিস্থাপনের পরিবর্তে PROMPT_COMMAND এ যুক্ত করার বিষয়ে নিশ্চিত হন PROMPT_COMMAND="<your code>; $PROMPT_COMMAND"; অন্যথায়, আপনি এই পরিবর্তনশীল ব্যবহার করে এমন অন্যান্য কার্যকারিতা অক্ষম করবেন। উদাহরণস্বরূপ, / etc / bashrc এটি টার্মিনালের বর্তমান কার্যকরী ডিরেক্টরি সেট করতে ব্যবহার করে যাতে টার্মিনাল এটি প্রদর্শন করতে এবং এটি বিভিন্ন ক্রিয়াকলাপের জন্য ব্যবহার করতে পারে।
ক্রিস পৃষ্ঠা 0

@ ক্রিসপেজ $PROMPT_COMMANDঅন্যান্য কার্যকারিতা সংরক্ষণ করার জন্য নতুন কোডটি কী আগে আসা উচিত?
প্রকাশ_অনরেঞ্জ

এটিকে সরাসরি পিএস 1 এ রাখেনি কেন?
ইওংওয়ে উ উ

আপনি কীভাবে এডিট করবেন .bash_profile? sublime $HOME/.bash_profile?
আশ্চর্যজনক_জাগল

@ অসাধারণ_জাগল নিশ্চিত করুন যে sublকমান্ডটি ইনস্টল করা আছে, এবং তারপরে আপনার টার্মিনাল থেকে ফাইলটি সম্পাদনা করুন subl ~/.bash_profile। যদি এই আদেশটি বিদ্যমান না থাকে তবে এটি অনুসরণ করুন: sublimetext.com/docs/2/osx_command_line.html
এক্সট্রাস্পিলিটি

2

জেডএসএইচ (ম্যাকোজে নতুন শেল) দিয়ে @ s01ipsist এর সমাধানের কাজটি করতে, আপনি এটি এতে যুক্ত করতে পারেন ~/.zshrc:

export PROMPT_COMMAND="echo -ne '\033]0;${USER}@${HOST}\007';$PROMPT_COMMAND"
precmd() { eval "$PROMPT_COMMAND" }

1

আপনার .bash_profileফাইলে কী আটকানো দরকার তা এখানে । এটি অনেক পরিষ্কার এবং এটি আপনার বর্তমান কার্যকরী ডিরেক্টরি আপডেট করার সময় অ্যাপল কী করবে তা গ্রহণ করে। ভেরিয়েবলের জন্য চেকটি update_term_titleইতিমধ্যে উপস্থিত সত্যই প্রয়োজনীয় নয় (যেমন কেউ ডাকে না bash -- login), তবে কেবল প্রহরী হিসাবে উপস্থিত।

if [ -z "$INSIDE_EMACS" ]; then
    # Update the terminal title on every prompt shown
    update_term_title() {
        # Print user@short-hostname once SSH quits.
        echo -ne "\033]0;${USER}@${HOSTNAME%%.*}\007"
        # Or ${HOSTNAME} if short host names aren't your taste
        # Or echo -ne "\033]0;\007" if you don't want anything.
    }
    # Check to see if update terminal title is present?
    if ! echo $PROMPT_COMMAND | grep -q update_term_title
    then
       # This function is not found in PROMPT_COMMAND, add it
       PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }update_term_title"
    fi
fi

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