Ssh হোস্টনামের ভিত্তিতে টার্মিনাল পটভূমি স্বয়ংক্রিয়ভাবে কীভাবে পরিবর্তন করবেন?


9

আপনি যে হোস্টনেটে নামাবেন তার উপর ভিত্তি করে একজন কীভাবে কোনও টার্মিনাল উইন্ডোর পটভূমির রঙ পরিবর্তন করতে পারে?

অর্থাত্ যখন আমি প্রোডাকশন হার্ডওয়্যারটিতে লাইভ এম্বেড থাকা সিস্টেমে প্রবেশ করি, আমি টার্মিনালটির পটভূমিটি লাল রূপে পরিবর্তন করতে চাই - আমি কোন সার্ভারে আছি "সচেতনতা বজায় রাখতে"। পিএস 1 এ কেবল হোস্টের নাম থাকা যথেষ্ট নয়।

আমি জিনোম-টার্মিনাল ব্যবহার করছি, তবে লিনাক্সের অধীনে কোনও কার্যক্ষম সমাধান গ্রহণ করব।

উত্তর:


7

আপনি পটভূমির রঙ পরিবর্তন করতে এএনএসআই পলায়নের ক্রম নির্গমন করতে ssh লোকালকমন্ড ব্যবহার করতে পারেন এবং রিমোট হোস্টের সাথে উপযুক্ত হতে চান এমন উপযুক্ত রঙ নির্বাচন করতে প্রতি হোস্টের (বা হোস্ট প্যাটার্ন) একটি বিভাগ থাকতে পারেন।

যদি আপনার প্রোডাকশন সার্ভারগুলি "প্রোড দিয়ে শুরু হয়" এর মতো নামকরণের কনভেনশন অনুসরণ করে, আপনি আপনার। / .Ssh / config ফাইলটিতে নিম্নলিখিত স্নিপেটটি চেষ্টা করতে পারেন: Host prod* PermitLocalCommand yes LocalCommand printf "\x1b[41m\x1b[2JPRODUCTION SYSTEM [%n]\n\n"

ওয়াইল্ডকার্ড নিদর্শনগুলি ব্যবহার করার জন্য যদি কোনও নামকরণের নামকরণ না হয় তবে আপনি কেবল ফাঁকা জায়গাগুলির দ্বারা পৃথক হোস্টনাম তালিকাভুক্ত করতে পারেন। আপনি বিভিন্ন অন্যান্য উত্পাদনহীন সার্ভারের জন্য বিভিন্ন বর্ণের মান এবং স্ট্রিং সহ অতিরিক্ত হোস্ট ব্লক তৈরি করতে পারেন।

প্যাটার্নটির সাথে মেলে এমন কোনও হোস্টের সাথে সংযোগ স্থাপনের পরে, প্রিন্টফের সাথে স্থানীয়ভাবে সম্পাদন করা হবে, পটভূমির রঙটি লাল রূপে পরিবর্তন করা হবে ([৪১ মিটার ব্যাকগ্রাউন্ডের রঙ হিসাবে লালকে বেছে নেয়, [২ জে অংশটি আপডেট হওয়া ব্যাকগ্রাউন্ড রঙের সাহায্যে পুরো স্ক্রিনটি পুনরায় রঙ করে দেখুন See আরও অনেক বিকল্পের জন্য https://en.wikedia.org/wiki/ANSI_escape_code )

এই পদ্ধতির সম্পর্কে সবচেয়ে বড় উপদ্রবটি হ'ল ব্যাকগ্রাউন্ডের রঙ ssh অধিবেশন থেকে প্রস্থান করার জন্য স্থির থাকে; সংযোগ বিচ্ছিন্ন করার জন্য লোকালকমন্ডের কোনও পাল্টা নেই (যা আমি অবগত)। এসএসএসের জন্য একটি উপনাম বা শেল র‌্যাপার স্ক্রিপ্ট printf "\x1b[0m"রিসেট হিসাবে প্রার্থনা করতে পারে । অন্যদিকে, লোকালকমন্ডের মাধ্যমে ব্যাকগ্রাউন্ড রঙ সেট করার অর্থ হ'ল ssh একটি মোড়ক স্ক্রিপ্ট বা ওরফে দিয়ে চালানো না হলেও আপনি রঙ সেট পাবেন।


দুর্দান্ত উত্তর! আমি যে সমস্যাটি দেখছি কেবল এটিই একটি তাৎপর্যপূর্ণ, রঙ পরিবর্তন কেবল প্রথম "স্ক্রিন" এর জন্যই থাকে। কমান্ডগুলি প্রবেশ করানো মাত্রই, এবং স্ক্রিনটি উপরের দিকে স্ক্রোল করার সাথে সাথে এটি লাল থেকে কালো হয়ে যায়। সম্ভবত জিনোম-টার্মিনাল রঙ নিয়ন্ত্রণ এএনএসআই অব্যাহতি ক্রমটি ওভাররাইড করছে? আপনি একটি workaround জানেন?
Mtl Dev

সম্ভবত এসএসএইচ হোস্টে পিএস 1 প্রম্পট ভেরিয়েবলের মতো অনুরূপ কিছু করা সম্ভব?
Mtl Dev

রিসেটটি আপনার PS1 প্রম্পট ভেরিয়েবলের সিক্যুয়েন্সগুলির কারণে ঘটতে পারে বা আপনার যদি lsএলিয়াসের মতো কমান্ড থাকে ls --color=autoএবং এতে রিসেট সিক্যুয়েন্স '<ESC> [0 মি' অন্তর্ভুক্ত থাকে। তবুও চালিয়ে যাওয়ার জন্য আপনাকে সম্ভবত বিভিন্ন জিনোম-টার্মিনাল প্রোফাইল সেটআপ করতে হবে এবং হোস্টনামের উপর ভিত্তি করে একটি প্রোফাইল নাম নির্বাচন করে এবং অনুরোধ করতে হবেgnome-terminal --profile=$PROFILE_NAME -e ssh $HOST &
রিকেটার

আপনি ঠিক বলেছেন: আমার কাছে ls --colourবা পিএস 1 এ পুনরায় সেট করার ক্রম থাকলে, একা একা পূর্ববর্তী আনসির রঙ সেটিংসকে ওভাররাইড করে। সুতরাং আমি আপনার প্রস্তাবিত র‌্যাপার স্ক্রিপ্ট সমাধানটি বাস্তবায়নের দিকে নজর দেব, এটিও একটি দুর্দান্ত ধারণা! মেরি বিউউক!
Mtl Dev

ঠিক তাই ওথেররা সচেতন: print / .ssh / কনফিগারেশনে প্রিন্টফ যোগ করার ফলে rsync ভাঙ্গতে দেখা যাচ্ছে। এখানে সম্পর্কিত বিশদ বিবরণ: সার্ভারফলট.কোশনস
দেব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.