一.在shell脚本的实际编写中,有一些特殊的变量十分有用:
1. $# 传递到脚本的参数个数
2. $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
3. $$ 脚本运行的当前进程ID号
4. $! 后台运行的最后一个进程的进程ID号
5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数
6. $- 显示shell使用的当前选项,与set命令功能相同
7. $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
二.查看目录下文件
for i in `ls`;do echo $i && cat -n $i;done
三.查找出有匹配字符串的文件
1.使用find,可以过滤掉目录,只搜索文件
key=hd.gif && for i in `find ./ -mtime -15 -type f`;do cat $i | grep $key >> /dev/null && if [ $? -eq 0 ];then echo $i;fi;done
2.使用ls,ls时目录也会显示出来
char=show_error_info && for i in `ls`;do cat $i |grep $char >> /dev/null && if [ $? -eq 0 ];then echo $i;fi;done
相当于以下shell脚本
#!/bin/bash
for i in `ls`
do
cat $i | grep show_error_info >> /dev/null
if [ $? -eq 0 ]
then
echo $i
fi
done
四.以http 方式共享当前文件夹下的文件
[root@localhost ~]# cd nginx-1.0.4
[root@localhost nginx-1.0.4]# pwd
/root/nginx-1.0.4
[root@localhost nginx-1.0.4]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE Makefile man objs README src
[root@localhost nginx-1.0.4]# python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
**********在浏览器中 elinks
Directory listing for /
auto/
CHANGES
CHANGES.ru
conf/
configure
contrib/
html/
LICENSE
Makefile
man/
objs/
README
src/
五. lsof 命令
lsof filename 显示开启文件filename的进程
lsof -i :22 显示22号端口现在运行的程序
lsof -c abc 显示cbc进程当前打开的文件
lsof -p 12 看进程号为12的进程打开了哪些文件
六. 显示消耗内存/CPU最多的10个进程
ps aux | sort -nk +4 | tail
ps aux | sort -nk +3 | tail
阅读(1144) | 评论(0) | 转发(0) |