一、进程管理

1、进程的基本介绍

  1. 在linux中每一个执行的程序(代码)都称为一个进程,每一个进程都分配一个ID号
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
  3. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

2、查看系统执行情况

基本介绍:

  • ps命令是用来查看目前系统中,有哪些正在执行,以及他们执行的状况。可以不加任何参数
  • ps显示的信息分析 | 字段 | 说明 | | —- | —- | | PID | 进程识别号 | | TTY | 终端机号 | | TIME | 此进程所消CPU时间 | | CMD | 正在执行的命令或进程名 |

**ps -a** :显示当前终端的所有进程信息
**ps -u** 以用户的格式显示进程信息
**ps -x** 显示后台进程运行的参数
未命名图片.png

未命名图片.png

3、ps 命令详解

指令: **ps -aux | grep xxx** 想要查看某个进程是否开启 可以使用grep进行过滤
比如查看有没有sshd ps -aux | grep sshd
指令说明:
未命名图片.png

4、显示系统执行的过程

应用实例:
以全格式查看显示当前所有的进程,查看进程的父进程
ps -ef
其中的PPID就是 父进程,如果是0 表示该进程没有父进程
ps -ef 是以全格式显示当前所有的进程

-e 显示所有进程
-f 全格式

未命名图片.png

5、查看进程树

**pstree 【选项】** 可以更加直观的看到进程信息

选项 功能
-p 显示进程的PID
-u 显示进程的所属用户

应用案例
请你树状的形式显示进程PID
pstree -p
请你树状的形式显示进程的用户的ID
pstree -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中很重要的东西【原理图】—>

    未命名图片.png

    1、service 管理指令:

    **service 服务名 【start | stop | restart | reload | status】**
    在Centos7后,不再使用service 而是 systemctl 服务名 【…】
    使用案例:

  1. 查看当前防火墙的状况,关闭防火墙和重启防火墙
    • 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

未命名图片.png

四、动态监控进程

1、动态监控进程

top命令和ps命令很相似,他们都是用来显示正在执行的进程。 top和ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程

1.1 基本语法:top 【选项】

选项 功能
-d 秒数 指定top命令每隔几秒更新,默认3秒
-i 使top不显示任何闲置或者僵死进程
-p 通过指定监控进程 ID 来仅仅监控某个进程的状态


在进入top后 输入下面字符 可以进行交互
未命名图片.png
未命名图片.png

1.2 案例:

  1. 监控特定用户

top u

  1. 终止指定的进程

在 top执行完 下的页面中
输入 k 然后输入PID

  1. 指定系统状态更新的时间(每隔10秒自动更新)

top -d 10

五、监控网络状态

1、查看系统网络情况 netstat

1.1 基本语法: netstat ``【选项】

**netstat -anp**

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
  • 细节问题:
    • 如果其他软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
    • 如果一定要删除 就加上 —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
细节:默认安装 最新版