ps:显示系统中正在执行的进程。
显示的信息:
PID:进程识别号
TTY:终端机号
TIME:此进程所消耗CPU时间
CMD:正在执行的命令或进程名
选项:
-a:显示当前终端的所有进程信息
-u:以用户的格式显示进程信息
-x:显示后台进程运行的参数
一般使用方式:
kill [选项] 进程号
killall 进程名称,通过进程名称杀死进程,支持通配符,这在系统因负载过大而变得很慢时很有用
常用选项:
-9:强迫进程立即停止
示例:
1.踢掉XShell sshd登录的用户
(1)先使用ps -aux | grep sshd 查找到所有包含sshd的进程,在结果中找到对应用户远程登录的进程号PID
(2)kill PID
2.终止远程登录服务sshd,在适当的时候再次重启sshd服务
(1)在进程列表中找到sshd服务对应的进程号PID
(2)kill PID,这时在远端就不能进行登录,但不会踢掉已经登录的用户
(3)重启电脑会自动打开sshd服务,也可以手动打开sshd服务
service sshd status
service sshd stop
service sshd start
3.终止多个gedit编辑器
gedit:图形界面下的文本编辑器
(1)使用多个终端执行多次gedit命令打开多个gedit编辑器
(2)新开一个终端执行killall gedit指令就会杀死所有的gedit编辑器
如果一个父进程开了很多子进程,那么使用这个指令杀死父进程,就一窝端了,会把所有子进程也杀死
4.强制杀掉一个终端
(1)一个终端就是一个bashshell,多开几个终端,使用ps -aux | grep bash查找终端对应的PID
(2)终端是比较重要的进程,不能直接关闭,所以使用-9强制关闭。kill -9 PID
pstree [选项]
以树状的结构更加直观的查看进程信息
常用选项:
-p:显示进程的PID
-u:显示进程所属用户
top与ps都用来显示正在执行的进程,不同之处在于top在执行一段时间之后可以更新正在运行的进程,类似于windows的任务管理器。
top [选项]
常用选项:
-d:指定top命令每隔几秒更新,默认是3秒
-p:使top不显示任何闲置或僵死zombie进程
-i:通过指定PID来仅监控某个进程的状态
交互操作,注意区分大小写:
P:以CPU使用率排序,也是默认
M:以内存使用率排序
N:以PID排序
u:输入用户名,只显示某一个用户
k:输入进程号,kill进程
q:退出top
服务本质就是进程,但是运行在后台,因此又称为守护进程,通常会监听某个端口,等待其他程序的请求,比如mysql、sshd、防火墙iptables等。
netstat [选项]
只有网络服务才会监听端口,所以使用这个指令可以看到正在监听的端口
常用选项:
-an:按一定顺序排列输出
-p:显示哪个进程正在调用
常用示例:
netstat -anp | more,查看所有的网络服务
netstat -anp | grep xxx,专门查看某一个网络服务
netstat -ntlp 查看端口监听状态
1.setup指令 -> 选择系统服务,有*的服务就是开机自启动服务
2./etc/init.d/服务名称
sevice 服务名 [start | stop | restart | reload | status]
CentOS7以后有的服务使用systemctl:system control
windows中可以使用telnet命令检查linux某个端口是否在监听,并且可以访问(即检测是否启用了某个服务)。
telnet 目标ip 目标端口 例如:telnet 192.168.40.5 22 检测sshd服务是否启动
使用service对服务进行操作只是临时的,reboot之后会返回以前对服务的设置,如果希望永久生效,需要使用chkconfig。
CentOS 7下防护墙是firewalld不再是iptables,所以不能使用service iptables status
CentOS 7下使用防火墙:systemctl start firewalld
具体可以参考以下两篇
CentOS 7防火墙详解
防火墙常用命令
这里的运行级别其实和前面讲的运行级别是同一个概念。每一个服务在不同运行级别下的自启动状态是不同的,开机启动的时候init进程会在/etc/inittab中读取默认运行级别,然后启动这个运行级别下自启动的服务。
chkconfig命令可以给各个运行级别设置自启动/关闭。
基本语法:
chkconfig --list | grep xxx
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
chkconfig和service设置的区别:
service设置的是服务当前状态打开或关闭,不影响自启动;chkconfig设置的是是否打开这个服务的自启动,不影响当前的状态。所以reboot之后service的修改不再生效,chkconfig的设置开始生效。
注意!!!:
CentOS 7下chkconfig输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。要列出 systemd 服务,请执行 ‘systemctl list-unit-files’。