-
基本介绍
-
在 Liunx 中,每个执行的程序都称为一个进程。每一个进程都分配一个ID 号(pid,进程号)。
-
每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
-
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
-
示意图
-
-
显示系统执行的进程
-
基本介绍
ps 命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。
-
ps 详解
-
指令:ps –aux|grep xxx
-
指令说明
System V 展示风格 USER:用户名称 PID:进程号 %CPU:进程占用 CPU 的百分比 %MEM:进程占用物理内存的百分比 VSZ:进程占用的虚拟内存大小(单位:KB) RSS:进程占用的物理内存大小(单位:KB) TT:终端名称,缩写 //进程状态:其中 S-睡眠 s-表示该进程是会话的先导进程 N-表示进程拥有比普通优先级更低的优先级 // R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 STAT STARTED:进程的启动时间 TIME:CPU 时间,即进程使用 CPU 的总时间 COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
-
-
应用实例
-
要求:以全格式显示当前所有的进程,查看进程的父进程。 查看 sshd 的父进程信息
ps -ef 是以全格式显示当前所有的进程 -e 显示所有进程。-f 全格式 ps -ef|grep sshd
-
BSD 风格
UID: 用 户 ID PID: 进 程 ID PPID:父进程 ID //CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低; // 数值越小,表明进程是 I/O 密集型运算,执行优先级会提高 C STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU时 间 CMD:启动进程所用的命令和参数
-
-
-
终止进程kill 和killall
-
介绍
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用 kill 命令来完成此项任务。
-
基本语法:
kill [选项] 进程号(功能描述:通过进程号杀死/终止进程)
功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大变得很慢时很有用
killall 进程名称
-
常用选项:-9。表示强迫进程立即停止
-
最佳实战
-
踢掉某个非法登录用户。kill 进程号
-
终止远程登录服务sshd,在适当时候再次重启sshd服务。
kill sshd 对应的进程号、/bin/systemctl start、sshd.service
-
终止多个gedit。killall gedit
-
强制杀掉一个终端。kill -9 hash 对应的进程号
-
-
-
查看进程树
-
基本语法:pstree [选项],可以更加直观的来看进程信息
-
常用选项
-p 显示进程的PID -u 显示进程的所属用户
-
应用实例
-
请你树状的形式显示进程的pid。pstree -p
-
请你树状的形式进程的用户。pstree -u
-
-
-
服务(service)管理
-
介绍:
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysql,sshd,防火墙等),因为我们又称为守护进程,是Liunx中非常重要的知识点。
-
service管理指令
-
service。服务名[start | stop | restart | reload | status]
-
在CentOS7.0后很多服务不在使用service,而是systenctl(后面专门讲)
-
service指令管理的服务在/etc/init.d查看
-
-
service管理指令案例
请使用service指令,查看,关闭,启动network。【注意:在虚拟系统演示,因为网络连接会关闭】
指令:
service network status; service network stop; service network start;
-
查看服务名
-
方式1:setup 系统服务就可以看到全部
-
方式2:/etc/init.d看到service指令管理的服务
ls -l /etc/init.d
-
-
服务的运行级别(runlevel)
-
Liunx系统有7种运行级别(runlevel):常用的级别是3和5
运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆
运行级别 2:多用户状态(没有 NFS),不支持网络
运行级别 3:完全的多用户状态(有 NFS),无界面,登陆后进入控制台命令行模式
运行级别 4:系统未使用,保留
运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动
-
开机的流程说明:
-
-
CentOS7后运行级别说明
在/etc/initab进行了简化,如下:
multi-user.target: analogous to runlevel 3 graphical.target: analogous to runlevel 5 init 0 # To view current default target, run: systemctl get-default # To set a default target, run: systemctl set-default TARGET.target
-
chkconfig指令
-
介绍:通过chkonfig命令可以给服务的各个运行级别设置自启动/关闭
chkconfig指令管理的服务在/etc/init.d查看
注意:CentOS7.0后,很多服务使用systemctl管理
-
chkconfig基本语法
查看服务chkconfig。--list [| grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
-
案例演示:对netwoerk服务进行各种操作,把network在3运行级别,关闭自启动
chkconfig --level 3 network off chkconfig --level 3 network on
-
使用细节:chkconfig重新设置服务后自动或关闭,需要重启机器reboot生效
-
-
systemctl管理指令
基本语法:systemctl [start | stop | restart | status ] 服务名
systemctl指令管理的服务在/usr/lib/system查看
-
systemctl设置服务的自启动状态
// 查看服务开机启动状态,grep可以进行过滤 systemctl list-unit-files [| grep 服务名] // 设置服务开机启动 systemctl enable 服务名 // 关闭服务开机启动 systemctl disable 服务名 // 查询某个服务是否自启动的 systemctl is-enabled 服务名
-
应用案例
查看当前防火墙的状况,关闭防火墙和重启防火墙。
firewalld.service; systemctl status firewalld; systemctl stop firewalld; systemctl start firewalld;
-
细节讨论
关闭或者启用防火墙后,立即生效。【telent 测试某个端口即可】
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable | disable] 服务名
-
打开或关闭 指定端口
在真正的生产环境,往往需要将防火墙打开,但问题来了,如果把防火墙打开了,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。
-
firewall指令
- 打开端口:firewall-cmd --permanent --add-port=端口号/协议
- 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
- 重新载入,才能生效:firewall-cmd --reload
- 查询端口是否开放:firewall-cmd --query-port=端口/协议
-
应用案例:
-
启用防火墙,测试111端口是否能telnet,不行
-
开放111端口
firewall-cmd --permanent -add-port=111/tcp; 需要firewall-cmd --reload
-
再次关闭111端口
firewall-cmd --permanent -remove-port=111/tcp; 需要firewall-cmd --reload
-
-
-
动态监控进程
-
介绍
top与ps命令很相似。他们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。
-
基本语法:top [选项]
-
选项说明
选项 功能 -d 描述 指定top命令每隔几秒跟新。默认是3秒 -i 使top不显示任何闲置或者僵死进程 -p 通过指定监控进程ID来仅仅监控某个进程的状态 -
交互操作说明
操作 功能 P 以CPU使用率排序,默认就是此项 M 以内存的使用率排序 N 以PID排序 Q 退出top -
应用实例
-
监视特定用户,比如监控tom用户
top:输入此命令,按回车键,查看执行的进程 u:然后输入"u"回车,再输入用户名,即可
-
终止指定的进程,比如要结束tom登录
top:输入此命令,按回车键,查看执行的进程 k:然后输入"k"回车,再输入要结束的进程ID号
-
指定系统状态更新的时间(每隔10秒自动跟新),默认是3秒。top -d 10
-
-
-
监控网络状态
-
查看系统网络情况netstat
-
基本语法:netstat [选项]
-
选项说明
-an。按一定顺序排列输出
-p。显示哪个进程在调用
-
应用案例:查看服务名为sshd的服务的信息。netstat -anp | grep sshd
-
-
检测主机连接命令ping
是一种网络检测工具,它主要是用来检测远程主机是否正常,或是两步主机间的网线或网卡故障。
-
-
rpm包的管理
-
介绍:
rpm用于互联网下载包的打包及安装工具,它包含在某些Liunx分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似windwos的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通的
Liunx的分发版本都有采用(suse,redhat,centos等等),可以算是公认的行业标准了。
-
rpm包的简单查询指令
查询已安装的rpm列表。rpm -qa | grep xx
-
rpm包名基本格式
一个rpm包名:firefox-60.2.2-1 .el7.centos.x86_64
名称:firefox
版本号:60.2.2-1
适用操作系统:.el7.centos.x86_64。表示centos7.x的64位系统。
如果是i686、i386表示32位系统,noarch表示通用
-
rpm包的其他查询指令
rpm -qa。查询所安装的所有rpm软件包
rpm -qa | more
rpm -qa | grep X [rpm -qa | grep firefox]
rpm -q 软件包名。查询软件包是否安装
rpm -qi 软件包名。查询软件包信息
rpm -ql 软件包名。查询软件包中的文件
rpm -qf 文件全路径名。查询文件所属的软件包
-
卸载rpm包
- 基本语法:rpm -e RPM包的名称
- 应用案例:删除firefox软件包。rpm -e firefox
- 细节讨论:
- 如果其他软件包依赖于要卸载的软件包,卸载时则会产生错误信息
- 如果想要就是删除这个rpm包,可以增加参数--nodeps,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
-
安装rpm包
-
基本语法:rpm -ivh RPM包全路径名称
-
参数说明
-i=install安装
v=verbose提示
h=hash进度条
-
-
-
yum
-
介绍
Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
示意图。
-
yum的基本指令
查询yum服务器是否有需要安装的软件。yum list | grep XXX(软件列表)
-
安装指定的yum包:yum install XXX
-



