cut 命令
-f : 指定第几列
-d : 指定分割符
例子: cut -d “:” -f 1,3 /etc/passwd
应用:磁盘报警
printf 命令
printf ‘%s %s %s\n’ 1 2 3 4 5 6
printf ‘%s’ $(cat /etc/passwd)
注意: $(cat /etc/passwd)
awk 命令
awk ‘条件1{动作1}条件2{条件2}…’ 文件名
例子
awk ‘{printf $2 “\t” $6″\n”}’ student.txt
磁盘报警 df -h | awk ‘{print $1 “\t” $5 “\t”}’
df -h | grep sda5 | awk ‘{print $5}’ | cut -d “%” -f 1
BEGIN 在执行之前要执行的
awk ‘BEGIN{print “test !!”} {print $2 “\t”}’
END 在执行完后执行的
关系运算
awk ‘$6 >= 80 {printf $2 “\n”}’
sed 命令
sed [选项] ‘[动作]’ 文件名
选项
-n:只输出sed操作的第n行
-e:允许多个条件执行
-i:修改原文件
动作
a:添加行 sed ‘2a hello’ test.txt 在第二行后追加hello
c:替换行 sed ‘2c hello’ test.txt
i:插入行 sed ‘2i hello’ test.txt 在第二行前加入hello
d:删除行 sed ‘2,4d’ test.txt 删除2到4行数据
p:输出行 sed -n ‘2p’ test.txt
s:替换字符串 sed ‘行s/旧字串/新字串/g’
排序
sort [选项] 文件名
-f:忽略大小写
-n:以数值排序
-r:取反
-t:指定分隔符
-k n[,m]:
统计命令
wc [选项] 文件名
-l 统计行数
-w 统计单词数
-m 统计字符数
条件判断
echo $? //查看上一条命令是否正确 0:成功 非0:失败
两个文件比较
文件1 -nt 文件2 文件1比文件2新
文件1 -ot 文件2 文件2比文件2旧
文件1 -ef 文件2 两个文件是否为同一个文件,判断硬连接
逻辑
-a 逻辑与
-o 逻辑或
! 逻辑非
-if 语句
if [ 判断 ];then
程序
fi
例子:
rate=$(df -h | grep /dev/ada5 | awk ‘{print $8}’ | cut -d “%” -f1)
if [ $rate -ge 89 ];then
echo “/dev/ada5 is full”
if
备份数据脚本
date=$(date +%y%m%d)
size=$(du -sh /usr/local/mysql)
if [ -d /usr/local/mysql ]
then
echo ‘Date is : $date’ > /tmp/dbback/db.txt
echo ‘Size is : $size’ >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf mysql_$date.tar.gz /usr/local/mysql db.txt &>/dev/null
rm -rf /tmp/dbback/db.txt
else
mkdir /tmp/dbback
echo ‘Date is : $date’ > /tmp/dbback/db.txt
echo ‘Size is : $size’ >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf mysql_$date.tar.gz /usr/local/mysql db.txt &>/dev/null
rm -rf /tmp/dbback/db.txt
if
nmap 命令
判断apache是否启动
port=$(nmap -sT 127.0.0.1 | grep tcp | grep http | awk ‘{print $2}’)
if [ “$port” == “open” ]
then
echo “$(date) httpd is ok”;
eles
/etc/rc.d/init.d/httpd-start &>/dev/null
fi
for 循环
for i in 1 2 3 4
do
echo $i
done
批量解压缩
ls *.tar.gz > ls.log
for i in $(cat ls.log)
do
tar -zxf $i &>/dev/null
done
rm -rf ls.log
for((i=1;i<=100;i=i+1))
do
s=$(($s+$i))
done
echo “$s”
while 语句
while [ 条件判断 ]
do
程序
done
until 语句
until [ 条件判断 ]
do
程序
done
http://www.cnblogs.com/mchina/archive/2012/06/30/2571317.html