হোস্টনামের উপর ভিত্তি করে আমার কি আমার টার্মিনালের পটভূমি পরিবর্তন হতে পারে?


17

আমি হোস্টনামের ভিত্তিতে আমার টার্মিনাল পটভূমির রঙ পরিবর্তন করতে চাই। এর জন্য আমার যুক্তিটি হ'ল আমি কী সার্ভারে আছি তা নিজেকে স্মরণ করিয়ে দেওয়ার অতিরিক্ত উপায় এবং অতিরিক্ত উপায়, তাই আমি বোকা কিছু করি না।

আমি যদি আমার স্থানীয় মেশিনে থাকি তবে আমি এটি স্ট্যান্ডার্ড আবার্গিন পটভূমি ব্যবহার করতে পারি, তারপরে যদি আমি একটি প্রোডাকশন ওয়েব সার্ভারে, অথবা আমি উল্লেখ করতে পারি এমন অন্যান্য হোস্টগুলিতে লাল রঙ পরিবর্তন করি?


একটি ধারণা, টার্মিনাল সেটিংস পরিচালনা করে এমন পরিবেশগত পরিবর্তনশীলের পরিবর্তনের স্ক্রিপ্ট করুন। আপনি যে স্থানে সাধারণত যান এবং সেই স্ক্রিপ্টের সেটিংসে পরিবর্তন অন্তর্ভুক্ত প্রতিটি জায়গার জন্য একটি স্ক্রিপ্ট তৈরি করুন, এখানে একটি গাইড যা সহায়তা করতে পারে: সাইবারসিটি.বিজ / ফাফ / - - আপনি কেবল এমন স্ক্রিপ্ট চালাতে পারবেন যা কেবল সংযোগই করবে না আপনার জন্য, তবে নির্দিষ্ট সেশনের জন্য টার্মিনালটি কাস্টমাইজ করবে।
ম্যাক্লিওড

1
উবুন্টু সাইটে একই প্রশ্ন রয়েছে: জিজ্ঞাসাবাবু / প্রশ্ন / ১৩70০৫/২ মন, আমি আপনাকে দোষ দিচ্ছি না, আমি প্রথমে এটিও খুঁজে পাইনি :)
স্টেফানো

উত্তর:


9

যখনই কোনও নাম ব্যবহার করা হয় আপনি কমান্ড চালাতে ssh / config এর লোকালকম্যান্ড অপশনটি ব্যবহার করতে পারেন। আমি ব্যবহার করি

host hostname
    user myusername
    localcommand xtermcontrol --bg '#abc'

এটি xtermcontrol এবং আপনার শব্দটি xterm হওয়ার উপর নির্ভর করে। সম্ভবত অন্যান্য পদগুলির জন্য অন্যান্য অ্যাপ্লিকেশন রয়েছে।

এই পদ্ধতির সাথে একমাত্র সমস্যা হ'ল আপনি যখন এসএসএস কল করবেন তখনই এটি ঘটে। রঙ পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনার মতো কিছুই নেই। আমি এটি এসএসএসের চারপাশে একটি ফাংশন মোড়ানো দ্বারা সম্পন্ন করেছি, তবে এটির কমতিও রয়েছে।

function ssh() {
  FG=$(xtermcontrol --get-fg)
  BG=$(xtermcontrol --get-bg)
  $(which ssh) "$@"
  xtermcontrol --fg="$FG"
  xtermcontrol --bg="$BG"
}

7

কমান্ড-লাইন থেকে বিদ্যমান উইন্ডোতে নতুন ট্যাব যুক্তgnome-terminal করার কোনও কার্যকারিতা রয়েছে বলে মনে হয় না । আপনি যা চান তা পূরণ করার জন্য কয়েকটি বিকল্প রয়েছে।

প্রতি কমান্ড প্রোফাইল

gnome-terminalপ্রতিটি হোস্টের জন্য একটি নতুন প্রোফাইল তৈরি করুন যা আপনি এসএসএইচ করবেন। আপনি যদি নিয়মিত সংযুক্ত থাকেন এমন কয়েকটি হোস্ট আপনার কাছে থাকে তবে এটি সবচেয়ে সহজ হতে পারে। প্রতিটি প্রোফাইলের আলাদা শিরোনাম, অগ্রভাগের রঙ, পটভূমির রঙ, কাস্টম কমান্ড এবং অন্যান্য সেটিংস সংজ্ঞায়িত থাকতে পারে। তারপরে আপনি File -> Open Tabনির্বাচিত প্রোফাইল সহ একটি নতুন ট্যাব খুলতে ব্যবহার করতে পারেন ।

পুনঃব্যবহারযোগ্য প্রোফাইল

একটি নতুন তৈরি করুন gnome-terminalপ্রোফাইলটি একটি নতুন উইন্ডোতে প্রতিটি সময় আপনি একটি ভিন্ন ssh হোস্ট (এই উপর ভিত্তি করে সংযুক্ত করতে চান খুলতে ব্যবহার করা হবে AskUbuntu উত্তর যে স্টেফানো নির্দিষ্ট)। আপনি ঘন ঘন বিভিন্ন হোস্টের সাথে সংযোগ স্থাপন করলে এটি ভাল কাজ করবে। এটি আপনাকে বিভিন্ন gnome-terminalউইন্ডোগুলির মধ্যে পার্থক্য করতে দেয় না যেখানে আপনি কেবল ব্যাকগ্রাউন্ড / অগ্রভাগের রঙগুলিতে বিভিন্ন হোস্টের সাথে সংযুক্ত থাকেন তবে উইন্ডোতে আপনার আলাদা শিরোনাম থাকবে।

  1. gnome-terminalপ্রোফাইলের File -> New Profileউপর ভিত্তি করে একটি নতুন প্রোফাইল ( ) তৈরি করুন Defaultএবং এটিকে "রিমোটহস্ট" কল করুন (নোট করুন, আদেশগুলি সহজ করার জন্য "রিমোটহস্ট" এ কোনও স্পেস নেই)।
  2. অধীনে Title and Commandট্যাব, পরিবর্তন করুন:
    1. Initial title: "রিমোট হোস্ট"
    2. When terminal commands set their own titles: প্রতি Replace initial title
  3. অধীনে Colorsট্যাব, পরিবর্তন করুন:
    1. টিকচিহ্ন তুলে দিন Use colors from system theme
    2. Build-in schemes: প্রতি Custom
    3. Text color:এবং Background color:আপনার পছন্দসই রং। মনে রাখবেন যে কিছু কমান্ড (যেমন ls) তাদের আউটপুটের জন্য রঙ ব্যবহার করে এবং আপনি এমন রঙ চয়ন করতে চান না যা আউটপুট পড়তে অসুবিধা করবে।
  4. Closeআপনার নতুন প্রোফাইলটি সংরক্ষণ করতে বোতামে ক্লিক করুন ।
  5. gnome-terminalকমান্ডটি ব্যবহার করে আপনি প্রতিটি প্রত্যন্ত এসএসএইচ হোস্টের জন্য একটি নতুন উইন্ডো খুলতে পারেন gnome-terminal --window-with-profile=RemoteHost -t "Some Remote SSH Host" -x ssh user@somehost-tবিকল্প সেট করে gnome-terminalউইন্ডোটি শিরোনাম এবং -xবিকল্প টার্মিনালে কমান্ড লাইন বাকি সঞ্চালন করে। আপনি aliasমোট কীস্ট্রোককে সংক্ষিপ্ত করতেও পারেন ।

কম্যান্ড-লাইন

আমি এই ব্লগ এন্ট্রিটি নীচের স্ক্রিপ্টের সাথে পেয়েছি যা ব্যবহার করে xdotoolএবং wmctrlকমান্ডগুলি ব্যবহার করে (সেগুলি উবুন্টুতে ডিফল্টরূপে ইনস্টল করা হয়নি, সুতরাং আপনার উইন্ডোটিতে নতুন ট্যাব খুলতে gnome-terminal Ctrl+ Shift+ tকীবোর্ড শর্টকাট ব্যবহার করতে হবে) gnome-terminal। এটি নির্দিষ্ট প্রোফাইলের সাথে একটি নতুন ট্যাব খুলতে এবং আপনার জন্য কিছু কমান্ড কার্যকর করতে সংশোধন করা যেতে পারে।

#!/bin/bash
# Path: /usr/local/bin/gnome-terminal
if [ "x$*" != "x" ]; then
  /usr/bin/gnome-terminal "$@"
else
  pgrep -u "$USER" gnome-terminal | grep -qv "$$"
  if [ "$?" == "0" ]; then
    WID=`xdotool search --class "gnome-terminal" | head -1`
    xdotool windowfocus $WID
    xdotool key ctrl+shift+t
    wmctrl -i -a $WID
  else
    /usr/bin/gnome-terminal
  fi
fi

অন্যান্য

আপনি সৃজনশীল পেতে পারেন এবং অন্যান্য কিছু চেষ্টা করতে পারেন।

এই সুপার ইউজার উত্তরটি মূলত একটি অস্থায়ী gnome-terminalপ্রোফাইল তৈরি করতে কিছুটা "স্ক্রিপ্ট-ফু" অ্যাক্রোব্যাট ব্যবহার করে যা একটি নতুন উইন্ডো খোলার জন্য ব্যবহৃত হয়। এটি আপনার ব্যবহারের জন্য পরিবর্তিত হতে পারে।

আপনি যখনই কোনও দূরবর্তী হোস্টে এসএসএইচ করবেন তখন আপনি সম্ভবত এই স্ট্যাক ওভারফ্লো প্রশ্নোত্তর এবং আরও "স্ক্রিপ্ট-ফু" অ্যাক্রোব্যাটগুলি gnome-terminalশিরোনামটিকে পরিবর্তনশীল করতে ব্যবহার করতে পারেন। এটি ব্যাকগ্রাউন্ড / অগ্রভাগের রঙ পরিবর্তনের মতো বিশিষ্ট হবে না তবে এটি Terminalসর্বকালের একটি মানক শিরোনামের চেয়ে ভাল better


6

এটি জিনোমে কাজ করবে, যদি আপনি প্রতিটি এসএস সেশনের জন্য একটি নতুন জিনোম-টার্মিনাল উইন্ডো ব্যবহার করতে চান।

  1. "রিমোট" নামে একটি নতুন প্রোফাইল তৈরি করুন (বিভিন্ন পটভূমির রঙ সহ)

  2. এর মধ্যে নিম্নলিখিতটি প্রবেশ করান .bash_aliasesবা.bashrc

    ### add to .bash_aliases, for differentiating between local and remote hosts 
    sshhelper() {
       gnome-terminal --window-with-profile=Remote -x bash -c "ssh $1";
    }
    alias sshc=sshhelper
    

এখন "রিমোট" প্রোফাইলের সাথে sshc remote-machineএকটি নতুন জিনোম-টার্মিনাল সেশনটি খোলে । এটি স্থানীয় এবং দূরবর্তী প্রোফাইলগুলির মধ্যে পার্থক্য করবে।

একাধিক প্রোফাইল / হোস্ট সমন্বিত করতে একাধিক প্রোফাইল তৈরি করুন এবং এর .bash_aliasesপরিবর্তে এর মতো কিছু রাখুন :

### add to .bash_aliases, for differentiating between multiple remote hosts
sshhelper() {
    HOST=`echo $1 | cut -d'@' -f2`

    case $HOST in
        Production )  PROFILE="Red" ;;
        Test )        PROFILE="Green" ;;
        # ... if you have more cases ...
        *)           PROFILE="Default" ;;
    esac

    gnome-terminal --window-with-profile=$PROFILE -x bash -c "ssh $1";
}

# alias ssh=sshhelper    # this will "override" the ssh command, but may break other stuff!
alias sshc=sshhelper

এখন sshc Production"রেড" প্রোফাইল ব্যবহার করে sshc Testএকটি নতুন সেশন উইন্ডো খুলবে, "সবুজ" প্রোফাইল ব্যবহার করে একটি নতুন সেশন উইন্ডোটি খুলবে এবং অন্যান্য হোস্টগুলি "ডিফল্ট" প্রোফাইল ব্যবহার করবে।


2

স্ট্যাক *** সাইটগুলি থেকে সমস্ত তথ্য একত্রিত করা হ'ল পুদিনা সাথী + সাথী টার্মিনাল (জিনোমের মতো) এর সর্বাধিক সহজ সমাধান আমি পেয়েছি।

  1. সাথী টার্মিনালে বিভিন্ন ব্যাকগ্রাউন্ড সহ দ্বিতীয় প্রোফাইলটি সংজ্ঞায়িত করুন।
  2. ডিফল্ট কীগুলি Alt + PageDown / Alt + PageUp- এর প্রোফাইল এবং পটভূমি পাশাপাশি পরিবর্তন করতে হবে কিনা তা পরীক্ষা করুন।
  3. sudo apt get install xdotool

এখন আপনি / etc / ssh / ssh_config পরিবর্তন করতে পারেন, যাতে প্রতিটি ssh সেশনটি প্রতিষ্ঠিত হওয়ার পরে এটি প্রোফাইলটি পরিবর্তন করতে পারে:

Host *
  PermitLocalCommand yes
  LocalCommand xdotool key Alt+Page_Down

এখন, প্রতিটি এসএসএস সংযোগ টার্মিনালে প্রতিষ্ঠিত হওয়ার পরে, প্রোফাইলটি পরিবর্তন করা হবে এবং আপনি আর কখনও প্রোডাকশন ডেটাবেজে অযাচিত এসকিএল আপডেট রাখবেন না :)

তবে, ssh সংযোগ বন্ধ হয়ে যাওয়ার পরে ডিফল্ট প্রোফাইলে ফিরে যাওয়ার সহজ সমাধান নেই। তবে এটি আমার পক্ষে যথেষ্ট দেখায় এবং আমি আরও তথ্যের জন্য খনন করি না।

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