1. 程式人生 > >006_設置執行命令提示和unset shell function

006_設置執行命令提示和unset shell function

brush his 應該 function 只讀 port file 需要 com

一、unset不能unset只讀變量

問題:

[root@zb1-bdwaimai-inf-wfe-28 ~]# source ~/.bash_profile
bash: PROMPT_COMMAND: readonly variable
[root@zb1-bdwaimai-inf-wfe-28 ~]# tail ~/.bash_profile
PATH=$PATH:$HOME/bin
export PATH
hhhh=`pwd`
[root@ ~]# echo $hhhh      #從這個輸出看是不影響source命令執行的,但是不知道在哪設置的PROMPT_COMMAND為只讀變量,declare -r 變量是可以設置為只讀變量,declare -x可以設置為可以執行的
/root

[root@z ~]# unset -f PROMPT_COMMAND
[root@zb1-bdwaimai-inf-wfe-28 ~]# source ~/.bash_profile
bash: PROMPT_COMMAND: readonly variable
[root@zb1-bdwaimai-inf-wfe-28 ~]# echo $PROMPT_COMMAND
{ msg=$(history 1 | { read x y; echo $y; });logger -p local0.notice "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }
[root@zb1-bdwaimai-inf-wfe-28 ~]# unset -fv PROMPT_COMMAND
bash: unset: cannot simultaneously unset a function and a variable

解決方案待查

二、

同事在線上執行了"tcpdump -i eth0 tcp port 80 -XX"命令觸發了以下的bug,所以提示大家正確的使用姿勢應該為指定綁定網卡的接口執行抓包

tcpdump 命令只有將自定設備設置為混雜模式才能抓包,在 bond 模式下不能單獨設置其中一塊 slave 網卡為混雜模式,否則會引起 bond 故障。這個和內核參數沒有任何關系。tcpdump -i eth0 敲完回車 bond0 一定故障。

notice:

不是所有bond0設備都會出問題,我印象中是intel i40系列的網卡會有問題,其他網卡也有概率會出鍋。

/root/../etc/profile.d/tcpdump.sh

#!/bin/bash
TCPDUMP_WARN="
使用tcpdump會導致網卡進入混雜模式(promiscuous mode),在有bond設備的物理機上使用 -i eth0 或著其它 slave 設備會導致 bond 設備異常,請在執行前確認你指定的設備是否正確。

請先使用 ip a 命令查看本地設備,如果存在 bond0 或其他 bond 設備,請使用 -i bond0 參數指定抓包設備。

當你仔細查看過以上警告後,需要使用 tcpdump 命令,請使用全路徑執行 /usr/sbin/tcpdump
"

tcpdump()
{
       echo -ne "\033[34;31m$TCPDUMP_WARN\n\033[34;00m"
}

  

006_設置執行命令提示和unset shell function