linux进程管理命令使用_shell进程

linux进程管理命令使用_shell进程Linux进程管理、服务管理、软件包管理(rpm、yum)详细讲解。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

linux进程管理命令使用_shell进程

目录​​​​​​​

一、进程管理

1. 查看进程信息

2. 查看父进程信息

3. 终止进程

4. 查看进程树

5. 动态监控进程

二、服务管理

1. 服务管理

2. 服务的运行级别

3. 服务管理指令 systemctl(CentOS 7.0之后)

4. 打开/关闭指定端口

三、软件包管理(rpm、yum)

1. rpm 包的管理

2. yum 包的管理


一、进程管理

        在 Linux 操作系统中,每一个执行的程序都是被称之为进程,且每个进程都有它专属的进程号 pid;每个进程可能都以前台后台两种方式存在,前台进程就是用户直接可在屏幕上操作的部分,与用户直接交互;后台进程则无法在屏幕看到,只在后台运行(一般系统服务都是以后台进程的方式存在,常驻于 系统,只有关机才会结束)

程序 是静态的实体;
进程 则是动态的实体,可以理解为运行着的程序;

1. 查看进程信息

使用指令 ps 可以查看当前系统正在运行的进程以及它们执行的状态;

  • ps -a  //显示当前终端所有的进程信息
  • ps -u  //以用户的格式显示进程信息
  • ps -x  //显示后台进程运行的参数
  • ps -aux | more  //分页查看所有进程信息

如下分页查看所有进程信息:

linux进程管理命令使用_shell进程

各字段含义如下:

linux进程管理命令使用_shell进程

2. 查看父进程信息

除进程本身外,进程也可以创建多个子进程,进而就有了父进程子进程的概念;

查看父进程的信息需要先知道父进程的 pid,此时需要使用指令 ps -ef 以全格式显示当前的所有进程。例如我们查看进程 sshd(远程登录) 的父进程信息(结果只需看第一条即可);

linux进程管理命令使用_shell进程

可以看到,进程 sshd 的 id 为 1478,它的父进程 id 为 1;此时再全格式查看进程信息就可以找到 id 为 1 的进程是哪个了;

linux进程管理命令使用_shell进程

以全格式查看进程信息时新增了 PPID 字段,代表此进程的父进程 pid;PPID 为 0 表示该进程没有父进程。

3. 终止进程

需要停止某进程时,可以使用指令 kill 进程号 或者 killall 进程名 分别通过进程号或进程名终止该进程;需要注意的是,如果一个进程下有子进程,该进程被终止后它的所有子进程也将被终止。

终止进程指令常用选项:

  • -9  //强制进程立即停止

4. 查看进程树

查看进程树使用指令 pstree,相较于使用 ps 指令它可以更加直观;

  • pstree -p  //显示进程的pid
  • pstree -u  //显示进程的所属用户

linux进程管理命令使用_shell进程

5. 动态监控进程

动态监控进程使用指令 top,功能与 ps 指令相似,区别在于 top 是动态的监控进程,可以查看进程的更新过程。

  • top -d 秒数  //指定top命令每隔几秒更新一次当前进程的执行情况(默认3s)
  • top -i  //top指令不再显示任何僵死或者闲置的进程
  • top -p  //通过进程号pid指定监控某个进程执行情况

linux进程管理命令使用_shell进程

在使用 top 指令动态查看进程的过程中,我们也可以进行一些交互操作:

  • 按下 “P” 使进程按照  CPU 的使用率进行排序(默认)
  • 按下 “M” 按照内存占用率排序
  • 按下 “N” 按照 pid 进行排序
  • 按下 “u” 再输入用户名,监控指定用户的进程
  • 按下 “k” 再输入进程号,终止指定的进程
  • 按下 “q” 退出 top 指令

二、服务管理

        服务管理中的服务本质上就是一个后台的进程。服务运行在后台,监听某个端口等待某个程序的请求,如 sshd、mysqld、防火墙 等都属于服务,服务又被称为守护进程。

1. 服务管理

服务管理使用的指令为 service 服务名 选项(注意在 CentOS 7.0 之后不再使用 service 指令,由 systemctl 指令代替)

常用选项有:

  • start  //启动服务
  • stop  //关闭服务
  • restart  //重启
  • reload  //重载
  • status  //状态

当然,service 指令依旧可以管理若干服务,具体存储在 /etc/init.d 目录下。如下是 7.0 版本之后 services 指令所管理的服务:

linux进程管理命令使用_shell进程

使用指令 setup 可以查看 Linux 操作系统的所有服务;如下为所有系统服务,前面带 [*] 的代表此服务会随着操作系统的启动而自动启动,我们可以使用空格键来选择它是否选中。

linux进程管理命令使用_shell进程

2. 服务的运行级别

之前已经有介绍,Linux 操作系统中一共有七种运行级别;

  • 0 – 系统停机状态,系统默认运行级别不能设置为0,否则无法正常启动(基本不用)
  • 1 – 单用户工作状态,常用于系统维护,没有远程登陆功能(基本不用)
  • 2 – 多用户工作状态,不支持网络服务
  • 3 – 多用户状态,无界面,登陆后进入控制台命令行模式(最常用)
  • 4 – 系统未使用
  • 5 – 图形界面模式(常用)
  • 6 – 系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

通过指令 chkconfig 可以为服务的各个运行级别设置自启动或关闭自启动(注意该命令在 CentO S 7.0 之后也不再使用,由 systemctl 代替)

  • chkconfig –list  //查看 chkconfig 命令管理的服务
  • chkconfig –level 运行级别 服务名 on/off  //设置某个服务在某个运行级别为自启动或者关闭自启动

举例:关闭 network 服务在运行级别 3 的自启动服务,再使用 –list 指令可以看到,network 服务的自启动功能已关闭。

linux进程管理命令使用_shell进程

打开自启动功能只需把 off 改为 on 即可;

linux进程管理命令使用_shell进程

使用 chkconfig 指令设置服务的自启动功能后,需要重启系统才能生效。

3. 服务管理指令 systemctl(CentOS 7.0之后)

基本语法:systemctl 选项 服务名

  • 常用选项与 service 相同
  • systemctl list-unit-files  //查看当前各个服务的自启动状态,可使用管道过滤
  • systemctl enable 服务名  //设置服务开机自启动
  • systemctl disable 服务名  //关闭服务开机自启动
  • systemctl is-enabled 服务名  //查看某服务是否为自启动状态

systemctl 指令设置的自启动服务默认在运行级别 3 和 5 。

systemctl 指令所管理的服务存储于 /usr/lib/systemd/system 目录下;

linux进程管理命令使用_shell进程

4. 打开/关闭指定端口

打开或关闭指定端口主要是针对防火墙服务。在平常的工作中,防 火墙都是打开状态,但是打开防火墙服务就会造成一个问题,那就是外部请求数据包无法再与服务器所监听的端口进行通讯。这时候我们就需要打开某个指定的端口。打开/关闭指定端口使用指令 firewall

  • firewall-cmd –permanent –add-port=端口号/协议  //打开端口
  • firewall-cmd –permanent –remove-port=端口号/协议  //关闭端口
  • firewall-cmd –reload  //重新载入(必须重新载入新设置才会生效)
  • firewall-cmd –query-port=端口/协议  //查询端口是否开放

查询端口和协议使用指令 netstat -anp

linux进程管理命令使用_shell进程

三、软件包管理(rpm、yum)

1. rpm 包的管理

rpm(RedHat Package Manage)是用于网络下载包的打包及安装工具,包含于某些 Linux 分发版本中,它会生成以 .rpm 为扩展名的文件。

查询已安装的 rpm 包列表使用指令 rpm -qa,必要时可以使用管道进行过滤。

  • rpm -qa  //查询所安装的所有软件包
  • rpm -q 软件包名  //查询某软件包是否安装
  • rpm -qi 软件包名  //查询软件包信息
  • rpm -ql 软件包名  //查询软件包中的文件
  • rpm -qf 文件全路径名  //查询文件所属的软件包

如下使用 rpm 指令查看系统是否安装了 Firefox;

linux进程管理命令使用_shell进程

卸载 rpm 包使用指令 rpm -e 包名称

(​​​​​​删除包的时候需要注意,如果有其他软件依赖于所要删除的包,卸载会产生错误信息,如果想要强制删除可以增加 –nodeps 选项如: rpm -e –nodeps 包名,但不建议此做法)

安装 rpm 包使用指令 rpm -ivh 包全路径名称(i 安装,v 提示信息,h 进度条)。

2. yum 包的管理

yum 是 shell 前端软件包管理器,基于 rpm 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 基本指令如下:

  • yum list  //查询yum服务器上可以安装的软件和已安装的软件
  • yum install 包名  //安装指定的软件包
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/195022.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python微信机器人库_Python微信机器人「建议收藏」

    python微信机器人库_Python微信机器人「建议收藏」1.需要用到的模块:requests:Requests是用Itchat:itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如这些。该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个工具。如今微信已经成为了个人社交的很大…

  • Android Studio debug使用release的签名

    Android Studio debug使用release的签名当我们在做微信微博sdk分享的时候调试非常麻烦,因为要使用对应的签名版本才能调用sdk成功。当我们使用AndroidStudio的Gradle之后会很简单的解决这个问题。1.我们把签名文件放到工程根目录下(这样做是为了保持路径的统一)2.在Gradle中引入如下代码:  //配置keystore签名  signingConfigs{    release

    2022年10月16日
  • 大数运算C语言实现

    大数运算C语言实现大数乘法利用字符数组进行大数乘法的位运算#include<stdio.h>#include<math.h>#include<string.h>voidprint_cheng(chars1[],chars2[]);voidmain(){chars1[1000],s2[1000];while(scanf(“%s%s”,s1,s2))pr…

  • 2022年最新的西安Java培训机构十大排名榜单

    2022年最新的西安Java培训机构十大排名榜单2022年最新的西安Java培训机构十大排名榜单

  • oracle function详解,Oracle函数用法详解「建议收藏」

    oracle function详解,Oracle函数用法详解「建议收藏」本文概述函数是用于返回单个值的子程序。你必须在调用函数之前声明并定义一个函数。它可以在同一时间声明和定义,也可以在同一块中先声明然后定义。在Oracle中创建函数句法CREATE[ORREPLACE]FUNCTIONfunction_name[(parameter[,parameter])]RETURNreturn_datatypeIS|AS[declaration_sec…

  • logstash过滤错误日志_高考专业报名指南

    logstash过滤错误日志_高考专业报名指南Logstash 参考指南(关闭Logstash)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号