一、进程管理
1、进程的基本介绍
- 在linux中每一个执行的程序(代码)都称为一个进程,每一个进程都分配一个ID号
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
2、查看系统执行情况
基本介绍:
- ps命令是用来查看目前系统中,有哪些正在执行,以及他们执行的状况。可以不加任何参数
- ps显示的信息分析 | 字段 | 说明 | | —- | —- | | PID | 进程识别号 | | TTY | 终端机号 | | TIME | 此进程所消CPU时间 | | CMD | 正在执行的命令或进程名 |
**ps -a**
:显示当前终端的所有进程信息**ps -u**
以用户的格式显示进程信息**ps -x**
显示后台进程运行的参数
3、ps 命令详解
指令: **ps -aux | grep xxx**
想要查看某个进程是否开启 可以使用grep进行过滤
比如查看有没有sshd ps -aux | grep sshd
指令说明:
4、显示系统执行的过程
应用实例:
以全格式查看显示当前所有的进程,查看进程的父进程ps -ef
其中的PPID就是 父进程,如果是0 表示该进程没有父进程
ps -ef 是以全格式显示当前所有的进程
-e | 显示所有进程 |
---|---|
-f | 全格式 |
5、查看进程树
**pstree 【选项】**
可以更加直观的看到进程信息
选项 | 功能 |
---|---|
-p | 显示进程的PID |
-u | 显示进程的所属用户 |
应用案例
请你树状的形式显示进程PIDpstree -p
请你树状的形式显示进程的用户的IDpstree -u
二、终止进程
1、介绍:
若是某个进程执行一半需要停止时,或是已消耗了大量的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务
2、基本语法:
**kill 【选项】 进程号 **
(通过进程号来 杀死进程)**killall 进程名称**
(通过进程名称来杀死进程,也支持通配符,系统中负载过大而变得很慢时很有用)3、常用选项
| -9 | 表示强迫进程立即停止 | | —- | —- |
4、最佳实践
踢掉某个非法登录用户ps -aux | grep sshd
//查看一下都有哪些用户,哪个是非法的kill 3321
//结束进程号是3321 的用户
终止远程登录服务,sshd ,在适当的时候又开启 sshd服务ps -aux | grep sshd
//查看sshd的进程号kill 2217
//结束sshd进程
——————————————————————————/etc/init.d/sshd start
//开启sshd进程
终止多个 gedit编辑器,【通过进程名称来终止进程】kill gedit
强制杀掉一个终端(需要添加-9选项)ps -aux | grep bash
//查看有几个终端kill -9 3716
//干掉一个终端
三、服务管理
服务本质上就是进程,但是是运行在后台的,通常会监听某个端口,等待其他程序的请求【比如 mysql,sshd,防火墙】,因为我们又称为守护进程,是linux中很重要的东西【原理图】—>
1、service 管理指令:
**service 服务名 【start | stop | restart | reload | status】**
在Centos7后,不再使用service 而是 systemctl 服务名 【…】
使用案例:
- 查看当前防火墙的状况,关闭防火墙和重启防火墙
service iptables status
//查看防火墙状态service iptables stop
//关闭防火墙service iptables start
//启动防火墙
细节
- 关闭或者启用防火墙后,立即生效 可以在 windows doc窗口下 输入【telnet ip地址 端口号】 进行测试
- 这种方式知识临时生效,当重启系统后,还是回归以前对服务的设置
- 如果希望某个服务自启动或关闭永久生效,就要使用 chkconfig 指令。
2、查看服务名
方式1:使用setup 中的系统服务,就可以看到
方式2:/etc/init.d/
服务名称
3、chkconfig 指令
介绍:通过chkconfig指令 可以给每个服务的各个运行级别设置 自启动/关闭
3.1 基本语法:
**chkconfig --list | grep sshd **
(用来sshd查看服务)**chkconfig 服务名 --list**
(查看指定服务的状态 例如 iptables查看防火墙的,和上面哪个一样 )**chkconfig --level 5 服务名 on / off**
案例:
请将sshd服务在运行级别5的情况下不要自启动 chkconfig --level 5 sshd off
四、动态监控进程
1、动态监控进程
top命令和ps命令很相似,他们都是用来显示正在执行的进程。 top和ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程
1.1 基本语法:top 【选项】
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新,默认3秒 |
-i | 使top不显示任何闲置或者僵死进程 |
-p | 通过指定监控进程 ID 来仅仅监控某个进程的状态 |
1.2 案例:
- 监控特定用户
top u
- 终止指定的进程
在 top执行完 下的页面中
输入 k 然后输入PID
- 指定系统状态更新的时间(每隔10秒自动更新)
五、监控网络状态
1、查看系统网络情况 netstat
1.1 基本语法: netstat ``【选项】
1.2 选项:
选项 | 说明 |
---|---|
-an | 按一定顺序排列输出 |
-p | 显示哪个进程在调用 |
1.3 应用案例
- 查看系统所有的网络服务有哪些
netstat -anp
- 请查看服务名为sshd的服务的信息
netstat -anp | grep sshd
六、PRM包的管理
1、介绍:
- 一种用于互联网下载包的打包及安装工具,它包含在某些linux发行版中,它生成育有 .RPM拓展名的文件。 RPM是RedHat Package Manager (红帽软件包管理工具)的缩写,类似windows的setup.ext 这一文件格式名称虽然打上了Red Hat的标志,但理念是通用的
linux的分发版本都有采用(suse,rehat,centos 等等) 可以算是公认的行业标准
rpm包的简单查询指令
查询已经安装的rpm列表 rpm -qa | grep xx
rpm包名基本格式
一个rpm包名, firefox-45.0.0-1.el6.centos.x86_64.rpm
名称 | firefox |
---|---|
版本号 | 45.0.1-1 |
使用操作系统 | el6.centos.x86_64 |
表示centos6.x的64位系统 如果是 i686 / i386 表示32位系统 noarch 表示通用 |
2、rpm包的其他查询指令:
**rpm -qa**
【查询所有的rpm包查出来】**rpm -qa | more**
【分页显示全部】
**rpm - qa | grep firefox**
【查询有没有安装火狐】**rpm -q 软件包名**
【直接查询软件包有没有安装,和上面的功能一样】**rpm -qi 软件包名**
【查看安装的rpm软件信息】**rpm -ql 软件包名**
【查看软件包安装信息(查看里面的安装文件 和 目录)】**rpm -qf 文件全路径名**
【查询文件所属的软件包】3、卸载rpm包
基本语法:
**rmp -e 软件包名称**
- 应用案例:
- 删除firefox软件包
rmp -e firefox
- 删除firefox软件包
- 细节问题:
- 如果其他软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
- 如果一定要删除 就加上 —nodeps 强制删除,不建议这样使用
4、安装rpm包
基本语法: **rpm -ivh RPM包全路径名称**
参数说明:
i | 安装 |
---|---|
v | 提示 |
h | 进度条 |
应用案例:
安装firefox浏览器
先找到firefox的安装包,需要挂载上安装centos的iso文件,然后到/media/下去找rom包cd /media/
cp firefox-45.0.0-1.el6.centos.x86_64.rpm /opt/
cd /opt/
rpm -ivh firefox-45.0.0-1.el6.centos.x86_64.rpm
七、YUM包管理
1、介绍:
yum是一个shell前端软件包管理器。基于RPM包管理,能够从只当的服务器自动下载RPM包并进行安装,可以自动处理依赖性关系,并且一次安装所有以来的软件包
2、yum基本指令
查询yum服务器是否有需要安装过的软件**yum list | grep xx**
【查看软件列表】
安装指定的yum包**yum install xxx **
【下载并安装】
3、案例:
使用yum安装 firefox yum install firefox
细节:默认安装 最新版