由于經(jīng)常需要在模擬終端上遠程登上服務(wù)器做各種操作, 而且很多時候需要同時用不同的窗口登上不同的服務(wù)器, 本辦法能讓人一目了然的分辨出哪個窗口登陸的是哪臺機器(最好是IP).
bash支持環(huán)境變量PROMPT_COMMAND, 將其設(shè)置為一個命令行字符串或者是包含命令行字符串的一個文件的文件名, 命令行用來在顯示prompt之前執(zhí)行. 在redhat系列的機器上(redhat,fedora)都支持文件/etc/sysconfig/bash-prompt-xterm來保存bash+xterm下的PROMPT_COMMAND環(huán)境變量的內(nèi)容, 結(jié)合這幾點, 就可以輕松實現(xiàn)"在窗口標(biāo)題部分顯示已登陸服務(wù)器的ip地址"這個功能.
1) 設(shè)置term類型是xterm時標(biāo)簽顯示內(nèi)容, 即$PROMPT_COMMAND環(huán)境變量的值:
# vi /etc/sysconfig/bash-prompt-xterm
-----------------------------------------------------------------------
echo -ne "/e]2;${USER}@$(/sbin/ifconfig eth0|grep 'inet addr'|sed -e 's/^.*inet addr:/(.*/) Bcast.*$//1/')/a"
-----------------------------------------------------------------------
說明:
"/e]2"是xterm支持的第三種escape序列, 用來設(shè)置窗口的標(biāo)題;
"$(.*)"的內(nèi)容是shell命令, 用來取出服務(wù)器eth0網(wǎng)卡的當(dāng)前ip地址;
"/a"是xterm支持的escape序列的結(jié)束符.
2) 設(shè)置term類型是screen時(命令screen進入新窗口時)標(biāo)簽顯示內(nèi)容, 和xterm一樣:
# cp /etc/sysconfig/bash-prompt-xterm /etc/sysconfig/bash-prompt-screen
3) 設(shè)置term類型不是xterm和screen時標(biāo)簽顯示內(nèi)容, 也和xterm一樣:
# cp /etc/sysconfig/bash-prompt-xterm /etc/sysconfig/bash-prompt-default
4) 這幾個文件需要有可執(zhí)行權(quán)限:
# chmod +x /etc/sysconfig/bash-prompt-*
現(xiàn)在重新登錄操作系統(tǒng)或者切換用戶, 模擬終端如SecureCRT的標(biāo)簽欄就會動態(tài)更新了.
--End--