Linux学习笔记 #3_洛圣都枭熊的博客-程序员秘密

技术标签: Linux  linux  centos  

上一篇:Linux学习笔记 #2

下一篇:Linux学习笔记 #4


8 进程

8.1 基本介绍

  • 在Linux中,每个执行的程序都称为一个进程。每一个进程都会被分配一个ID号,称为进程号(pid)。
  • 进程的存在方式:前台和后台。
    • 前台:用户目前的屏幕上可以进行操作的。
    • 后台:实际在操作,但屏幕上无法看到的。

      一般系统服务都会以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

8.2 查看进程

  • 【命令】查看进程:ps [选项]

8.2.1 ps -aux指令

  • 常用选项-1:

    • -a:显示当前终端的所有进程信息
    • -u:以用户的格式显示进程信息
    • -x:显示后台进程运行的参数
  • 一般使用ps -aux来查看进程信息:
    在这里插入图片描述

    USER:进程执行用户
    PID:进程号
    %CPU:当前进程占用CPU的百分比
    %MEM:当前进程占用物理内存的百分比
    VSZ:当前进程使用的虚拟内存量(KB)
    RSS:当前进程占用的固定内存量(KB)
    TTY:该进程在那个终端上运行,若与终端无关,则显示?; 若为pts/0等,则表示由网络连接主机进程。
    STAT:当前进程的运行状态
    START:该进程被触发启动时间
    TIME:该进程实际使用CPU运行的时间
    COMMAND:进程名,或启动该进程所用的命令或参数

    STAT的状态:

    • S:睡眠
    • s:该进程是会话进程的先导进程
    • N:进程拥有比普通优先级更低的优先级
    • R:正在运行
    • D:短期等待
    • Z:僵死进程
    • T:被跟踪或者被停止
  • 可以配合grep指令和管道符来筛选特定进程:ps -aux | grep xxx

8.2.2 ps -ef指令

  • BSD风格的呈现。
  • 常用选项-2:
    • -e:显示所有进程
    • -f:以全格式显示
  • 一般使用ps -ef来查看进程:
    在这里插入图片描述

    UID:用户名
    PID:进程的ID
    PPID:父进程ID
    C:进程占用CPU的百分比
    STIME:进程启动到现在的时间
    TTY:该进程在那个终端上运行,若与终端无关,则显示?; 若为pts/0等,则表示由网络连接主机进程。
    CMD:命令的名称和参数

8.3 终止进程

当某个进程需要被中止时,可对其使用kill命令。

  • 【指令】通过进程号终止进程:kill [选项] 进程号

  • 【指令】通过进程名终止进程:killall 进程名称

    也支持通配符。

  • 常用选项:

    • -9:表示强迫进程立即停止

上一篇:Linux学习笔记 #2
下一篇:Linux学习笔记 #4

8.4 查看进程树

  • 【指令】直观地查看进程信息:pstree [选项]
  • 常用选项:
    • -p:显示进程的PID
    • -u:显示进程的所属用户

8.5 动态监控进程

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

  • 【命令】top [选项]

    • 常用选项:
      • -d 秒数:指定top每隔几秒更新(默认3秒)
      • -i:使top不显示任何闲置或者僵死的进程
      • -p:通过指定进程ID来仅仅监控某个进程的状态
  • top命令说明:
    在这里插入图片描述

    17:05:23——当前时间
    1:46——系统运行时长
    2 users——用户数
    load average——负载值
    Tasks——系统任务数
    %Cpu(s)——cpu使用情况

    us——用户占用
    sy——系统占用
    id——空闲

    Mem——内存使用情况
    Swap——交换分区使用情况

    在此界面进行交互:

    操作 功能
    P 以CPU使用率排序(默认此项)
    M 以内存的使用率排序
    N 以PID进行排序
    q 退出top界面
  • 示例

    • 查看特定用户的进程(监控特定用户):
      1. 输入u,回车;
      2. 输入用户名。
    • 终止指定的进程(如结束wzs的登录):
      1. 输入k,回车;
      2. 输入要结束的进程ID号;
      3. 输入signal:9。

8.6 监控网络状态

  • 【指令】查看系统网络状态:netstat [选项]

    • 常用选项
      • an:按照一定的顺序排序输出
      • -p:显示哪个进程在调用

    在这里插入图片描述

    Proto:网络协议
    Local Address:本地地址(Linux的地址)
    Foreign Address:外部地址

    例如Windows通过xshell和Linux的SSHD服务连接:
    Linux的本地地址是192.168.219.129,SSHD服务在22号端口进行监听
    Windows上的xshell使用的外部地址192.168.219.1,通过端口3472与Linux的SSHD的端口22连接
    此时如果有新用户通过xshell连接Linux,就会通过另一个端口与Linux的SSHD的端口22连接


9 服务管理

9.1 基本介绍

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求(比如mysql,sshd防火墙等),因此又称为守护进程。

9.2 service管理指令

CentOS8.4中似有许多指令做出了更改,以下内容部分不再适用

  • 【指令】服务管理:service 服务名 [start | stop | restart | reload | status]

    在CentOS7.0之后,很多服务不再使用service,而是systemctl进行管理。

    • service指令管理的服务在/etc/init.d/查看。
    • 示例:使用service指令——查看、关闭、启动network。
  • 【指令】查看全部服务:setup

9.3 服务的运行级别

9.3.1 Linux的运行级别

  • Linux有7种运行级别(runlevel)。其中常用的是级别3和5。
    在这里插入图片描述

9.3.2 默认运行级别的查看和设置

  • 在CentOS7之后,运行级别的设置进行了简化。
    在/etc/initab中:
    • multi-user.target: analogous to runlevel 3
    • graphical.target: analogous to runlevel 5
  • 【指令】查看默认运行级别:systemctl get-default
  • 【指令】设置默认运行级别:systemctl set-default TARGET.target

9.3.3 设置服务的运行级别

  • 【指令】查看服务:chkconfig --list [| grep xxx]
  • 【指令】设置某个服务在某个运行级别时的启动或关闭:chkconfig --level 5 服务名 on/off

9.4 Linux的开机流程

  1. 开机;
  2. 进入BIOS;
  3. 进入程序引导/boot;
  4. 执行进程1:systemd;
  5. 确定运行级别;
  6. 把运行级别对应的服务启动。

9.5 systemctl管理指令

  • 语法:systemctl [start | stop | restart | status] 服务名

    systemctl指令管理的服务在/usr/lib/systemd/system查看
    指令控制了3和5两个运行级别

  • 【指令】查看服务开机启动状态:systemctl list-unit-files [| grep 服务名]

  • 【指令】设置服务的开机启动:systemctl enable 服务名

  • 【指令】关闭服务开机启动:systemctl disable 服务名

  • 【指令】查询某个服务是否是自启动的:systemctl is-enabled 服务名

  • 示例:查看当前防火墙的状态,关闭防火墙和重启防火墙

    • systemctl status firewalld
    • systemctl stop firewalld / systemctl start firewalld

systemctl中,start和stop指令只是临时开启和关闭;要永久启动和关闭(即是否开机启动),需要用enable和disable指令。

9.6 端口

应用场景:防火墙打开的情况下,通过打开指定端口进行通讯。

  • firewall指令
    • 【指令】打开端口:firewall-cmd --permanent --add-port=端口号/协议
    • 【指令】关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
    • 【指令】重新载入端口使之生效:firewall-cmd --reload
    • 【指令】查询端口是否开放:firewall-cmd --query-port=端口/协议

10 rpm包

10.1 基本介绍

  • rpm:RedHat Package Manager。用于互联网下载包的打包及安装工具,生成具有.RPM扩展名的文件。包含在某些Linux的分发版中。类似Windows的setup.exe。

10.2 rpm包的查询

  • 【指令】查询已安装所有rpm软件包:rpm -qa [| grep xxx]
  • 【指令】查询软件包是否安装:rpm -q 软件包名
  • 【指令】查询软件包信息:rpm -qi 软件包名
  • 【指令】查询软件包安装的文件:rpm -ql 软件包名
  • 【指令】查询文件所属的软件包:rpm -qf 文件全路径名
  • 示例:查询火狐的rpm包:rpm -qa | grep firefox
    在这里插入图片描述

    rpm包的基本格式
    名称:firefox
    版本号:78.9.0-1
    适用操作系统:el8_3.x86_64(表示centos8.x的64位系统)

10.3 rpm包的管理

  • 【指令】卸载rpm包:rpm -e rpm包的名称

    示例:卸载火狐的rpm包:rpm -e firefox

  • 【指令】安装rpm包:rpm -ivh rpm包的全路径名称

    参数说明:
    i = install(安装)
    v = verbose(提示)
    h = hash(进度条)

10.4 yum

  • yum是一个shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且以此安装所有以来的额软件包。
  • 【指令】查询yum服务器是否有需要安装的软件:yum list | grep xxx
  • 【指令】安装指定的yum包:yum install xxx

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangfrank2012/article/details/119959910

智能推荐

Gojs 中文Api_CrazyDuang的博客-程序员秘密

 常用API  操作类API  API 例子 应用场景 添加节点 myDiagram.model.addNodeData(node) var node={};       node["key"]="节点key";       node["loc"]="0 0";       node["text"]="节点名.

微信PC版通信协议研究_微信 通讯协议_frozen1105的博客-程序员秘密

PC版微信通信协议,不用下载官方客户端运行当前最新版本号(以前旧版没有版本号验证,新版的协议多了个版本号验证,如果出错了服务器返回版本号过低,干掉这个验证之后随便填版本号了)只逆了自认为比较重要的功能协议,LUA Script用户自定义扩展业务想买份正版的ida pro电话怎么打不通呢...

C# 实体类_weixin_30256505的博客-程序员秘密

3.1使用实体类构建三层结构概述在上一章中的三层架构中,我们使用DataSet来进行数据的传递,但在OOP的开发中,有很大的局限性:1.DataSet不具备良好的面向对象特性,使用起来不够直观、方便。2.对DataSet中的数据进行查找时容易出错。例如:我们要查询DataSet中学员信息DataTable中的某个值时,必须指定行索引与列名,这只是一个简单的...

Activity管理(三)_一朵白山茶的博客-程序员秘密

onRestart()->onStart()->onResume()b) 完成了第一步对activity生命周期的响应之后,在第二步这里主要是处理窗口的添加动作:把DecorView添加到WindowManager中。完成第二步操作之后,activity的内容便显示到了屏幕上。这个窗口的添加动作属于窗口管理中的一个步骤,具体可参考《Android窗口管理剖析》一文。以下是部分主要接口到生命周期的响应的内部调用流程图二、ActivityManagerService及其内部调度流程\1.

ubuntu设置root密码_乌班图设置root密码_yushuir的博客-程序员秘密

Ubuntu装完后,root没有密码,不能登录,需要设置一个密码,这时我们可以先登录先前建的帐号,输入:sudo passwd这时会弹出:Enter new UBIX password:Retype new UnIX password:要求你输入两次密码确认。这时,你就可以使用su root切换到root帐号了。...

随便推点

Linux系统Shell基础之字符截取命令_住手丶让我来的博客-程序员秘密

一、这篇博客主要介绍字符截取命令1、cut 字段提取命令,2、printf 命令,3、awk 命令,4、sed 命令。场景模拟提前准备一个测试文件:student.txt,用来存放测试数据,使用 Vim编辑器准备这个测试文件,如下图:①、vim student.txt②、编辑如下内容:注意:测试文件的空格使用【Tab】键,因为 cut 命令默认是截取的字符是【Tab】键。二、cu...

关于“无法解析的外部符号”和“该符号在函数_wmain 中被引用”的问题_静态库无法解析的外部符号,该符号在函数_读书导航的博客-程序员秘密

在VS2008和opendv的环境下:error LNK2019: 无法解析的外部符号_cvDestroyWindow,该符号在函数_wmain 中被引用error LNK2019: 无法解析的外部符号_cvReleaseImage,该符号在函数_wmain 中被引用error LNK2019: 无法解析的外部符号_cvWaitKey,该符号在函数_wmain 中被引用error

face recognition[翻译][深度学习理解人脸]_weixin_33708432的博客-程序员秘密

本文译自《Deep learning for understanding faces: Machines may be just as good, or better, than humans》。为了方便,文中论文索引位置保持不变,方便直接去原文中找参考文献。近些年深度卷积神经网络的发展将各种目标检测和识别问题大大的向前推进了不少。这同时也得益于大量的标注数据集和GPU的使用,这些方面的发展使...

Jmeter压测秒懂_WindwardBird的博客-程序员秘密

前言 目前企业项目对于代码的质量要求越来越高,很多都有代码评审,尤其是性能这一块,除了编码规范和自测接口功能外,自己 对自己的接口进行压测也是至关重要,同时也是督促自己提升的一个手段,接下来咱们就聊聊就jmetery压测接口快速上手,5分 钟你就可以完成,超值,超值下载官网:https://jmeter.apache.org/download_jmeter.cgi准备工作1.下载解压包展示2. 启动Jmeter打开bin文件,找到 ----> j

Nfine框架基本使用--初学者的总结_YG_999的博客-程序员秘密

Nfine框架基本使用--初学者的总结最近要上手的Nfine框架,以前学习Java,上手这个感觉和ssm框架基本类似,基于MVC思想。借鉴了其他博主的帖子终于把这个框架增删改查等一套基本逻辑理清楚了,下面是我的总结内容,附带步骤图片.1.建立Entity,扩展接口 — 这里是建立一个 Camera_InfoEntity 的Entity,也就是表的实体bean.namespac...

推荐文章

热门文章

相关标签