สี“ รีเซ็ต” ของเทอร์มินัลหลังจาก ssh exit / logout


17

เมื่อฉันเข้าสู่เซิร์ฟเวอร์ระยะไกลฉันชอบสีของเทอร์มินัลเพื่อเปลี่ยน ฉันใช้ setterm ในรีโมตไฟล์ ~ / .bashrc ของฉันเพื่อทำสิ่งนี้ให้สำเร็จ อย่างไรก็ตามเมื่อฉัน exitสีเทอร์มินัลจะไม่ถูกรีเซ็ตเป็นสีท้องถิ่น

ฉันแก้ไขปัญหาแล้ว แต่ฉันไม่แน่ใจว่านี่เป็นทางออกที่ดีที่สุดหรือไม่ นี่คือสิ่งที่ฉันสามารถทำได้

บน ~ / .bash_logout บนรีโมตเซิร์ฟเวอร์ฉันใส่:

echo -e "\033[0m"
/usr/bin/clear

เพิ่งออกมาจากความอยากรู้: ไม่มีใครรู้วิธีที่ดีกว่า? (ฉันได้รับ echo -e "\033[0m" สายจาก http://edoceo.com/liber/linux-bash-shell )


2
ฉันแนะนำให้คุณใช้ tput เพื่อเปลี่ยนสีแทน ค้นดูสิ.
Ram

คุณตั้งค่าสีอะไรและอย่างไร คุณหมายถึงพรอมต์ของคุณหรือไม่ PS1 )?
terdon

คำตอบ:


31

ที่ดีกว่า:
tput sgr0 โดยปกติเท่ากับ echo -en "\e[0m"

ความแตกต่างคือการใช้ tput จะปรับถ้าประเภทอาคารอื่นนอกเหนือจาก ANSI - และได้รับการตั้งค่าอย่างถูกต้อง

man 5 terminfo สำหรับรหัสเพิ่มเติมที่จะใช้

ในนั้นคุณจะพบ 'รีเซ็ต' ดังนั้น tput reset ควรทำงาน.


$ echo -e "\e[7m TEST \e[0m"  
 ทดสอบ  $ echo -e "$ (tput rev) TEST $ (tput sgr0)"  ทดสอบ  $ 

(การทดสอบการทดสอบควรมีการสลับสีพื้นหลัง / พื้นหน้าไม่สามารถแสดงได้ที่นี่ - "เลียนแบบ" เท่านั้น)


พบตัวเลือกอื่นสำหรับสิ่งนี้ วิธี geeky น้อย:

แพ็กเกจ util-linux (บน Ubuntu) setterm (ยูทิลิตี้ของเชลล์)

ชนิด setterm --help และคุณจะพบตัวเลือกที่ใช้ได้


echo -e "\e \033 \x1b " | od -t x1z - ไหนที่อ่านได้มากที่สุด
Hannu

16

ฉันเชื่อว่าคุณกำลังมองหาคำสั่งคอนโซล "รีเซ็ต"


2
ปัญหาในการรีเซ็ตคือการลบเนื้อหาคอนโซลทั้งหมดและบางครั้งก็ไม่ใช่สิ่งที่คุณต้องการ
niglesias

3

คุณอาจพบว่าใช้สิ่งนี้ใน. bash_logout จากระยะไกลที่เหมาะสมกว่า:

tput init

มันอาจจะดีถ้ามีสิ่งนี้ในทุก ๆ . bash_logout เป็นแนวปฏิบัติทั่วไปที่ดี


2

หากคุณใส่สีที่คุณต้องการใน ~ / .bashrc ของบัญชีระยะไกลควรมีผลในการเข้าสู่ระบบและเปลี่ยนกลับเป็นการตั้งค่าท้องถิ่นเมื่อออก


ฉันก็คิดเช่นกัน แต่พวกเขาไม่ได้ย้อนกลับเมื่อฉันออกจาก ssh อาจเป็นเพราะฉันใช้ setterm ใน. bashrc (ใช้เทอร์มินัล GNOME) คุณใช้วิธีการอื่นในการตั้งค่าชุดสีใน. bashrc หรือไม่?
dgo.a

ถ้าคุณใช้ GNOME ฉันกำลังสมมติว่าคุณใช้งาน linux ฉันใช้ Ubuntu แต่ฉันคิดว่ากระบวนการนี้ค่อนข้างคล้ายกับ distros คุณสามารถสำรองไฟล์แล้วเปิดในโปรแกรมแก้ไขข้อความและแก้ไขเนื้อหาเริ่มต้นที่บรรทัดที่ระบุว่า PS1 = คุณสามารถหาข้อมูลได้ที่ novell.com/coolsolutions/tools/17142.html . มันบอกคุณมากกว่าที่คุณอยากรู้เกี่ยวกับไฟล์. bashrc
Yitzchak

1
เอ่อไม่ การตั้งค่าเทอร์มินัลไม่ได้ขึ้นอยู่กับสิ่งที่คุณทำในเทอร์มินัล พวกมัน (anthromorphizing!) ไม่สนใจว่าคุณอยู่ในพื้นที่ห่างไกลทำงานในสวาฮีลีหรืออะไรก็ตาม มันเป็นเครื่องจักรของรัฐที่เรียบง่าย เนื่องจากคุณใช้คำสั่งเพื่อเปลี่ยนเป็นบางสิ่ง ... คุณต้องใช้คำสั่งเพื่อเปลี่ยนเป็นอย่างอื่น โซลูชัน. bash_logout เป็นวิธีที่ดีที่สุดยกเว้นว่าคุณต้องการเขียนนามแฝง / ฟังก์ชั่นเพื่อตัดคำสั่ง ssh ของคุณ Blech ง่ายขึ้นทำการตั้งค่าของคุณ (ไม่ว่าจะเป็นอะไร) เป็นส่วนหนึ่งของเอาต์พุตพรอมต์ PS1 ของคุณ เมื่อคุณเข้าสู่ระบบมันจะเปลี่ยนออกจากระบบพร้อมท์เก่าจะคืนสภาพ
lornix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.