应用实例:快速找到某程序的进程号
在很多情况下,我们使用ps命令是为了确定某后台服务的进程号,其实除了ps,我们还可以使用/var/run下的*.pid文件。这个文件一般是在服务启动的时候创建的,并写入自己获得的进程号。如xinetd启动的时候就创建了/var/run/xinetd.pid文件。
我们可以利用这些文件来快速杀掉或者重启动它们。原来我们这么做需要先ps找进程号,然后再kill,现在就简单了,用一行命令就可以。例如:
# kill –HUP `cat /var/run/xinetd.pid`
# kill -9 `cat /var/run/sshd.pid`
kill命令:
kill 命令可以送出一个特定的信号 (signal) 给系统正在运行的程,来终止进程。具体使用方法如下:
(1)语法:kill [-选项] [-参数]
(2)参数:
-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM
(15), 分别代表著重启, 杀掉, 结束。
-l (signal) : 列出所有可用的信号名称。
-p : 印出 pid , 并不送出信号。
查看进程:
ps:
top:top -i 忽略闲置或者僵死的进程
输入重定向:< 和 <<
输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。
例如:wc 文件名:统计文件的行数,单词数,字符数
wc > 文件名:同样的效果,将重定向wc的输入内容,将文件内容传给wc
wc >> 字符:将之后输入的命令行与指定字符之间的内容传给wc
输出重定向:>和>>
输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。
注意:>后面的文件将被重写。
>>追加到文件后面
查看文件夹中的文件数:
查看文件夹下的文件个数(当前目录的文件数)
ls -l |grep "^-" | wc -l
命令替换:
command1 ‘command2’:其中command2的输出作为command1的输入参数
例如:cd ‘pwd’
模式匹配:
这组命令在指定的输入文件中查找与模式匹配的行。如果没有指定文件,则从标准输入中读取。正常情况下,每个匹配的行被显示到标准输出。如果要查找的文件是多个,则在每一行输出之前加上文件名。
语法:
grep [选项] [匹配模式] [文件名1,文件名2,……]
egrep [选项] [匹配模式] [文件名1,文件名2,……]
fgrep [选项] [匹配模式] [文件名1,文件名2,……]
这组命令各选项的含义为:
-E: 每个模式作为一个扩展的正则表达式对待。
-F: 每个模式作为一组固定字符串对待(以新行分隔),而不作
为正则表达式。
-b: 在输出的每一行前显示包含匹配字符串的行在文件中的字节
偏移量。
-c: 只显示匹配行的数量。
-I: 比较时不区分大小写。
-h: 在查找多个文件时,指示grep不要将文件名加入到输出之前。
-l: 显示首次匹配串所在的文件名并用换行符将其隔开。当在某
文件中多次出现匹配串时,不重复显示此文件名。
-n: 在输出前加上匹配串所在行的行号(文件首行行号为1)。
-v: 只显示不包含匹配串的行。
-x: 只显示整行严格匹配的行。
-e: expression 指定检索使用的模式。用于防止以“-”开头的模式被解释为命令选项。
-f: expfile 从expfile文件中获取要搜索的模式,一个模式占一行。
举例说明,例如当我们执行如下命令:
$ cat mypats
editor
create
$ grep -f mypats exam
在上面的例子中,用户要在文件exam中搜索字符串“editor”和“create”,就把要搜索的模式放置在文件mypats中,然后,grep命令从文件mypats中读取要搜索的模式。在文件中,每个搜索模式占一行。如果经常要搜索一组常见字符串时,这个功能非常有用。
注意:如果是包含空格的模式,就要用‘’包含起来。