由於經常需要在類比終端上遠程登上伺服器做各種操作, 而且很多時候需要同時用不同的視窗登上不同的伺服器, 本辦法能讓人一目瞭然的分辨出哪個視窗登陸的是哪台機器(最好是IP).
bash支援環境變數PROMPT_COMMAND, 將其設定為一個命令列字串或者是包含命令列字串的一個檔案的檔案名稱, 命令列用來在顯示prompt之前執行. 在redhat系列的機器上(redhat,fedora)都支援檔案/etc/sysconfig/bash-prompt-xterm來儲存bash+xterm下的PROMPT_COMMAND環境變數的內容, 結合這幾點, 就可以輕鬆實現"在視窗標題部分顯示已登陸伺服器的ip地址"這個功能.
1) 設定term類型是xterm時標籤顯示內容, 即$PROMPT_COMMAND環境變數的值:
# 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序列, 用來設定視窗的標題;
"$(.*)"的內容是shell命令, 用來取出伺服器eth0網卡的當前ip地址;
"/a"是xterm支援的escape序列的結束符.
2) 設定term類型是screen時(命令screen進入新視窗時)標籤顯示內容, 和xterm一樣:
# cp /etc/sysconfig/bash-prompt-xterm /etc/sysconfig/bash-prompt-screen
3) 設定term類型不是xterm和screen時標籤顯示內容, 也和xterm一樣:
# cp /etc/sysconfig/bash-prompt-xterm /etc/sysconfig/bash-prompt-default
4) 這幾個檔案需要有可執行許可權:
# chmod +x /etc/sysconfig/bash-prompt-*
現在重新登入作業系統或者切換使用者, 類比終端如SecureCRT的標籤欄就會動態更新了.
--End--