| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > SHELL

shell 学习资料

时间:2007-11-05 17:21:52  来源:CUBLOG  作者:

 单引号、双引号、括号、花括号及反引号 XvfLinux联盟
单引号内所有元字符都失去特殊含义(包括\)双引号内除了变量域($)和命令域(`)以外的元字符都失去特殊含义,所以一般使用双引号引用XvfLinux联盟

花括号{}被用来区分变量名和周围的文本:echo ${file} and $file1 寻找变量file,file1XvfLinux联盟

命令替代的格式:反引号来环绕一个命令象` cmd `,它和$(command) 是等价的:ls -l `find . -type f`XvfLinux联盟

  XvfLinux联盟
.        awk中使用变量XvfLinux联盟

/bin/cat /etc/ppp/chap-secrets|grep $5|awk '{print logouttime"\t","username:"$1"\t","logout""\t","data:"datasize}' logouttime="`/bin/date`" datasize="$size" >>$pptplogdirectory/userlog(注:size前面已经有定义)XvfLinux联盟

.        Find的用法XvfLinux联盟

注:f i n d命令将所有匹配到的文件一起传递给e x e c执行,而x a rg s命令每次只获取一部分文件而不是全部,所以exec有长度限制,文件不能太多,否则会产生溢出错误,而xargs则没有XvfLinux联盟

find . -mtime -1 –print 跟现在小于1天修改的文件XvfLinux联盟

find . -perm 755 –print 显示具有755属性的文件XvfLinux联盟

find . -size +1000000c –print 查找大于1M的文件XvfLinux联盟

find . -type f -exec ls -l {} \; 查找文件并列表显示(注:{}与\之间有空格,最后有;)XvfLinux联盟

find . -type f -exec rm  {} \;查找文件并删除XvfLinux联盟

find . -type f -print |xargs ls –l查看文件并列表显示XvfLinux联盟

find /  \( -perm -4000 -o -perm -2000 \) -type f –print 查找SUID和SGID文件XvfLinux联盟

.        向登录终端用户发送消息XvfLinux联盟

echo "hello I am jiangdaoyou"|tee /dev/pts/2 (tty可以查看自已的终端号),等同于:write root pts/2然后输入:hello I am jiangdaoyou然后Ctrl+D结束XvfLinux联盟

.   awk之BEGIN和ENDXvfLinux联盟

即在文件头增加列名:XvfLinux联盟

cat userlog |awk 'BEGIN{print "Time username\n-----------------"};{print $4,$7}'XvfLinux联盟

Time     usernameXvfLinux联盟

------------------------------XvfLinux联盟

15:19:28 username:xmdhXvfLinux联盟

15:20:00 username:xmdhXvfLinux联盟

将在上面的基础上增加结尾说明“end of report!!!!”XvfLinux联盟

cat userlog |awk 'BEGIN{print "Time     username\n-----------------"}{print $4,$7}END{print "end of report!!!!"}'XvfLinux联盟

返回首页XvfLinux联盟

 XvfLinux联盟

.   截取/转化字符XvfLinux联盟

echo "200604211031"|cut -c9-12 得到1031XvfLinux联盟

cat test.ok |tr 'arp' 'rpm' 把arp转为rpmXvfLinux联盟

.   求平均值XvfLinux联盟

vmstat 1 4|awk '{print $4}'|grep -o '[0-9]*'|sed 's/,//g' |awk '{total=total+$1;if(NR%4= =0) {print total/4}}'或如下方法:XvfLinux联盟

vmstat 1 4|awk 'NR>2{sum+=$4}END{print sum/4}'XvfLinux联盟

.   循环XvfLinux联盟

ls |for file in *;do echo "rpm -ivh" $file;doneXvfLinux联盟

ls |for file in $(ls *.rpm);do echo "rpm -ivh" $file;done XvfLinux联盟

 XvfLinux联盟
XvfLinux联盟

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目更新
栏目热门