1.显示消耗内存/CPU最多的10个进程
ps aux | sort -nk 4 | tail
ps aux | sort -nk 3 | tail
——————————————————————————————————————————
2.找出自己最常用的10条命令及使用次数(或求访问最多的ip数)
sed -e ‘s/| /\n/g’ ~/.bash_history |cut -d ‘ ‘ -f 1 | sort | uniq -c | sort -nr | head
——————————————————————————————————————————
3.lsof命令
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -p 12 看进程号为12的进程打开了哪些文件
——————————————————————————————————————————
4.杀掉一个程序的所有进程
pkill -9 httpd
killall -9 httpd
注意尽量不用-9,数据库服务器上更不能轻易用kill,否则造成重要数据丢失后果将不堪设想。
——————————————————————————————————————————
5.把目录下*.sh文件改名为*.SH
find . -name “*.sh” | sed ’s/\(.*\)\.sh/mv \0 \1.SH/’ |sh
find . -name “*.sh” | sed ’s/\(.*\)\.sh/mv & \1.SH/’|sh (跟上面那个效果一样)
——————————————————————————————————————————
6.ssh执行远程的程序,并在本地显示
ssh -n -l zouyunhao 192.168.2.14 “ls -al /home/zouyunhao”
——————————————————————————————————————————
7.以http方式共享当前文件夹的文件
$ python -m SimpleHTTPServer
在浏览器访问即可下载当前目录的文件。
——————————————————————————————————————————
8.关于cpu个数
查看逻辑cpu个数:cat /proc/cpuinfo | grep “processor” | wc -l
查看物理cpu个数:cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l
查看每个物理cpu的核数cores:cat /proc/cpuinfo | grep “cpu cores”
如果所有物理cpu的cores个数加起来小于逻辑cpu的个数,则该cpu使用了超线程技术。查看每个物理cpu中逻辑cpu的个数:cat /proc/cpuinfo | grep “siblings”
——————————————————————————————————————————
9
因为各种原因,你可能不想让某个用户登陆在系统上,下面的脚本可以帮助你实现这个愿望:
[root@foo/]#whiletrue
>do
>kill-9$(ps-aux|grepusername|awk'{print$2}')
>sleep2
>done
10.通配符
*匹配任何长度的任何串
?匹配单个字符
[...]匹配单个括号内的字符,[]中的-,!具有特殊含义,如:
$echo[a-z]*
显示首字母在a-z范围内的文件或目录名
$echo[a,b]*
显示首字母为a或b的文件或目录名
$echo[!a]*
显示首字母不为a的文件或目录名(使用!时,!必须是[后的第一个字符)
!还可与-和,一起使用
在Bash2.0以后的版本中,若用shopt打开了extglob选项(shopt-***tglob),
那么还可以扩展的模式表达式(模式表达式是指那些包含了一个或多个shell通配
符的字):
*(pattern[|pattern]...)匹配模式的零次或多次出现
(pattern[|pattern]...)匹配模式的一次或多次出现
@(pattern[|pattern]...)匹配模式的一次出现
?(pattern[|pattern]...)匹配任何一个模式.与*不同的是它不匹配
多个模式或模式的重复出现
!(pattern[|pattern]...)与?类似,不过是不包括指定模式的串
应该注意到,模式表达式的定义是递归的,每个表达式都可以包含一个或多个
模式,而且模式表达式也是可以嵌套的.
11.用于引用和逃逸的特殊字符:
逃逸符\表示以后的字符不具有特殊的含义或不是Shell的函数,
除此之外,Bash还可以识别一些C语言中的转义序列,如:
\a响伶
\b回退
\eEscape
\n换行
\r回车
\t制表
\v制表
\\反斜线
\nnn八进制的ASCII编码
\xnnn十六进制的ASCII编码
但必须以如下方式进行引用:
$'string'
引用符'和"将特殊字符或由空白分隔的字引用起来组成一个简单字符串
两者区别在与,双引号内的内容可以进行参数和变量替换
12.将文件时间改成与别的文件相同
- [root@jfht ~]# ls -l new.txt
- -rw-r--r-- 1 root root 0 2009-10-11 new.txt
- [root@jfht ~]#
- [root@jfht ~]#
- [root@jfht ~]# ls -l /etc/passwd
- -rw-r--r-- 1 root root 1606 07-05 15:46 /etc/passwd
- [root@jfht ~]# touch -r /etc/passwd new.txt
- [root@jfht ~]# ls -l new.txt
- -rw-r--r-- 1 root root 0 07-05 15:46 new.txt