006_设置执行命令提示和unset shell function

一、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"
}

  

 

转载于:https://www.cnblogs.com/itcomputer/p/10288944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是常见的shell脚本命令,树状图如下: ``` ├── 文件处理 │   ├── cat │   ├── cp │   ├── mv │   ├── rm │   └── touch ├── 目录处理 │   ├── cd │   ├── ls │   ├── mkdir │   └── rmdir ├── 文本处理 │   ├── awk │   ├── cut │   ├── grep │   ├── sed │   ├── sort │   └── uniq ├── 系统信息 │   ├── date │   ├── df │   ├── free │   ├── hostname │   ├── ps │   ├── top │   └── uname ├── 网络通信 │   ├── curl │   ├── ping │   ├── scp │   ├── ssh │   └── telnet ├── 条件控制 │   ├── if │   ├── case │   ├── for │   ├── while │   ├── until │   └── break/continue ├── 函数 │   └── function ├── 变量 │   ├── declare │   ├── readonly │   └── unset ├── 数组 │   ├── declare -a │   ├── ${array[*]} │   └── ${#array[@]} ├── 输入输出 │   ├── echo │   ├── printf │   ├── read │   └── exec ├── 运算符 │   ├── expr │   ├── let │   ├── (( )) │   └── $(( )) ├── 特殊变量 │   ├── $0 │   ├── $1~$9 │   ├── $# │   ├── $* │   ├── $@ │   ├── $? │   └── $$ └── 其他 ├── source ├── export ├── alias ├── trap └── shift ``` 注:以上命令不一定完整,也不一定每个命令都适用于所有的shell环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值