ethtool
显示或修改以太网卡的配置信息
补充说明
ethtool命令用于获取以太网卡的配置信息,或者修改这些配置。这个命令比较复杂,功能特别多。
语法
ethtool [ -a | -c | -g | -i | -d | -k | -r | -S |] ethX
ethtool [-A] ethX [autoneg on|off] [rx on|off] [tx on|off]
ethtool [-C] ethX [adaptive-rx on|off] [adaptive-tx on|off] [rx-usecs N] [rx-frames N] [rx-usecs-irq N] [rx-frames-irq N] [tx-usecs N] [tx-frames N] [tx-usecs-irq N] [tx-frames-irq N] [stats-block-usecs N][pkt-rate-low N][rx-usecs-low N] [rx-frames-low N] [tx-usecs-low N] [tx-frames-lowN] [pkt-rate-high N] [rx-usecs-high N] [rx-frames-high N] [tx-usecs-high N] [tx-frames-high N] [sample-interval N]
ethtool [-G] ethX [rx N] [rx-mini N] [rx-jumbo N] [tx N]
ethtool [-e] ethX [raw on|off] [offset N] [length N]
ethtool [-E] ethX [magic N] [offset N] [value N]
ethtool [-K] ethX [rx on|off] [tx on|off] [sg on|off] [tso on|off]
ethtool [-p] ethX [N]
ethtool [-t] ethX [offline|online]
ethtool [-s] ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] [port tp|aui|bnc|mii] [phyad N] [xcvr internal|external]
[wol p|u|m|b|a|g|s|d...] [sopass xx:yy:zz:aa:bb:cc] [msglvl N]
选项
-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-c display the Coalesce information of the specified ethernet card。
-C Change the Coalesce setting of the specified ethernet card。
-g Display the rx/tx ring parameter information of the specified ethernet card。
-G change the rx/tx ring setting of the specified ethernet card。
-i 显示网卡驱动的信息,如驱动的名称、版本等。
-d 显示register dump信息, 部分网卡驱动不支持该选项。
-e 显示EEPROM dump信息,部分网卡驱动不支持该选项。
-E 修改网卡EEPROM byte。
-k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。
-K 修改网卡Offload参数的状态。
-p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
-r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。
-S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t 让网卡执行自我检测,有两种模式:offline or online。
-s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。
数据来源
Ethtool命令显示的信息来源于网卡驱动层,即TCP/ip协议的链路层。该命令在Linux内核中实现的逻辑层次为:
ex
启动vim编辑器的ex编辑模式
补充说明
在 ex 模式下启动vim文本编辑器。ex执行效果如同vi -E,适用于法及参数可参照vi指令,如要从Ex模式回到普通模式,则在vim中输入:vi或:visual即可。
语法
ex(参数)
参数
文件:指定待编辑的文件。
exec
调用并执行指定的命令
补充说明
exec命令 用于调用并执行指令的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。
语法
exec(选项)(参数)
选项
-c:在空环境中执行指定的命令。
参数
指令:要执行的指令和相应的参数。
实例
首先使用echo命令将文本“Linux C++”进行输出,输入如下命令:
echo Linux C++ # 输出指定信息
执行上面的指令后,输出如下信息:
Linux C++ # 输出信息
然后再使用exec命令调用echo命令输出同样的信息,并且对输出的信息进行对比,输入指令如下所示:
exec -c echo Linux C++ # 调用命令
执行以上命令后,其输出信息如下:
Linux C++ # 使用指定指令输出信息
通过比较两者执行后的结果来看,所实现的功能是相同的,即使用exec命令调用echo命令成功。
exit
退出当前的shell。
概要
exit [n]
主要用途
- 执行exit可使shell以指定的状态值退出。若不设置参数,则以最后一条命令的返回值作为exit的返回值退出。
参数
n(可选):指定的shell返回值(整数)。
返回值
返回值为你指定的参数n的值,如果你指定的参数大于255或小于0,那么会通过加或减256的方式使得返回值总是处于0到255之间。
例子
退出当前shell:
[root@localhost ~]# exit
logout
也可以使用ctrl+d退出当前终端,下面列出了打开或关闭该功能的方法:
# 打开ctrl+d退出终端
set -o ignoreeof
# 关闭ctrl+d退出终端
set +o ignoreeof
在脚本中,进入脚本所在目录,否则退出:
cd $(dirname $0) || exit 1
在脚本中,判断参数数量,不匹配就打印使用方式,退出:
if [ "$#" -ne "2" ]; then
echo "usage: $0 <area> <hours>"
exit 2
fi
在脚本中,退出时删除临时文件:
trap "rm -f tmpfile; echo Bye." EXIT
检查上一命令的退出码:
./mycommand.sh
EXCODE=$?
if [ "$EXCODE" == "0" ]; then
echo "O.K"
fi
注意
- 该命令是bash内建命令,相关的帮助信息请查看
help命令。
expand
将文件的制表符转换为空白字符
补充说明
expand命令 用于将文件的制表符(TAB)转换为空白字符(space),将结果显示到标准输出设备。
语法
expand(选项)(参数)
选项
-t<数字>:指定制表符所代表的空白字符的个数,而不使用默认的8。
参数
文件:指定要转换制表符为空白的文件。
export
为shell变量或函数设置导出属性。
概要
export [-fn] [name[=word]]...
export -p
主要用途
- 定义一到多个变量并设置导出属性。
- 修改一到多个变量的值并设置导出属性。
- 删除一到多个变量的导出属性。
- 显示全部拥有导出属性的变量。
- 为一到多个已定义函数新增导出属性。
- 删除一到多个函数的导出属性。
- 显示全部拥有导出属性的函数。
选项
-f:指向函数。
-n:删除变量的导出属性。
-p:显示全部拥有导出属性的变量。
-pf:显示全部拥有导出属性的函数。
-nf:删除函数的导出属性。
--:在它之后的选项无效。
参数
name(可选):变量名或已定义函数名。
value(可选):变量的值。
返回值
export返回true除非你提供了非法选项或非法名称。
例子
# 显示全部拥有导出属性的变量。
# export -p
# export
# 显示全部拥有导出属性的函数。
# export -pf
# 首先删除要演示的变量名
#unset a b
# 定义变量的同时增加导出属性
export a b=3
# 当然也可以先定义后增加导出属性
b=3
export b
# 修改拥有导出属性的变量的值
export a=5 b=7
# 当然也可以直接赋值修改
a=5;b=7
# 删除变量的导出属性
export -n a b
# 首先删除要演示的函数名
unset func_1 func_2
# 创建函数
function func_1(){ echo '123'; }
function func_2(){ echo '890'; }
# 为已定义函数增加导出属性
export -f func_1 func_2
# 删除函数的导出属性
export -fn a b
# 添加环境变量(JAVA)到`~/.bashrc`
PATH=/usr/local/jdk1.7.0/bin:$PATH
# 添加当前位置到动态库环境变量
export LD_LIBRARY_PATH=$(pwd):${LD_LIBRARY_PATH}
错误用法
- 对未定义的函数添加导出属性。
- 对没有导出属性的函数/变量执行删除导出属性操作。
- 在
--后使用选项。
Q&A
Q:对变量或函数设置导出属性有什么用?
A:它们会成为环境变量,可以在脚本中访问它们,尤其是脚本中调用的子进程需要时。( 参考链接4 )
exportfs
管理NFS共享文件系统列表
补充说明
exportfs 命令用来管理当前NFS共享的文件系统列表。
参数:
-a 打开或取消所有目录共享。
-o options,...指定一列共享选项,与 exports(5) 中讲到的类似。
-i 忽略 /etc/exports 文件,从而只使用默认的和命令行指定的选项。
-r 重新共享所有目录。它使 /var/lib/nfs/xtab 和 /etc/exports 同步。 它将 /etc/exports 中已删除的条目从 /var/lib/nfs/xtab 中删除,将内核共享表中任何不再有效的条目移除。
-u 取消一个或多个目录的共享。
-f 在“新”模式下,刷新内核共享表之外的任何东西。 任何活动的客户程序将在它们的下次请求中得到 mountd添加的新的共享条目。
-v 输出详细信息。当共享或者取消共享时,显示在做什么。 显示当前共享列表的时候,同时显示共享的选项。
expr
一款表达式计算工具
补充说明
expr命令 是一款表达式计算工具,使用它完成表达式的求值操作。
expr的常用运算符:
- 加法运算:
+ - 减法运算:
- - 乘法运算:
\* - 除法运算:
/ - 取模(取余)运算:
%
语法
expr(选项)(参数)
选项
--help:显示指令的帮助信息;
--version:显示指令版本信息。
参数
表达式:要求值的表达式。
实例
result=`expr 2 + 3`
result=$(expr $no1 + 5)
false
返回状态为失败。
概要
false
主要用途
- 用于和其他命令进行逻辑运算。
返回值
返回状态总是失败;返回值为1。
注意
- 该命令是bash内建命令,相关的帮助信息请查看
help命令。
fc
显示历史列表中的命令或修改指定的历史命令并执行。
概要
fc [-e ename] [-lnr] [first] [last]
fc -s [pat=rep] [command]
主要用途
-
显示历史列表中的命令。
-
编辑并重新执行历史列表的命令。
选项
-e ename 选择使用的编辑器,默认调用次序为环境变量`FCEDIT`、环境变量`EDITOR`、`vi`。
-l 列出而不是编辑。
-n 列出时不输出行号(需配合-l选项)。
-r 倒序列出命令,最近执行的先列出(需配合-l选项)。
-s [pat=rep] [command] command(未指定时为最后执行的命令)将在pat替换为rep后重新执行。
参数
first:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为前一个命令并且偏移量为-16(最近的16条命令)。
last:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为参数first。
返回值
返回成功或执行命令的状态,当错误出现时返回非0值。
例子
替换命令参数:
# 列出 ~ 目录
ls ~
# 替换 ~ 为 / ,替换后列出根目录,
fc -s ~=/
显示最近使用的10条历史命令:
[root@localhost ~]# fc -l -10
1039 type -a grep
1040 export
1041 history 10
1042 ulimit -a
1043 shopt
1044 help ls
1045 help env
1046 help short
1047 help shopt
1048 showkey -a
编辑第1040条历史命令: