Shell 脚本学习指南 读书笔记01

1. 入门
why
简单性 可移植性 易开发性

who | wc -l  统计用户个数
   | 管道

脚本开头一般写法  #! /bin/sh  注意尽量不要超过64个字符

重定向及管道  <  >  |

特殊文件
   /dev/null
   exp: if grep pattern myfile > /dev/null then ... else ... fi
       主要是获得执行后的状态,而不是结果
   /dev/tty  重定向到一个终端, 一般用来获取人工输入

命令跟踪
sh -x mysh.sh
或set -x  打开跟踪, set +x 关闭

LANG设置默认语言
LC_ALL 覆盖所有LC_XXX的语言
locale -a  显示所有支持的语言


2. some cmd

grep 基本的正则匹配
egrep 扩展的正则匹配
fgrep 固定字符串匹配, 可多个
grep -F 等于 fgrep , 实际上 grep 后表达式里没有正则的, 就默认是-F

正则介绍
/  * . ^ $ [] {n,m}  + ? | ()
[:alpha:] 英文字符集
[.ch.]  一个字符ch
[=e=] 等价字符集
[^aeiouy] 表示所有小写原音字母外的

sed 命令
who |sed 's/:.*'  | sort -u
sed -n '10,42p' foo.xml
sed '/foo/,/bar/ s/aaa/bbb/g' foo.xml
who | sed '/dev5/!s/pts/ppt/'
sed '/^#/d' t.sh    删注释

cut
ls -l | cut -c 1-10
cut -d : -f 1,3 /etc/passwd

awk
awk 'NF>0  ' t.sh
awk -F: -v 'OFS=**' '{print $1,$2}' /etc/passwd

猜你喜欢

转载自foxmails.iteye.com/blog/963272