就业班 2401--2.26 Linux Day5--进程管理一

一、权限扩展

文件权限管理之: 隐藏权限防止root误删除

文件属性添加与查看

[root@linux-server ~]# touch file1 file2 file3
1.查看文件属性
[root@linux-server ~]# lsattr file1 file2 file3 
---------------- file1
---------------- file2
---------------- file3
2.设置权限
[root@linux-server ~]# chattr +a file1  #不允许修改,只允许追加
[root@linux-server ~]# chattr +i file2  #不允许做任何操作
[root@linux-server ~]# chattr +A file3
[root@linux-server ~]# lsattr file1 file2 file3
-----a---------- file1
----i----------- file2
-------A-------- file3
i:即Immutable,系统不允许对这个文件进行任何的修改
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何覆盖这个文件
A:即Atime,告诉系统不要修改对这个文件的最后访问时间

测试效果

[root@linux-server ~]# echo 111 > file1  #覆盖,只允许追加
-bash: file1: Operation not permitted
[root@linux-server ~]# rm -rf file1     #不能删除
rm: cannot remove ‘file1’: Operation not permitted
[root@linux-server ~]# echo 111 >> file1 #追加

[root@linux-server ~]# echo 111 > file2
-bash: file2: Permission denied
[root@linux-server ~]# echo 111 >> file2
-bash: file2: Permission denied
[root@linux-server ~]# rm -rf file2
rm: cannot remove ‘file2’: Operation not permitted
[root@linux-server ~]# mv file2 file4
mv: cannot move ‘file2’ to ‘file4’: Operation not permitted

取消权限
[root@linux-server ~]# chattr -a file1 
[root@linux-server ~]# chattr -i file2

二、进程管理

关于进程 process

What is a process?  什么是进程
Process states  进程状态

什么是进程?

进程是已启动的可执行程序的运行实例,是程序运行的过程,动态的,有生命周期及运行状态。程序: 二进制文件,静态 /bin/date, /usr/sbin/httpd,/usr/sbin/sshd, /usr/sbin/nginx

查看进程 process

静态查看进程

[root@linux-server ~]# ps aux | less
参数解释:
ps :process nsapashot
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
-------------------
[root@linux-server ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
============================================================================
USER:   #运行进程的用户
PID:   #进程ID
%CPU:   #CPU占用率
%MEM:   #内存占用率
VSZ     进程占用的虚拟内存大小
RSS     占用的物理内存大小
STAT:  #进程状态  ---了解
?    表示没有占用终端
R   运行
S   可中断睡眠 Sleep
D   不可中断睡眠
T   停止的进程 
Z   僵尸进程
X    死掉的进程
START:  #进程的启动时间
TIME:   #进程占用CPU的总时间
COMMAND: #进程文件,进程名

进程状态--了解
Sl  以线程的方式运行
Ss  s进程的领导者,父进程
R+  +表示是前台的进程组
S< <优先级较高的进程    
SN  N优先级较低的进程
查看tty的方法:
[root@linux-server ~]# tty
? 表示这个进程开启的时候没有占用终端

查看进程(二)

[root@linux-server ~]# ps -ef
参数解释:
-e 显示所有进程
-l 长格式显示
-f 完整格式

UID       用户ID
PID       进程ID
PPID      父进程ID
C         CPU占用率
STIME     开始时间
TTY       开始此进程的TTY----终端设备
TIME      此进程运行的总时间
CMD       命令名

查看单个PID

[root@linux-server ~]# yum install -y httpd  #安装apache软件
[root@linux-server ~]# systemctl start httpd #启动
[root@linux-server ~]# cat /var/run/httpd/httpd.pid
1043

查看指定PID

[root@linux-server ~]# ps aux | grep sshd
root       1043  0.0  0.2 105996  4120 ?        Ss   01:32   0:00 /usr/sbin/sshd -D
grep:过滤

查看端口

[root@linux-server ~]# yum install lsof  #安装软件包
[root@linux-server ~]# lsof -i:80   #端口号,这能查看带端口的进程
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd   64249   root    4u  IPv6 1373628      0t0  TCP *:http (LISTEN)

#注意:端口号只有整数,范围是从0 到65535
参数解释:
FD:文件描述符,应用程序通过文件描述符识别该文件。
DEVICE:指定磁盘的名称
SIZE:文件的大小
#查网络进程和正在监听的端口
[root@linux-server ~]# netstat -lntp
参数详解:
-a  显示全部的进程
-u  显示udp
-n  以数字的新式显示协议名称
-t   tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口

参数解释:
recv-Q:网络接收队列
send-Q:网路发送队列
Foreign Address:与本机端口通信的外部请求
[root@linux-server ~]# w  #看已经登陆到终端的进程信息,远程登陆会有ip 地址

部分参数解释:
USER –登录用户名.
TTY –登录用户使用的终端名.
FROM –登录用户来源的主机名或IP地址.
LOGIN@ –用户登录时间.
WHAT –用户当前的进程及选项/参数。

动态查看进程

top、htop

[root@linux-server ~]# top #动态显示信息,三秒刷新一次。

在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。
1分钟   第一个数字
5分钟   第二个数字
15分钟  第三个数字
======================
计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。

top操作

[root@linux-server ~]# top
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出   
z 彩色显示
W 保存
=============================
PR   优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES  进程使用的、未被换出的物理内存大小,单位kb。
SHR  共享内存大小,单位kb

top - 16:26:45 up 14:54, 3 users,load average: 0.05, 0.06, 0.05Tasks: 129 total, 2 running, 127 sleeping, 0 stopped, 0 zombie

内容

含义

16:26:45

表示当前时间

up 14:54

系统远行时间,格式为时:分

3 users

当前登陆用户数

load average: 0.05, 0.06, 0.05

系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值

129 total

进程总数

2 running

正在运行的进程数

127 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数

%Cpu (s) : 0.2 us, 1.0 sy, 0.0 ni, 98.8 id,0.0 wa, 0.0 hi, 0.0 si, 0.0 st

内容

含义

0.2 us

用户空间占用CPU百分比

1.0 sy

内核空间占用CPU百分比

0.0 ni

用户进程空间内改变过优先级的进程占用CPU百分比

98.9 id

空闲CPU百分比

0.0 wa

等待输入输出的CPU时间百分比

0.0 hi

硬中断(Hardware IRQ)占用CPU的百分比

0.0 si

软中断(Software Interrupts)占用CPU的百分比

0.0 st

用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间

KiB Mem : 2031912 total, 1549816 free, 155372 free, 326724 buff/cache

内容

含义

2031912 total

物理内存总量

1549816 free

使用的物理内存总量

155372 used

空闲内存总量

326724 buff/cache

用作内核缓存的内存量

KiB Swap: 2097148 total, 2097148 free, 0 used, 1674648 avail Mem

内容

含义

2097148 total

交换区总量

2097148 free

使用的交换区总量

0 used

空闲交换区总量

1674648 Avail Mem

缓冲的交换区总量

ni: nice值
id: cpu空闲率
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
指令:
renice <优先级> -p <PID> # 一般不调整

进程控制

按pid杀死进程

kill,pkill
语法: kill 信号 PID   #信号也是进程间通信的一种方式
[root@linux-server ~]# kill -l   #查看所有信号
-1   HUP  重新加载进程或者重新加载配置文件,PID不变
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)
-18  CONT 激活进程
-19  STOP 挂起进程

kill 补充

pidof httpd

pgrep nginx

案例一

给vsftpd进程发送信号1,15 vsftpd信号测试

[root@linux-server ~]# yum install -y vsftpd  #安装vsftpd
[root@linux-server ~]# systemctl start vsftpd  #启动
[root@linux-server ~]# ps aux | grep vsftpd
root      59363  0.0  0.0  53212   576 ?        Ss   16:47   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

[root@linux-server ~]# kill -1 59363  #发送重启信号,例如vsftpd的配置文件发生改变,希望重新加载
[root@linux-server ~]# ps aux | grep vsftpd
root      59363  0.0  0.0  53212   748 ?        Ss   16:47   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@linux-server ~]# kill 59363 #正常杀死进程,信号为-15可以默认不写。我们可以使用systemctl stop vsftpd 停止服务。
[root@linux-server ~]# ps aux | grep vsftpd
root      62493  0.0  0.0 112660   968 pts/0    S+   16:51   0:00 grep --color=auto vsftpd

进程状态解释--了解:
+:表示运行在前台的进程
S+:休眠状态
T+:暂停,挂起状态
s:父进程

案例二

给vsftpd进程发送信号-9, vsftpd信号测试

[root@linux-server ~]# systemctl start vsftpd
[root@linux-server ~]# ps aux | grep vsftpd
root      67003  0.0  0.0  53212   572 ?        Ss   16:57   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      67089  0.0  0.0 112660   972 pts/0    S+   16:57   0:00 grep --color=auto vsftpd
[root@linux-server ~]# kill -9 67003  #强制杀死,一般用于不能正常停止的情况下
[root@linux-server ~]# ps aux | grep vsftpd
root      67190  0.0  0.0 112660   972 pts/0    S+   16:57   0:00 grep --color=auto vsftpd

案例三

使用pkill 杀死vsftpd进程

[root@linux-server ~]# systemctl start vsftpd
[root@linux-server ~]# ps -aux | grep vsftpd
root      73399  0.0  0.0  53212   572 ?        Ss   17:05   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      73499  0.0  0.0 112660   968 pts/0    S+   17:05   0:00 grep --color=auto vsftpd
[root@linux-server ~]# pkill -9 vsftpd  #使用pkill可以指定进程名字
[root@linux-server ~]# ps -aux | grep vsftpd
root      73643  0.0  0.0 112660   968 pts/0    S+   17:05   0:00 grep --color=auto vsftpd

作业控制

作业控制之jobs:

作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。

实战案例

[root@linux-server~]# sleep 7000 &   #&:让命令或者程序后台运行
[1] 5441
[root@linux-server ~]# sleep 8000    #ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
^Z
[2]+  Stopped                 sleep 8000

[root@linux-server ~]# jobs  #查看后台的工作号
[1]-  Running                 sleep 7000 &
[2]+  Stopped                 sleep 8000
[root@linux-server ~]# bg %2  #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
[2]+ sleep 8000 &
[root@linux-server ~]# jobs 
[1]-  Running                 sleep 7000 &
[2]+  Running                 sleep 8000 &

[root@linux-server ~]# fg %1  #将后台的程序调到前台
sleep 7000

[root@linux-server ~]# jobs 
[2]+  Running                 sleep 8000 &
[root@linux-server ~]# kill -9 %2  #通过kill杀死进程
[root@linux-server ~]# jobs 
[2]+  Killed                  sleep 8000
[root@linux-server ~]# jobs #在次查看没有了

三、常用命令

  1. 查看当前CPU负载
[root@linux-server ~]# uptime 
 17:35:01 up 16:02,  3 users,  load average: 0.00, 0.02, 0.05
  1. 查看内存使用
[root@linux-server ~]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           1984         154        1508           8         321        1632
Swap:          2047           0        2047

-m:单位M
  1. linux启动过程
1. 加电
2. 加载bios设置
3. 加载grub,
4. 加载内核系统到内存当中
5. 加载配置文件
6. 加载内核模块
7. 完成相应的初始化工作和启动相应的服务
8. 启动系统进程
9. 出现登录界面
10. 开机启动完成
  1. 查看系统的版本和内核
[root@linux-server ~]# cat /etc/redhat-release  #查看版本
CentOS Linux release 7.4.1708 (Core)
[root@linux-server ~]# uname -a #看查正在运行的内核版本
Linux linux-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@linux-server ~]# uname -r  #查看内核版本
3.10.0-693.el7.x86_64
  1. 修改主机名
[root@linux-server ~]# hostnamectl set-hostname  xxxx   #主机名,修改完之后断开与终端连接,然后在重新连接即可。
查看主机名
[root@linux-server ~]# hostname
  1. 跳板机(堡垒机)的作用
1 身份验证
2 屏幕录制,防止员工对服务器做有害的操作
3 批量操作 一次性操作2-200台机器
  1. 安装过操作系统吗?怎么安装?
1.小批量设备,使用U盘安装
(调整bios参数从U盘启动)
2.大批量设备搭建PXE装机系统,从网络批量安装
(调整网络启动项,从网络启动)
  1. 上传下载
# yum install -y lrzsz
上传
# rz
下载
# sz 文件

回顾:

程序 进程

工具 服务

后台 前台

====================================

进程、 线程、 协程

每个程序运行,都会至少启动一个进程,叫做主进程

每个进程会至少开启一个线程,叫做主线程

进程之间资源隔离,线程之间资源共享

e.g. 登qq 林俊杰演唱会门票

同步、异步

协程解决异步问题

e.g. 洗菜

并行、 并发

时间段

====================================

占用CPU的百分比,占用内存

VSZ 虚拟的的内存占用

RSS 实际占用

TTY 终端

STAT 进程的状态

START 啥时候开的

TIME 运行了多久(占用了CPU才算)

ps -aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

进程用户 进程编号 虚拟内存 实际物理内存 进程状态 占用cpu的时间 启动命令

a:查看所有终端进程,tty不是?

u: 进程的用户,cpu等信息

x:所有进程

f:进程之间的父子关系

补充:

查询系统中cpu占用排名前3的进程是什么

ps -aux --sort=%cpu | head -4 升序

ps -aux --sort=-%cpu | head -4 降序

查看服务器cpu有几个核心

lscpu

ls /dev/cpu | wc -l

查看/etc目录下有哪些文件中包含"particular users to run"这个字符串

grep -r "particular users to run" /etc

grep "particular users to run" /etc/* 2> /dev/null

 今天的分享就到这里啦,再见喽~~~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/417778.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vivado时序报告之Check_timing详解

目录 一、前言 二、Check_Timing 2.1 含义解释 2.2 工程代码 2.3 时序约束 2.4 Check_timing报告 no clock pulse_width_clock unconstrained_internal_endpoints no_input_delay no_output_delay multiple_clock generated_clocks loops partial_input_delay …

在 Python 中确定一个数字是否等于 0,考虑精度问题

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 在 Python 中&#xff0c;特别是在处理浮点数时&#xff0c;确定一个数字是否等于 0 时&#xff0c;必须考虑精度问题。由于计算机使用二进制表示数字&#xff0c;浮点运算可能会引入微小的误差。这意味…

2024年抖店创业项目分享,新手不能错过的教程分享,快收藏!

大家好&#xff0c;我是电商花花。 在我看来&#xff0c;2024年最受欢迎的电商创业项目还得是抖音小店无货源&#xff0c;我依然看好今年抖音电商的市场&#xff0c;并且对于抖音小店我们会做&#xff0c;会一直做下去。 抖音一直都属于兴趣电商&#xff0c;会根据你的兴趣去…

.Encryptedd@mailfence.com.faust勒索病毒数据怎么处理|数据解密恢复

导言&#xff1a; 在数字时代的今天&#xff0c;我们享受着科技带来的便利和创新&#xff0c;但也要时刻警惕着隐患。勒索软件就是其中之一&#xff0c;它们以一种毒害般的形式悄然而至&#xff0c;将我们的数字世界变得一片混乱。今天&#xff0c;我们要聚焦的是 .Encrypted…

ModStartCMS v8.1.0 图片前端压缩,抖音授权登录

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

价格战打响!阿里云服务器和腾讯云服务器价格对比

2024年阿里云服务器和腾讯云服务器价格战已经打响&#xff0c;阿里云服务器优惠61元一年起&#xff0c;腾讯云服务器62元一年&#xff0c;2核2G3M、2核4G、4核8G、8核16G、16核32G、16核64G等配置价格对比&#xff0c;阿腾云atengyun.com整理阿里云和腾讯云服务器详细配置价格表…

2.29总结

P1802 5 倍经验日 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目背景 现在乐斗有活动了&#xff01;每打一个人可以获得 5 倍经验&#xff01;absi2011 却无奈的看着那一些比他等级高的好友&#xff0c;想着能否把他们干掉。干掉能拿不少经验的。 题目描述 现在 absi…

windows 中, bash: conda: command not found(已解决)

git bash 中运行conda命令&#xff0c;出现这种错误&#xff0c;原因是你没有在git bash中 配置conda&#xff0c;导致git bash无法找到conda 那就配置一下&#xff0c;找到你的conda的安装位置下的bash.sh文件&#xff0c;一般在安装位置&#xff08;我的安装在C盘的自定义路径…

『Linux从入门到精通』第 ㉑ 期 - 文件系统详解

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f427;认识磁盘&#x1f427;逻辑抽象&#x1f427;文件系统&#x1f426;Block&#x1f426;Block Group&#x1f414;Block Group 的组成部分 &#x1f426;Superblock(超级区块)&#x1f426;Group Description(…

typescript 的数据类型有哪些

&#x1f469; 个人主页&#xff1a;不爱吃糖的程序媛 &#x1f64b;‍♂️ 作者简介&#xff1a;前端领域新星创作者、CSDN内容合伙人&#xff0c;专注于前端领域技术&#xff0c;成长的路上共同学习共同进步&#xff0c;一起加油呀&#xff01; ✨系列专栏&#xff1a;前端面…

吸猫毛空气净化器哪个好?推荐除猫毛好的宠物空气净化器品牌

如今&#xff0c;越来越多的家庭选择养宠物&#xff01;虽然家里变得更加温馨&#xff0c;但养宠可能会带来异味和空气中的毛发增多可能会引发健康问题&#xff0c;这也是一个大问题。 但我不想家里到处都是异味&#xff0c;尤其是便便的味道&#xff0c;所以很需要一款能够处…

Unity(第八部)Vector3的三维向量和旋转(坐标和缩放也简单讲了一下)

对了&#xff0c;Unity的生命周期自行百度吧&#xff1b;我这边整理的都不是很满意 Vector 是结构体 Vector2是指里面有两个变量 Vector3是指里面有三个变量 Vector4是指里面有四个变量 Vector3常用的变量就是x y z,所以&#xff0c;它可以代表坐标、旋转、缩放、三维向量 创…

C语言数据结构基础—单链表相关数据结构题目6道

上一篇博客中&#xff0c;我们大致的讲解了单链表相关的各种接口。接下来我们通过例题来运用类似的思想&#xff0c;达到学以致用的目的。 1.移除链表元素 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 没有说明头结点是什么&#xff0c;默认就是第一个元素&am…

智能汽车软硬件产品CES展示汽车技术新亮点

智能汽车是汽车产业发展的新趋势&#xff0c;是未来汽车发展的必然方向。智能汽车是指搭载了先进的传感器、控制器、执行器等部件&#xff0c;并融合了人工智能、自动驾驶等技术&#xff0c;能够实现部分或完全自动驾驶、智能网联等功能的汽车。 近年来&#xff0c;智能汽车技…

ensp模拟单臂路由实现不同两个网段主机访问

拓扑结构图如下 1.pc机配置略过 2.交换机配置 三个接口&#xff0c;两个连接pc&#xff0c;连接方式access&#xff0c;一个连接路由器 连接方式trunk sy #进入系统 视图模式 undo info-center enable #关闭信息 vlan batch 10 20#批量创建vlan int g 0/0/2#进入2端口 p…

Java图书管理系统---命令行

项目列表 Book包 Book类内包含book的基本属性 BookList类初始化图书列表并且提供图书的属性方法 User包 Administrator类 common类 operator包 功能接口 新增图书功能 借阅图书功能 删除图书功能 显示图书功能 查找图书功能 归还图书功能 结束释放资源功能 运行…

MySQL进阶:大厂高频面试——各类SQL语句性能调优经验

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;MySQL进阶&#xff1a;强推&#xff0c;冲大厂必精通&#xff01;MySQL索引底层&#xff08;BTree&#xff09;、性能分析、使用…

批量获取图片(下)

1.问题分析 我们观察下之前获得的图片&#xff0c;可以发现图片的清晰度不够。 放大之后比较模糊&#xff0c;这样的图叫做缩略图&#xff0c;那该如何获得高清海报图片呢&#xff1f; 为了找到高清图片&#xff0c;我们需要对网页结构进行分析&#xff0c;找到高清图对应的链…

C#,动态规划(DP)金矿问题(Gold Mine Problem)的算法与源代码

1 金矿问题&#xff08;Gold Mine Problem&#xff09; 给定一个N*M尺寸的金矿&#xff0c;每个点都有一个非负数表示当前点所含的黄金数目&#xff0c;最开始矿工位于第一列&#xff0c;但是可以位于任意行。矿工只能向右&#xff0c;右上&#xff0c;右下三个方向移动。问该…

Eureka 入门教程

Eureka 介绍 1. 注册中心概述 什么是注册中心&#xff1f; 给客户端提供可供调用的服务列表&#xff0c;客户端在进行远程调用&#xff08;RPC&#xff09;时&#xff0c;根据服务列表选择服务提供方的服务地址进行服务调用 注册中心的核心功能 注册&#xff1a;服务提供者上…