LiangGaRy-学习笔记-Day14

news/2025/3/17 18:26:52/

1、进程相关的命令

1.1、lsof命令

作用:显示当前进程的状态,类似于windows的任务管理器

语法:lsof + 选项

选项:

  • -i:指定端口号;:8080
  • -p:指定,指定端口;
  • -a:显示所有用户的所有进程
  • -x:显示没有控制终端的进程,同时显示各个命令的具体路径
#直接查看进程
[root@Node1 ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.2  0.1 125424  3756 ?        Ss   10:17   0:01 /usr/lib/syste
root          2  0.0  0.0      0     0 ?        S    10:17   0:00 [kthreadd]
..............#查看进程
[root@Node1 ~]# ps -elf 
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 31356 ep_pol 10:17 ?        00:00:01 /us
1 S root          2      0  0  80   0 -     0 kthrea 10:17 ?        00:00:00 [kt

1.2、lsof恢复误删除文件

特殊用法:可以实现文件误删除的恢复

  • 如果文件被删除了,删除之后没有进程在使用;使用工具、extundelete工具恢复,XFS系统工具恢复
  • 文件被删除知道,还是进程再使用文件,lsof可以查看进程进行恢复
  • 文件存在于磁盘block块当中;
    • inode号被删除;inode号没有了,而事实上进程还在的话就能够恢复;
      • 索引被删了;
    • 文件不能被覆盖,要是覆盖了,文件就没有了
      • 确保磁盘只读,没法写入,就没法覆盖
      • 卸载分区,原理是一样的,就是防止文件被覆盖;
  • 文件被删除之后,进程使用文件;然后lsof查询
    • 进程的数据都会在/proc 目录下–>

案例说明:

  • 创建文件 passwd
  • 在另外一个窗口打开,保持一直打开 vim
  • 删掉文件
  • lsof–>查看程序是否有在运行;
#创建一个文件-->#使用vim打开一个文件
[root@Node1 ~]# vim aa.txt 
this is txt
that is liangjiawei#打开终端-->删除文件
[root@Node1 ~]# rm -rf aa.txt #查看进程-->lsof 查找文件描述符-->这里就能看到6659和4U的文件符
[root@Node1 ~]# lsof | grep aa.txt
vim       6659         root    4u      REG              253,0     12288   34353107 /root/.aa.txt.swp#然后恢复
[root@Node1 ~]# cat /proc/6659/fd/4 > aa.txt
[root@Node1 ~]# cat aa.txt 
this is txt 
that is liangjiawei

1.3、top命令

作用:动态显示系统进程数据,对于所有正在运行的进行和系统负荷提供不断更新得概览信息;

语法:top

选项:

  • -d:指定刷新的时间(默认时间为3S跳一次;)
  • top运行起来之后:
    • 按s–>进入内部输入
      • ?:查看帮助
      • P:按照CPU占有率排序
      • M:按照内存使用率排序
      • T:进程使用CPU的时间
      • u:按照用户排序
      • h:需求帮助
      • 1:数字1,显示每个内核的cpu使用率

top命令输出的信息讲解

[root@Node1 ~]# top 
top - 10:42:59 up 25 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 104 total,   1 running, 103 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  3.1 sy,  0.0 ni, 96.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2028116 total,  1801648 free,    98104 used,   128364 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.  1773516 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   50 root      20   0       0      0      0 S   6.7  0.0   0:00.98 kworker/0+1 root      20   0  125424   3760   2564 S   0.0  0.2   0:01.24 systemd   2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd ...................................#输出的信息详解如下:
#整体的信息如下:
10:42:59 up 				#表示当前时间
25 min						#系统运行时间 格式为时:分
2 users						#当前登录用户数
load average: 0.00, 0.01, 0.05	#系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。#任务信息如下
Tasks: 104 total			#进程总数
1 running					#正在运行的进程数
103 sleeping				#睡眠的进程数
0 stopped					#停止的进程数
0 zombie					#僵尸进程数#CPU负载信息如下:
%Cpu(s):0.0 us				#用户空间占用CPU百分比
3.1 sy						#内核空间占用CPU百分比
0.0 ni						#用户进程空间内改变过优先级的进程占用CPU百分比
96.9 id						#空闲CPU百分比
0.0 wa						#等待输入输出的CPU时间百分比
0.0 hi						#硬中断(Hardware IRQ)占用CPU的百分比
0.0 si						#软中断(Software Interrupts)占用CPU的百分比
0.0 st	#内存的详细情况如下:
KiB Mem :  2028116 total		#物理内存总量
1801648 free					#使用的物理内存总量
98104 used						#空闲内存总量
128364 buff/cache				#用作内核缓存的内存量#虚拟交换分区的情况如下:
KiB Swap:  1048572 total		#交换区总量,使用的交换区总量
1048572 free					#空闲交换区总量
0 used							#空闲交换区总量
1773516 avail Mem 				#代表可用于进程下一次分配的物理内存数量#进程信息:
PID 				#进程ID
USER      			#进程所有者
PR  				#优先级
NI    				#nice值,负值表示高优先级,正值表示低优先级
VIRT				#进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES
RES					#进程使用的、未被换出的物理内存大小,单位kb
SHR					#共享内存大小,单位kb
S					#进程的状态-->进行中还是休眠还是僵尸等等
%CPU				#上传更新到现在的CPU时间占用百分比
%MEM				#进程使用的物理内存百分比
TIME+				#进程使用的CPU时间总计,单位1/100秒
COMMAND  			#命令名/命令行

1.2、pstree命令

作用:以树状的形式显示目录下的内容

语法:pstree + 选项

选项:

  • -p:显示进程的pid
  • -u:显示进程的所属用户;
  • -V  显示版本信息。
#查看进程数
[root@Node1 ~]# pstree 
systemd─┬─NetworkManager───2*[{NetworkManager}]├─VGAuthService├─agetty├─auditd───{auditd}
....................#指定进程号查看
[root@Node1 ~]# pstree -p 6377
sshd(6377)───sshd(6639)───bash(6641)───pstree(6677)#指定所有者
[root@Node1 ~]# pstree -u liangjiawei
bash

1.3、nice命令

前台进程:终端运行的命令,需要交互

后台进程:守护进程,不受终端的控制,不需要交互

  • httpd页面出现403–>有可能就是权限的问题
    • 解决:chmod 777–>满权限
    • 守护进程:用户httpd
      • chown httpd:httpd
    • httpd访问空白页面:
      • 考虑防火墙与selinux

作用:用于调整程序运行的优先级

语法:nice + 选项

选项:

  • -n:指定数值
[root@Node1 ~]# nice -n 8 vim aa.txt

2、后台相关的命令

2.1、&命令

作用:把命令或者是程序放到后台运行;

语法:命令 + &

ctrl+z:将一个正在前台运行的命令放到后台,并且暂停

#编写一个脚本
[root@Node1 ~]# vim a.txt
#!/bin/bash
while true 
doecho `date ` > a.txtsleep 1
done#后台运行
[root@Node1 ~]# bash aa.txt &

2.2、jobs命令

作用:查看当前有多少在后台运行的进程,他是一个作业控制的命令

语法:jobs +选项 + 参数

选项:

  • -l:显示进程号
  • -p:仅任务对应的显示进程号
  • -n:显示任务状态的变化
  • -r:仅输出运行状态(running)的任务;
  • -s:仅输出停止状态(stoped)的任务。
#显示当前后台运行的程序
[root@Node1 ~]# jobs -l
[1]+  6724 Running                 bash aa.txt &

2.3、fg命令

作用:将后台中的命令调至前台继续运行

语法:fg + 选项 + 任务号

[root@Node1 ~]# jobs -l
[1]-  6724 Running                 bash aa.txt &
[2]+  7166 Running                 bash aa.txt &
[root@Node1 ~]# fg
bash aa.txt

2.4、bg命令

作用:将后台暂停的命令,变成继续执行;

语法:bg + 任务号

[root@Node1 ~]# ping localhost > /dev/null &
[1] 7378
[root@Node1 ~]# jobs -l
[1]+  7378 Running                 ping localhost > /dev/null &
[root@Node1 ~]# bg

3、关闭进程的命令

3.1、kill命令

作用:用于给运行中的进程发送信号

语法:kill + 信号 + PID

选项:

  • -l:可以查看信号类型
#查看信号类型
[root@Node1 ~]# kill -l1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
..................#常用的信号类型:
1) SIGHUP			#重新加载配置
2) SIGINT			#终端,相当于ctrl+c
3) SIGQUIT			#退出;想你当用ctrl+\
9) SIGKILL			#强制终止
15) SIGTERM			#默认选项,终止
18) SIGCONT			#继续
19) SIGSTOP			#停止
20) SIGTSTP			#暂停#杀掉进程
[root@Node1 ~]# pkill -9 7380

3.2、killall命令

作用:使用进程的名称杀死进程

语法:killall + 选项 + 参数

选项:

  • -e:对长名称进行精确匹配
  • -l:忽略大小写的不同
  • -p:杀死进程所属的进程组
  • -i:交互式杀死进程,杀死进程前需要进行确认
  • -u:杀死指定用户的进程
  • -s:用指定的进程号代替默认信号“SIGTERM”
[root@Node1 ~]# killall -9 httpd

3.3、pkill命令

作用:用于杀死一个进程;

语法:pkill + 进程名

[root@Node1 ~]# pkill nginx

4、进程的优先级

4.1、nice命令.

前台进程:终端运行的命令,需要交互

后台进程:守护进程,不受终端的控制,不需要交互

  • httpd页面出现403–>有可能就是权限的问题
    • 解决:chmod 777–>满权限
    • 守护进程:用户httpd
      • chown httpd:httpd
    • httpd访问空白页面:
      • 考虑防火墙与selinux

作用:用于调整程序运行的优先级

语法:nice + 选项

选项:

  • -n:指定数值
[root@Node1 ~]# nice -n 8 vim aa.txt

4.2、screen命令

作用:. 使用screen可以方便的管理多个命令行工作流, 而不必担心彼此的影响.

语法:screen + 选项 + 命令

选项:

  • -S:创建一个回话名
  • -r:进入到某一个会话
  • -X:删除某个会话

screen -ls:查看已经建立好的会话链接

使用screen后台执行试试执行命令备份

  • 一些命令执行不能中断,使用screan可以解决
#安装
[root@Node1 ~]# yum -y install screen
[root@Node1 ~]# screen -ls
[root@Node1 ~]# screen  vim aa.txt 
#!/bin/bash
while true 
doecho `date ` > a.txtsleep 1
done

4.4、uname命令

作用:查看当前系统内核的基本信息

语法:uname + 选项

选项:

  • -s:查看系统
  • -r:查看内核版本
  • -m:查看系统架构
  • -i:查看系统的架构
[root@Node1 ~]# uname  -a
Linux Node1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux[root@Node1 ~]# uname  -r
3.10.0-957.el7.x86_64[root@Node1 ~]# uname -s
Linux

http://www.ppmy.cn/news/74530.html

相关文章

自学网络安全,最应该先学的五大技能树是什么?(附学习路线图)

前言: 近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,全球网络安全岗位缺口达500万,中国约100万,产业人才需求逐年增加,网络安全行业的相关岗位成为炙手可热的职业。…

基因序列变异信息VCF (Variant Call Format)

<~生~信~交~流~与~合~作~请~关~注~公~众~号生信探索> VCF是Variant Call Format的简称&#xff0c;是一种定义的专门用于存储基因序列突变信息的文本格式。在生物信息分析中会大量用到VCF格式。例如基因组中的单碱基突变,SNP&#xff0c; 插入/缺失INDEL, 拷贝数变异CNV&…

微软推出 Hierarchical Transformer 实现更高准确率的语音评测

对于语言学习者来说&#xff0c;练习发音并获得及时准确的反馈&#xff0c;是提高口语水平的重要环节。多年来&#xff0c;微软一直深耕基于 Azure 认知服务的语音功能&#xff0c;不断优化语音评测[1]功能的底层技术&#xff0c;从准确率、流畅度、完整性和语音语调等方面&…

iperf3常用

iperf使用方法详解 iperf3是一款带宽测试工具&#xff0c;它支持调节各种参数&#xff0c;比如通信协议&#xff0c;数据包个数&#xff0c;发送持续时间&#xff0c;测试完会报告网络带宽&#xff0c;丢包率和其他参数。 安装 sudo apt-get install iperf3iPerf3常用的参数&am…

DVB-S中卫星通信系统的基带仿真(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 ​数字视频广播(DVB)在卫星通信数字多媒体业务领域应用广泛,其一般采用MPEG-2编码、数字传输和纠错处理等通用技术,然而,当第三方…

Linux 设备驱动程序(三)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核&#xff08;一&#xff09; 深入理解 Linux 内核&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;一&#xff09; Linux 设备驱动程序&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;三&#xf…

提高电商团队效率:必备的协作工具盘点

随着电商行业的快速发展&#xff0c;电商团队的规模和任务不断增加。然而&#xff0c;文件管理和文件协作方面的问题也随之出现。 电商行业可能存在的问题&#xff1a; 文件传输效率低下&#xff1a;电商团队需要频繁地共享和传输大量的文件&#xff0c;这会导致文件传输效率低…

第一个 Rust 程序

目录 必要知识代码示例 Cargo 教程[Rust 输出到命令行](https://www.runoob.com/rust/rust-println.html)资料 必要知识 Rust 语言代码文件后缀名为 .rs 使用 rustc 命令编译 .rs 文件 rustc runoob.rs # 编译 runoob.rs 文件编译后会生成 可执行文件 例如&#xff1a; …