ฉันมักจะเข้าสู่เซิร์ฟเวอร์ที่แตกต่างจากหน้าต่าง terminal x ของฉัน
ฉันต้องการกำหนดแบบแผนชุดสีสำหรับโฮสต์ที่แตกต่างกันเพื่อให้หน้าต่างเทอร์มินัลของฉันแยกแยะได้ง่ายขึ้น สิ่งนี้สามารถทำได้โดยอัตโนมัติ?
ฉันมักจะเข้าสู่เซิร์ฟเวอร์ที่แตกต่างจากหน้าต่าง terminal x ของฉัน
ฉันต้องการกำหนดแบบแผนชุดสีสำหรับโฮสต์ที่แตกต่างกันเพื่อให้หน้าต่างเทอร์มินัลของฉันแยกแยะได้ง่ายขึ้น สิ่งนี้สามารถทำได้โดยอัตโนมัติ?
คำตอบ:
นี่คือทางออกที่สมบูรณ์ เก็บรายการที่อยู่ IP ของเซิร์ฟเวอร์ของคุณและ / หรือโดเมนและสีที่คุณต้องการใช้ใน ~ / .server_colors:
192.168.122.102, Red Sands 192.168.122.103, โอเชียน www.foo.com หญ้า foo.com หญ้า
จากนั้นเพิ่มบรรทัดนี้ใน ~ / .profile เพื่อจี้คำสั่ง ssh:
alias ssh = "~ / bin / safe_ssh $ 1"
จากนั้นเปรียบเทียบสิ่งที่อยู่หลัง @ ในเป้าหมายของคุณกับรายการของคุณ หากมีการจับคู่ให้เรียกใช้ AppleScript เพื่อเปลี่ยนหน้าจอเป็นสีที่สอดคล้องกัน นี่คือ ~ / bin / safe_ssh:
#! / bin / ทุบตี ip = `echo $ 1 | ตัด -d "@" -f2` match = `cat ~ / .server_colors | grep $ ip | ห้องสุขา -l` ถ้า [$ match -gt 0] แล้วก็ color = `cat ~ / .server_colors | grep $ ip | ตัด -f2 -d "," ` osascript ~ / bin / change_terminal_color.scpt "$ color" 2> / dev / null Fi / usr / bin / ssh $ 1
และสุดท้ายนี่คือ ~ / bin / change_terminal_color.scpt
ในการทำงาน argv บอกแอพพลิเคชั่น "Terminal" เพื่อตั้งค่าปัจจุบันของแท็บที่เลือกของหน้าต่าง 1 ถึง (ตั้งค่าแรกที่ชื่อ (รายการ 1 ของ argv)) สิ้นสุดวิ่ง
ฉันใช้รหัสนี้ส่วนใหญ่จากโพสต์บล็อกนี้
ใช่.
คุณใช้เช่น "หน้าจอ" และปรับแต่ง: http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html
หรือคุณจัดการให้ลูกค้า SSH ของคุณถ้าเป็นไปได้
คุณสามารถลองสิ่งนี้: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
วิธีแก้ปัญหาของ @muirbot นั้นใช้ได้ผลดีสำหรับฉัน ฉันได้ทำการปรับปรุงเล็กน้อยกับสิ่งนั้น ฉันจะเพิ่มไว้ใต้โพสต์ของเขาเมื่อฉันมีชื่อเสียงเพียงพอ
แทนที่บรรทัด
IP =echo $1 | cut -d"@" -f2
กับ IP =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
การเปลี่ยนแปลงนี้อนุญาตให้กำหนดอาร์กิวเมนต์เพิ่มเติมให้กับคำสั่ง ssh ของคุณเช่น "ssh -p 1111 userName @ host"
การแสดงออกปกติช่วยให้ที่อยู่ ipv4 ง่ายและชื่อโดเมน
หากต้องการสนับสนุนการขัดแย้งหลาย ๆ ครั้งให้เปลี่ยนบรรทัดสุดท้ายเป็น
/ usr / bin / ssh $ @
ฉันแค่มองหาสิ่งเดียวกันและพบบทความนี้:
http://akrabat.com/php/osx-terminal-colours/
มันใช้สคริปต์ PHP เพื่อเปลี่ยนสีขั้วโดย applescript คุณสามารถตั้งค่าการจับคู่สีที่แตกต่างกันสำหรับแต่ละเซิร์ฟเวอร์ ใช้งานได้ดีสำหรับฉัน แต่รู้สึกอยากที่จะเขียนสิ่ง php เป็นทับทิม :)
FK
ฉันใช้สคริปต์ที่เปิดตัว SSH ใน windows xterm ด้วยสี bg / fg ที่แตกต่างกัน มันเลือกสีตามแฮชของชื่อโฮสต์จากช่วงสีเพื่อไม่จำเป็นต้องกำหนดค่า
สคริปต์เขียนด้วย Ruby: https://github.com/mickeyil/ssx
หากคุณใช้ iTerm2 ให้สร้างไฟล์ที่~/bin/ssh-host-color.sh
มีชื่อเนื้อหาจากhttps://gist.github.com/jbochi/31f118b8ae2882a2c90fa46c46509b57 :
set_term_bgcolor(){
local R=$1
local G=$2
local B=$3
/usr/bin/osascript <<EOF
tell application "iTerm"
tell the current window
tell the current session
set background color to {$(($R*65535/255)), $(($G*65535/255)), $(($B*65535/255))}
end tell
end tell
end tell
EOF
}
if [[ "$@" =~ "production.example.com" ]]; then
set_term_bgcolor 40 0 0
elif [[ "$@" =~ "qa.example.com" ]]; then
set_term_bgcolor 0 40 0
fi
trap "set_term_bgcolor 0 0 0" EXIT
ssh $@
และเพิ่มบรรทัดต่อไปนี้ใน~/.aliases.sh
ไฟล์ของคุณ:
alias ssh="~/bin/ssh-host-color.sh $@"