1、$$变量保存所运行的当前进程的进程号。$0 代表脚本文件名。$# 代表参数的个数、$_变量中存放上一条命令中最后一个参数的值
2、trap 命令可以捕获控制台信号
答:利用trap可以做Ctrl+C结束脚本时需要做的清理操作如:trap "ClearPID" 1 2 3 15
3、tee将信息输出到多个文件
答:
echo "ok" | tee -a a.txt >>b.txt
4、查看本机tcp连接状态及数目统计
答:
netstat -n |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | sort -n -k 2 -r
5、IFS变量
答:
IFS用作shell指定的缺省域分隔符。原理上讲域分隔符可以是任意字符,但缺省通常为空格、新行或tab键。IFS在分隔文件或变量中各域时很有用。下面的例子将IFS设置为冒号,然后echo $PATH变量,给出一个目录分隔开来的可读性很强的路径列表。
6、while循环中最简单写死循环的方法为
答:
while :
do
do someting
done
7、 查出目前 ip_conntrack 记录最多的前五名 IP
答:
cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 5
8、linux bash中暂时屏蔽 alias
答:
\ 对,正是这个斜线可以暂时屏蔽alias的定义,如:cp -r 就不会再有是否覆盖的提示了。
9、在文件中查找指定内容并且显示该内容,并不是显示内容所在的行
答:利用
sed -o参数就可以解决问题了
10、创建/删除多个连续的文件(大括号的应用)
答:利用大括号({})来搞定,如:
$ touch Front-{A,B,C}-Back
$ ls -1
Front-A-Back
Front-B-Back
Front-C-Back
$ echo Number_{1..5}
Number_1 Number_2 Number_3 Number_4 Number_5
$ echo {Z..A}
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
$ echo a{A{1,2},B{3,4}}b
aA1b aA2b aB3b aB4b
$ mkdir {2007..2009}-0{1..9} {2007..2009}-{10..12}
$ ls
2007-01 2007-07 2008-01 2008-07 2009-01 2009-07
2007-02 2007-08 2008-02 2008-08 2009-02 2009-08
2007-03 2007-09 2008-03 2008-09 2009-03 2009-09
2007-04 2007-10 2008-04 2008-10 2009-04 2009-10
2007-05 2007-11 2008-05 2008-11 2009-05 2009-11
2007-06 2007-12 2008-06 2008-12 2009-06 2009-12
11、shell中使用(())进行数字运算
如:
#!/bin/bash
echo -n "how old are you?"
read age
echo "Wow,in $((60-age)) years ,you'll be 60!"
12、shell中读取指定的配置文件并对变量进行赋值
# shell脚本中读取配置文件并做赋值操作
while read NAME TYPE
do
if [ "$NAME" == "" ] || [ "`echo $NAME$TYPE| grep '#'`" != "" ] ;then
continue
else
eval `echo "${NAME}=${TYPE}"`
fi
done
# config.shc 配置文件内容
====== config.shc ========
# 注释内容
变量名 值
===========================
注意:配置文件中的变量名和值之间用Tab分格!
本文最后更新于2010.05.27
原创文章,转载请注明: 转自 http://salogs.com
近期评论