Ketika saya ssh ke server jauh, saya suka warna terminal untuk berubah. Saya menggunakan setterm
file ~ / .bashrc jarak jauh untuk menyelesaikannya. Namun, ketika saya exit
, warna terminal tidak diatur ulang ke warna lokal.
Saya memecahkan masalah, tetapi saya tidak yakin apakah itu solusi terbaik. Inilah yang bisa saya pikirkan.
Pada ~ / .bash_logout di server jauh, saya masukkan:
echo -e "\033[0m"
/usr/bin/clear
Hanya karena penasaran: Adakah yang tahu cara yang lebih baik? (Saya mendapat echo -e "\033[0m"
garis dari http://edoceo.com/liber/linux-bash-shell )
tput
untuk mengubah warna. Lihat itu.PS1
)?Jawaban:
Lebih baik:
tput sgr0
biasanya setara denganecho -en "\e[0m"
Perbedaannya adalah bahwa menggunakan tput akan beradaptasi jika jenis terminal selain ANSI - dan telah diatur dengan benar.
man 5 terminfo
untuk menggunakan lebih banyak kode.Di sana Anda akan menemukan 'reset' sehingga
tput reset
seharusnya berfungsi.(Cetakan TEST seharusnya bertukar warna latar / latar depan, tidak dapat ditampilkan di sini - hanya "ditiru")
Menemukan opsi lain untuk ini , dengan cara yang kurang culun:
paket util-linux (on ubuntu) berisi
setterm
(utilitas shell).ketik
setterm --help
dan Anda akan menemukan opsi yang tersedia.Output AKTUAL dari
tput sgr0
... tergantung pada bagaimana terminal Anda diatur, misalnya
untuk yang di atas.
Jelajahi lebih lanjut, mulailah di sini mungkin https://en.wikipedia.org/wiki/Terminfo
panduan Programmer untuk ncurses - buku google
Catatan: ncurses menyediakan antarmuka untuk termcap, terminfo dan tentu saja kutukan.
sumber
echo -e "\e \033 \x1b " | od -t x1z
- mana yang paling mudah dibaca?tput sgr0
mengembalikan sesuatu yang berbeda dari\e[0m
, lihat ini:a=$(tput sgr0); set | grep ^a=
dan lihat hasilnya. Bisakah Anda juga memberi tahu untuk apasetterm
pilihan yang setara\e[0m
?\e[0m
atau yang sama\e[m
untuk terminal jenis ANSI, tput sgr0 mungkin memberi Anda sesuatu yang sama sekali berbeda jika terminal Anda bukan ANSI. Anda tidak dapat memastikan bahkan untuk terminal ANSI, karena terminal yang Anda gunakan mungkin telah diatur secara berbeda dalam database terminfo.TERM=ansi a=$(tput sgr0); set | grep ^a=
dan hasilnyaa=$'\E[0;10m'
. Ini terlihat berbeda dari\e[0m
\e(B\e[m
- harapkan perbedaan!Saya yakin Anda sedang mencari "reset" perintah konsol
sumber
Anda mungkin menemukan menggunakan ini di .bash_logout jauh lebih tepat:
Mungkin baik untuk memiliki ini pada setiap .bash_logout sebagai praktik umum yang baik (dan mungkin bahkan pada ~ / .profile)
sumber
Jika Anda meletakkan warna yang Anda inginkan di akun remote ~ / .bashrc, itu akan mulai berlaku saat masuk dan kembali ke pengaturan lokal Anda saat keluar.
sumber