ค้นหาวิธีเปลี่ยนสีของเทอร์มินัลโดยอัตโนมัติเมื่อเปลี่ยนเป็นเครื่องระยะไกลและเปลี่ยนกลับเป็นสีเริ่มต้นเมื่อออกจากเซสชัน ssh เพียงต้องการมีสีอื่นเมื่อฉันทำงานกับเครื่องระยะไกล
ความคิดใด ๆ
ps: ไม่ต้องการใช้ iTerm2 แต่เป็น Terminal.app มาตรฐาน
ค้นหาวิธีเปลี่ยนสีของเทอร์มินัลโดยอัตโนมัติเมื่อเปลี่ยนเป็นเครื่องระยะไกลและเปลี่ยนกลับเป็นสีเริ่มต้นเมื่อออกจากเซสชัน ssh เพียงต้องการมีสีอื่นเมื่อฉันทำงานกับเครื่องระยะไกล
ความคิดใด ๆ
ps: ไม่ต้องการใช้ iTerm2 แต่เป็น Terminal.app มาตรฐาน
คำตอบ:
ฉันใช้สิ่งต่อไปนี้
มีคำสั่งเชลล์ที่เรียกว่าmyssh
พร้อมเนื้อหา:
PROFILE="$1";shift;
DEF="Basic" #the default profile name
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${PROFILE}\""|osascript
ssh $@
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${DEF}\""|osascript
และใช้นามแฝง bash สำหรับการเชื่อมต่อเช่น:
alias ssweb='myssh Homebrew user@web.example.com'
alias ssmail='myssh Ocean me@mail.example.com'
เมื่อฉันต้องการที่จะ ssh ลงในเว็บเซิร์ฟเวอร์ฉันเพียงแค่เขียนssweb
ใน Terminal และฉันได้รับโปรไฟล์ "Homebrew" เมื่อสิ้นสุดเซสชัน ssh AppleScript จะตั้งค่ากลับเป็น "พื้นฐาน"
นามแฝงควรเข้าสู่ $ HOME / .profile หรือไฟล์ bash-startup ที่คล้ายกันของคุณ
"Homebrew", "Ocean" ฯลฯ เป็นโปรไฟล์การตั้งค่าจากการตั้งค่า Terminal.app นอกจากนี้คุณยังสามารถตั้งค่าแบบอักษรการเข้ารหัสและอื่น ๆ ที่แตกต่างกัน
แน่นอนคุณสามารถใช้งานได้โดยตรง (ไม่มีนามแฝง) เช่น:
myssh Pro user@another.machine.example.com
^ ^
| ssh command arguments
terminal profile name
ฉันรู้ว่ามีคำตอบอยู่สองสามข้อ แต่นี่เป็นทางเลือก:
ไม่มีวิธีทั่วไปในการเปลี่ยนสีพื้นหลัง แต่เราสามารถใช้วิธีมาตรฐานเพื่อเปลี่ยนชื่อหน้าต่าง หากคุณลงชื่อเข้าใช้อุปกรณ์ที่ไม่ใช่ "เซิร์ฟเวอร์ Unix" (เช่นอุปกรณ์เครือข่ายเราเตอร์สวิตช์ไฟร์วอลล์ ฯลฯ ) คุณต้องใช้เชลล์และไม่สามารถติดตั้งตัวแปรเชลล์ของคุณเองได้ ดังนั้นนี่คือวิธีอื่น:
function ssh() {
H=$(echo $@ | sed -e 's/.*@//g;s/ .*//g')
echo $@ | grep '@' && U=$(echo $@ | sed -e 's/@.*//g;s/.* //g')
echo -ne "\033]0;${U:=$(whoami)}@${H%%.*}\007"
unset H
unset U
/usr/bin/ssh $@
}
.bashrc
เพิ่มไปของคุณ
โดยทั่วไปเมื่อต้องการฟังก์ชั่นและนามแฝงเพื่อดูในเส้นทางนี้ใช้คำสั่ง ssh และใช้ข้อความก่อนและหลัง "@" เพื่อตั้งค่าตัวแปร HOST และ USER ซึ่งจะใช้ในการสะท้อนรหัส ASCII ซึ่งได้รับการยอมรับโดย terminal และใช้ในการตั้งชื่อ
คุณต้องใช้ "ssh user@host.blah" สำหรับสิ่งนี้และไม่ใช่ "ssh -l user host.blah"
หากคุณไม่ได้ระบุชื่อผู้ใช้มันจะตั้งเป็นชื่อผู้ใช้ปัจจุบันของคุณ (เห็นได้ชัดว่าคุณใช้. ssh / config ที่กำหนดเอง (ซึ่งฉันใช้บ่อย) สิ่งนี้จะไม่ถูกต้อง แต่ฉันคิดว่ามันดีพอ เพื่อเป็นประโยชน์