全部博文(842)
分类: LINUX
2012-05-16 16:09:54
正则表达式基础:
– . 匹配任何单个字符。
– $ 匹配行结束符。^ 匹配一行的开始。
– * 匹配0或多个正好在它之前的那个字符。
– + 匹配1或多个正好在它之前的那个字符。
– ? 匹配0或1个正好在它之前的那个字符。
– \{i\} \{i,j\} 匹配指定数目的字符。
– \ 这是引用符,转义;
– [ ] [c1-c2] 匹配括号中的任何一个字符。 [^c1-c2]
– \< \> 匹配词(word)的开始(\<)和结束(\>)。
– \( \) 将 \( 和 \) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。
– | 将 两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her)
• 管道可以把一条命令的输出作为另一条命令的输入
Command1 | Command2
返回值是最后一个命令的返回值
• 重定向
wc –l /etc/passwd > a.txt
wc –l /etc/passwd >> a.txt
wc –l < /etc/passwd
./command > a.txt 2>&1 (./command &> a.txt)
exec 5<> a.txt
echo “hello” >&5
<&-
>&-
•
• fg job_id 把后台作业放到前台执行
• bg job_id 把作业放到后台执行
自定义函数 – 16进制转点分十进制
• a()
• {
• local str=$1
• echo -n $((16#${str:0:2}))
• str=${str:2}
• if [ "x$str" = "x" ]
• then
• echo; return
• else
• echo -n "."; a $str
• fi
• }
• #Usage
• a "DDB14CCF"
• y=2000 闰年计算
echo $((y%4==0 && y%100!=0 || y%400==0))
• (( y++ )) 自增1
• tmp=$((16#a)) 进制转换
#!/bin/bash
trap "print_OK" 3
function print_OK()
{
echo OK
}
while :
do
:
done
发送信号:kill -3 pid
屏蔽信号:trap “” 3
• exec command #用command替换当前进程
• type ls
ls is aliased to `ls --color=tty`
• : 空命令
while :
do
cmd
done
if [ list ]; then : ;else echo false;fi
Grep - 全文匹配利器
--color 飘红匹配到的部分
-i 忽略大小写
-v 反向匹配
-r 递归匹配文件
-o 只打印匹配到的部分
-n 打印出行号
-c 统计匹配到的行数
-w 匹配整词
• awk命令的一般形式:
awk ' BEGIN { actions }
pattern1 { actions }
............
patternN { actions }
END { actions } ‘
• awk -F: '{print $1} END{print "total:",NR}' /etc/passwd