ps
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
ps -e | grep ***
#输出的STAT列显示进程状态
#D:不能中断的进程。(进程中断后会对程序或结果有影响,所以布不能中断。)这个状态会影响系统负载,会使系统负载偏高,因为cpu使用率不高,所以硬件五太大压力。
#R:run状态进程。进程不一定在运行中,也可以在运行队列里
#S:sleep状态进程。进程在等待事件完成;(浅度睡眠,可以被唤醒)
#D: Disk sleep。不可中断睡眠(深度睡眠,不可以被唤醒,通常在磁盘写入时发生)
#s:主进程
#T:暂停的进程
#Z:僵尸进程
#<:高优先级进程
#N:低优先级进程
#L:内存中被锁定了内存分页
#l:多线程进程
#+:前台进程
ps -aux
ps -ef #显示所有命令,连带命令行
ps -u 或者ps -l #查看隶属于自己的进程
pgrep 进程名 #查找服务进程号
kill 参数 PID #杀死为PID的进程,例子
kill -9 PID #杀掉单个进程
#如果想杀掉全部的,需配合 awk 命令
ps -ef | grep httpd | awk '{print $2}' | xargs kill -9
#解释
#ps -ef 是linux 里查看所有进程的命令。
#grep httpd 所有含有关键字"httpd"的进程
#awk '{print $2}' 输出第二列的PID
#xargs 是将获取到的多个PID标准输入转为命令行参数。
# kill -9 杀掉xargs获取到的对应的PID
killall 参数 进程名 #关闭进程
pkill 参数 进程名 #关闭进程
查看
#tail -n 是显示行号;相当于nl命令;例子如下:
tail -100f test.log #实时监控100行日志
tail -n 10 test.log #查询日志尾部最后10行的日志;
tail -n +10 test.log #查询头10行之后的所有日志;
#head:
head -n 10 test.log #查询日志文件中的头10行日志;
head -n -10 test.log #查询日志文件除了最后10行的其他所有日志;
#cat:tac是倒序查看
cat -n test.log |grep "debug" #查询关键字的日志
cat -n test.log |tail -n +92|head -n 20 #选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
#more less
cat -n test.log |grep "debug" |more # 这样就分页打印了,通过点击空格键翻页
#tail
tail -f xx.log
#存档
#使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
cat -n test.log |grep "debug" >debug.txt
查找
find
# find 位置 -name 文件名
1.按照文件名查找
(1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
(3)find /etc -name '*srm*' #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm*' #表示当前目录下查找文件名开头是字符串‘srm’的文件
2.按照文件特征查找(a 访问,m 修改)
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
grep
#grep pattern 文件名
(1)grep 'test' d* #显示所有以d开头的文件中包含 test的行
(2)grep ‘test’ aa bb cc #显示在aa,bb,cc文件中包含test的行
(3)grep ‘[a-z]\{5\}’ aa #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
(4)grep magic /usr/src #显示/usr/src目录下的文件(不含子目录)包含magic的行
(5)grep -r magic /usr/src #显示/usr/src目录下的文件(包含子目录)包含magic的行
(6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’)
历史操作查看
who #查询utmp文件并报告当前登录的每个用户
w #查询utmp文件并显示当前系统中每个用户和它所运行的进程信息
users #users用单独的一行打印出当前登录的用
history #查看过去输入的几个命令, 默认没有记录操作时间,也无法查看是哪个客户端执行的命令
last #查看当前和过去登陆系统用户的相关信息, 默认是去读取 /var/log/lastlog 日志文件
-a 把从何处登陆系统的主机名或 IP 地址显示在最后一行
-R 不显示登陆系统的主机名或 IP 地址
-x 显示系统关机、重新开机以及执行等级的改变等信息
-n 显示列数 设置列出信息的显示列数
-d 将显示的 IP 地址转换成主机名称
lastlog #查看到每个系统用户最近一次登陆系统的时间, 查看登陆过当前系统用户的最近一次登陆时间,默认是去读取 /var/log/lastlog 日志文件
-b<天数>:显示指定天数前的登录信息
-h:显示召集令的帮助信息
-t<天数>:显示指定天数以来的登录信息
-u<用户名>:显示指定用户的最近登录信息
tty一词源于Teletypes, 或者teletypewriters, 原来指的是电传打字机, 现在叫终端比较合适. tty1-tty6表示文字界面, tty7是表示图形界面, 可以用Ctrl+Alt+F1-F6切换,+F7就是切换回图形界面
远程telnet到主机或使用xterm时需要一个终端, 即虚拟终端pty(pseudo-tty). pts是所谓的伪终端或虚拟终端,具体表现就是你打开一个终端,这个终端就叫pts/0,如果你再打开一个终端,这个新的终端就叫pts /1.
网友评论