ما هي طريقة سهلة للحصول على محطة استخدام لون مختلف على أساس اسم مضيف SSH؟

StackOverflow https://stackoverflow.com/questions/1905645

  •  19-09-2019
  •  | 
  •  

سؤال

باستخدام المعجون في Windows، يمكنك حفظ الجلسات التي تتصل بمضيف معين واستخدم لون نص معين ... كان هذا مفيدا للغاية بالنسبة لي منذ أن أعمل مع مجموعة من المضيفين عن بعد وأنا أتساءل عما إذا كان هناك (يجب أن يكون هناك كن) وسيلة للحصول على محطة (في سنو ليوبارد) لمحاكاة هذا السلوك.

أنا أتساءل كيف أود أن أقوم بحفظ اتصال (مثل username@hostname.com) ولديك هذا الاتصال مفتوحا دائما بألوان نص معين (مثل # 00FF00) 2. من الناحية المثالية، لديك أي نافذة الطرفية اكتشاف ما المضيف وتغيير لونها وفقا لذلك. لذلك إذا كنت في بيئتي النهائية العادية وأصدرت ناجحة ssh username@hostname.com, ، ستقوم تلقائيا بتغيير لون النص في تلك النافذة الطرفية (أو علامة التبويب) إلى # 00FF00

اسمحوا لي أن أعرف، شكرا!

هل كانت مفيدة؟

المحلول

في المحطة الطرفية، يمكنك تحديد ملفات التعريف مع لون خلفية نافذة مختلفة، عتامة، إلخ. أيضا في ملفات التعريف، يمكنك تحديد أمر بدء التشغيل. يمكنك إعداد ملف تعريف مختلف لكل مضيف تستخدمه باستخدام أمر بدء التشغيل من "SSH Me @ Thathost"، ولكن هذا لن يعمل فقط لنظام Windows الجديد. الملفات الشخصية سهلة الوصول إليها عبر Shell -> نافذة جديدة.

نصائح أخرى

انقر فوق موافق، إذا كنت تصر على استدعاء SSH من سطر الأوامر، فإليك شيء يجب أن يفعل الخدعة: اكتب نص شل واحفظه في مكان ما colorssh.sh. وبعد عندما يعمل، فإنه ينظر إلى حججه لمضيف مطابق ويضع ألوان نافذة المحطة النشطة بشكل مناسب. ثم يستدعي SSH الحقيقي، يمر على طول هذه الحجج. عندما تقوم SSH بإرجاع التنفيذ إلى البرنامج النصي، فإنه يحدد الألوان مرة أخرى إلى وضعها الطبيعي.

منذ أنك تريد الحفاظ على الكتابة ssh بدلا من colorssh.sh, ، يمكنك تعيين الاسم المستعار الخاص بك .profile.

أما بالنسبة للسيناريو نفسه؟ هنا هو تيه كودز:

#!/bin/bash

function setTerminalColors {
    osascript \
        -e "tell application \"Terminal\"" \
        -e "tell selected tab of front window" \
        -e "set normal text color to $1" \
        -e "set background color to $2" \
        -e "end tell" \
        -e "end tell"
}

for ARG in $*
do
    case "$ARG" in
        host.example.com)
        username@host.example.com)
            setTerminalColors "{0,65535,65535}" "{65535,0,0}"
            ;;
        username@otherhost.example.com)
            setTerminalColors "{65535,65535,0}" "{0,65535,0}"
            ;;
    esac
done

ssh $*

# back to normal
setTerminalColors "{0,0,0}" "{65535,65535,65535}" 

سيكون عليك تحرير البرنامج النصي لإضافة مجموعات مضيفة / ألوان جديدة.

لاحظ أنه يجب تحديد الألوان كثبط ثلاثي الأطباء RGB في النطاق 0-65535. أنا أعرف، غريب، أليس كذلك؟

من الناحية الفنية، تغيير جزء AppleScript الخصائص المهملة. من المفترض أن تقوم بتغيير ألوان النافذة عبر خاصية "إعدادات الإعدادات" الخاصة بها، لكنني أظن أن تغيير كل النوافذ باستخدام إعدادات الإعدادات هذه، وليس فقط واحد الحالي.

أيضا، يفترض هذا البرنامج النصي أن الأسود على الأبيض هو الإعداد "الطبيعي" الخاص بك. إذا لم يكن الأمر كذلك، فيمكنك تغيير البرنامج النصي لحفظ القيم الحالية قبل تشغيل أو استخدام الألوان من مجموعة الإعدادات الافتراضية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top