Linux 实操篇 组管理和权限管理、定时任务调度、Linux磁盘分区和挂载
一、组管理和权限管理
(1)Linux组基本介绍
在linux中的每个用户必须属于一个组,不能独立于组外
在linux中每个文件有所有者、所在组、其他组的概念
(2)文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然地成为该文件的所有者
1.2.1查看文件的所有者
- 指令:
ls -ahl
- 说明:




1.2.2修改文件的所有者
- 指令:
chown 用户名 文件名 - 应用案例:将文件apple.txt的所有者修改成tom
chown tom apple.txt - 注意:使用该命令修改文件所有者时,文件的所在组 默认不会改变
(3)组的创建
1.3.1基本指令
groupadd 组名
1.3.2应用实例
- 创建一个组,monster:
groupadd monster - 创建一个用户fox,并放入monster组中:
useradd -g monster fox
(4)文件/目录 所在组
当某个用户创建了一个文件后,这个文件的所在组默认就是该用户所在的组
1.4.1查看文件/目录所在组
- 基本指令:
ls -ahl - 应用实例:使用fox创建一个文件,看看该文件属于哪个组?

1.4.2修改文件/目录所在组
- 基本指令:
chgrp 组名 文件名 - 应用实例:使用root用户创建文件orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到fruit组

(5)其它组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
(6)改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的,用root的管理权限可以改变某个用户所在的组
1.6.1改变用户所在组
usermod -g 新组名 用户名usermod -d 目录名 用户名 改变该用户登录的初始目录(特别说明:用户需要有进入到新目录的权限)
1.6.2应用实例
- 题目:将zwj这个用户从原来所在组,修改到wudang组
- 指令:
usermod -g wudang zwj
(7)权限的基本介绍

- 第一列一共有10位,分别用0-9表示,下面是0-9位的说明:
- 第0位确定文件类型(d,-,l,c,b)

- 第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。 —User
- 第 4-6 位确定所在组(同用户组的)拥有该文件的权限。—Group
- 第 7-9 位确定其他用户拥有该文件的权限。—Other
(8)RWX权限详解,难点
1.8.1rwx作用到文件
- [r]代表可读(read):可以读取,查看
- [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
- [x]代表可执行(execute):可以被执行
1.8.2rwx作用到目录
- [r]代表可读(read):可以读取,ls查看目录内容
- [w]代表可写(write):可以修改,对目录内创建+删除 或者 重命名目录
- [x]代表可执行(execute):可以进入该目录
(9)文件及目录权限实际案例 
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件类型:-代表该文件是普通文件
- 其余字符每3个一组(rwx)
- 第一组rwx:文件拥有者的权限是读、写和执行
- 第二组rw-:所在组的用户的权限是读、写但不能执行
- 第三组r--: 其他组的用户的权限是读不能写和执行
- 可用数字表示:r=4,w=2,x=1,因此rwx=4+2+1=7,数字可以进行组合
(10)修改权限—CHMOD
1.10.1基本说明
通过chmod(change mod)指令,可以修改文件或目录的权限
1.10.2第一种方式:+、-、=变更权限
- u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
- chmod u=rwx,g=rx,o=x 文件/目录名
- chmod o+w 文件/目录名
- chmod a-x 文件/目录名
- 案例演示:
- 给abc文件的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限
chmod u=rwx,g=rx,o=rx abc - 给abc文件的所有者除去执行的权限,增加组写的权限
chmod u-x,g+w abc - 给abc文件的所有用户添加读的权限
chmod a+r abc
- 给abc文件的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限
1.10.3第二种方式:通过数字变更权限
- r=4 w=2 x=1 rwx=4+2+1=7
- chmod u=rwx,g=rx,o=x 文件目录名 相当于 chmod 751 文件目录名
- 案例演示:将/home/abc.txt 文件的权限修改成rwxr-xr-x,使用给数字的方式实现

(11)修改文件所有者—CHOWN
1.11.1基本介绍
chown newowner 文件/目录 #改变所有者chown newowner:newgroup 文件/目录 #改变所有者和所在组-R 如果是目录,则使其下所有子文件或目录递归生效
1.11.2案例演示
- 请将/home/abc.txt文件的所有者修改成tom
- 请将/home/test目录下所有的文件和目录的所有者都修改成tom
chown tom /home/abc.txtchown -R tom /home/test
(12)修改文件/目录所在组—CHGRP
1.12.1基本介绍
chgrp newgroup 文件/目录 #改变所在组
1.12.2案例演示
- 请将/home/abc.txt文件的所在组修改成shaolin(少林)
chgrp shaolin /home/abc.txt - 请将/home/test目录下所有的文件和目录的所在组都修改成shaolin(少林)
chgrp -R shaolin /home/test
(13)最佳实践—警察和土匪游戏

- 创建组、创建用户

- jack创建一个文件,自己可以读写,本组人可以读,其他组没有任何权限


- jack修改该文件,让其他组可以读,本组人可以读写:

- xh投靠警察,看看xh是否可以读写

- 结论:如果想对目录内的文件进行读/写等操作,必须先拥有对该目录的相应权限
二、定时任务调度
(1)crond 任务调度
2.1.1概述
- crontab 进行 定时任务的设置
- 任务调度:系统在某个时间执行的特定的命令或程序
- 任务调度分类:
- 系统工作:如有些重要工作必须周而复始地执行
- 个别用户工作:个别用户可能希望执行某些程序,如对mysql数据库的备份

2.1.2基本语法
crontab [选项]
2.1.3常用选项
- -e:编辑当前用户的定时任务表,会用默认文本编辑器打开文件供你添加、修改或删除任务
crontab -e - -l:列出当前用户的定时任务表
crontab -l - -r:删除当前用户的定时任务表,操作不可逆
crontab -r - -u <用户名>:以指定用户的身份执行 crontab 操作,需足够权限(如 root)才能用
sudo crontab -u jack -e #编辑用户jack的任务表sudo crontab -u jack -l #列出用户jack的任务表sudo crontab -u jack -r #删除用户jack的任务表 - -h:显示 crontab 命令的帮助信息,列出可用选项及说明
crontab -h
2.1.4快速入门
- 设置个人任务调度:corontab -e
- 在调度文件中输入任务:*/1 * * * * ls -l /etc/ > /tmp/to.txt



- 特殊符号说明:



2.1.5应用实例
- 每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中:
*/1 * * * * date >>/tmp/mydate - 每隔1分钟,将当前日期和日历都追加到/home/mycal文件中:
- 每天凌晨2:00将mysql数据库testdb,备份到文件中。提示:指令为mysqldump -u root -p密码 数据库
2.1.6crond相关指令
- 重启任务调度(CentOS7及以上)
systemctl restart crond - 重启任务调度(CentOS6及以下)
service crond restart
(2)at 定时任务


2.2.1基本介绍
- .at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
- 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
- at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
- 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
ps -ef|grep atd - 示意图

2.2.2at命令格式
- at [选项] [时间]
- Crtl + D 结束at命令的输入(按两次)
2.2.3at命令选项










2.2.4at时间定义
- 具体时间点:

- 特定日期与时间组合:

- 相对计时法:

- 特定时间表述:

2.2.5应用案例
- 案例1:2天后的下午5点执行 /bin/ls/home

- 案例2:atq命令来查看系统中没有执行的工作任务

- 案例3:明天17点钟,输出时间到指定文件内 比如/root/date100.log

- 案例4:2分钟后,输出时间到指定文件内 比如/root/date200.log

- 案例5:删除已经设置的任务,atrm 编号(也可以使用at -d 任务编号:来删除设置的任务)

三、Linux磁盘分区和挂载
(1)Linux分区
3.1.1原理介绍
- 单一根目录与统一文件结构:在 Linux 系统中,无论存在多少个分区以及这些分区分配给哪些目录使用,系统只有一个根目录(
/),并形成一个独立且唯一的文件系统结构。每个分区都是这个整体文件系统的组成部分 - 挂载机制:Linux 采用 “挂载” 的方式来管理存储设备。整个文件系统包含了一系列的文件和目录,通过挂载操作,可以将一个分区(如硬盘分区、外部存储设备等)与文件系统中的某个目录关联起来。挂载后,该分区的存储空间就如同是该目录的一部分,用户可以通过这个目录来访问分区中的文件和目录

- 示意图:

3.1.2硬盘说明
- IDE硬盘分区标识:IDE硬盘用 hd 表示,后面跟盘号(a - d 对应不同IDE通道的主从盘)和分区号。1 - 4 号是主分区或扩展分区,5 及以后是逻辑分区,如 hda3、hdb2

- SCSI等硬盘分区标识:SCSI、SATA、NVMe 等硬盘用 sd 表示,盘号和分区号规则和IDE硬盘一样,像 sda5、sdb3
- 如图所示:

3.1.3查看所有设备挂载情况
- -a(all):显示所有块设备,包含空设备(如未挂载、无分区的设备)

- -d(nodeps,即no dependencies的缩写):只显示设备本身,不显示设备的子分区

- -f(fs,即file system的缩写):显示文件系统相关信息,如文件系统类型、UUID 等

- -o(output):自定义输出列,可指定要显示的信息字段

- 输出信息说明:










UUID(通用唯一识别码)主要是用来标识硬盘分区
(2)挂载的经典案例
3.2.1如何增加一块硬盘
右键虚拟机,选择[设置],点击添加,选择硬盘,然后一路[下一步],中间只有选择磁盘大小的地方需要修改,直到完成。然后重启系统(才能识别)!

3.2.2虚拟机增加硬盘步骤1
- 分区命令 fdisk /dev/sdb

- 开始对/sdb分区


- 说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q

3.2.3虚拟机增加硬盘步骤2
格式化磁盘:
- 格式化命令:-t是type的缩写,意味着要创建的文件系统的类型是什么(make filesystem)
mkfs -t ext4 /dev/sdb1 - 其中ext4是分区类型
- 格式化之前,sdb1还没有UUID

- 输入命令,格式化磁盘


- 再看,此时就拥有UUID了

3.2.4虚拟机增加硬盘步骤3
- 挂载:将一个分区与一个目录关联起来
mount 设备名称 挂载目录例如:mount /dev/sdb1 /newdisk(必须先创建/newdisk目录)
- 卸载:
umount 设备名称 或者 挂载目录例如:umount /dev/sdb1 或者 umount /newdisk
- 注意:用命令行挂载重启后会失效
3.2.5虚拟机增加硬盘步骤4
- 永久挂载:通过修改/etc/fstab(filesystem table)实现自动挂载


- 添加完成后 执行 mount -a 即刻生效(或者执行reboot也会自动生效)

- 最后两个数字的含义:

(3)磁盘情况查询
3.3.1查询系统整体磁盘使用情况
- 基本语法:df是disk free的缩写
df -h #以人类可读的格式显示df -T #显示文件系统类型 - 应用实例:


3.3.2 查看指定目录的磁盘占用情况
- 基本语法:du是disk usage的缩写

- 选项说明:
- -h:

- -s:


- -h:
- 查询指定目录的磁盘占用情况,不指定则默认查询当前目录
- 应用实例:查询/opt目录的磁盘占用情况,深度为1


(4)磁盘情况—工作使用指令
- 关于wc命令:

- 统计/opt文件夹下的文件的个数
ls -l /opt|grep "^-"|wc -l - 统计/opt文件夹下的目录的个数
ls -l /opt|grep "^d"|wc -l - 统计/opt文件夹下的文件的个数,包括子文件夹里的
ls -lR /opt|grep "^-"|wc -l - 统计/opt文件夹下目录的个数,包括子文件夹里的
ls -lR /opt|grep "^d"|wc -l


-
以树状显示目录结构:tree 目录(注意:如果没有tree指令,则使用yum install tree,前提网络是畅通的)

相关文章:
Linux 实操篇 组管理和权限管理、定时任务调度、Linux磁盘分区和挂载
一、组管理和权限管理 (1)Linux组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外 在linux中每个文件有所有者、所在组、其他组的概念 (2)文件/目录 所有者 一般为文件的创建者,谁创建了该…...
应用案例 | uaGate SI助力汽车零部件工厂将生产数据传输到MES
一、背景和挑战 (图1 汽车零部件工厂生产车间) 随着汽车工业的不断发展,新能源汽车市场的竞争日益激烈,这对汽车零部件供应商提出了更高的要求,包括提升产品精度、增强可靠性、节能环保以及控制成本等多个方面。某国际…...
Android JNI的理解与使用。
写在前面:Java相对于C/C来说是更高级的语言,隐藏了指针,可读性更高,更容易学习,但是无法直接操作硬件、运行速度较慢也是不可回避的硬伤。JNI就是Java官方定义的一套标准“接口”,用于Java和C/C之间互相调用…...
fpga助教面试题
第一题 module sfp_pwm( input wire clk, //clk is 200M input wire rst_n, input wire clk_10M_i, input wire PPS_i, output reg pwm ) reg [6:0] cunt ;always (posedge clk ) beginif(!rst_n)cunt<0;else if(cunt19) //200M是10M的20倍cunt<0;elsecunt<cunt1;…...
Git命令详解与工作流介绍:全面掌握版本控制系统的操作指南
Git Git是一个版本控制系统(也称为源代码控制系统),允许程序员和其他处理文本文件的人在独立工作时协调更改。Git还支持二进制资产,如图片,但这些格式不支持逐行版本管理,这使得版本控制真正强大。 Git概…...
提升信息检索准确性和效率的搜索技巧
一、基础技巧 精准关键词 避免长句子,提取核心关键词(如用“光合作用 步骤”代替“请告诉我光合作用的具体过程”)。 同义词替换:尝试不同表达(如“AI 发展史” vs “人工智能 历史”)。 排除干扰词 使用…...
Qt 中使用 ffmpeg 获取采集卡数据录制视频
作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 之前做了一个功能,从采集卡获取数据然后录制成视频,结果发现录制的视频内存占用非常大,1分钟的…...
Python爬虫TLS
TLS指纹校验原理和绕过 浏览器可以正常访问,但是用requests发送请求失败。 后端是如何监测得呢?为什么浏览器可以返回结果,而requests模块不行呢? https://cn.investing.com/equities/amazon-com-inc-historical-data 1.指纹校…...
【Linux AnolisOS】配置Linux固定ip地址。然后在Windows上连接使用linux中docker容器里的redis和nacos。
1.关于将虚拟机ip地址更改为静态地址 ,跟着下面这个视频搞的,不想看文章的可以看视频。 第四章-07-配置Linux固定IP地址哔哩哔哩bilibili 当用的centos9 视频里让我们打开网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 但是我打开时…...
IDEA中查询Maven项目的依赖树
在Maven项目中,查看项目的依赖树是一个常见的需求,特别是当你需要了解项目中直接或间接依赖了哪些库及其版本时。你可以通过命令行使用Maven的dependency:tree插件来做到这一点。这个命令会列出项目中所有依赖的树状结构。 打开idea项目的终端ÿ…...
【Ubuntu】GPU显存被占用,但显示没有使用GPU的进程
文章目录 一、问题描述二、解决方案2.1 寻找问题进程2.2 尝试杀死相关进程2.3 投放核弹,一键全杀2.4 再次查看GPU使用情况 参考资料 一、问题描述 今天使用服务器的时候发现gpu被占了很多内存,但是使用 nvidia-smi 命令并没有发现占这么多显存的进程&am…...
【并发编程】Java并发编程核心包
1、简介 java.util.concurrent 是 Java 并发编程的核心包,提供了丰富的工具和框架来支持多线程编程、并发任务执行、线程安全集合、同步机制等。 2、线程池Thread Pool 线程池是并发编程中最重要的工具之一,用于管理和复用线程,避免频繁创…...
Unity 淡入淡出
淡入(Fade in):类似打开幕布 淡出(Fade out):类似关上幕布 方案一 使用Dotween(推荐) using DG.Tweening; using UnityEngine; using UnityEngine.UI;public class Test : MonoB…...
完整的 LoRA 模型训练步骤:如何使用 Kohya_ss 进行 LoRA 训练
完整的 LoRA 模型训练步骤:如何使用 Kohya_ss 进行 LoRA 训练 一、环境配置1. 安装 Python 和虚拟环境2. 克隆 Kohya_ss 仓库3. 安装依赖4. 启动 GUI lora训练1. 准备数据 图片处理打标签2. 配置 LoRA 训练2.2 配置图片文件夹和输出目录 训练解决方法: 使…...
视觉分析之边缘检测算法
9.1 Roberts算子 Roberts算子又称为交叉微分算法,是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条。 常用来处理具有陡峭的低噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更理想。 其缺点是对边缘的定位…...
git输错用户名或者密码
git push时候跳出window弹窗,输入用户名和密码,如果错误,会有如下情况: $ git push -u origin “master” remote: [session-6c466aa6] rain: Incorrect username or password (access token) fatal: Authentication failed for ‘…...
【Unity Shader编程】之图元装配与光栅化
执行方式:自动完成 图元装配自动化流程 顶点坐标存入装配区 → 按绘制模式连接顶点 → 生成完整几何图元 示例:gl.drawArrays(gl.TRIANGLES, 0, 3)自动生成三角形 会自动自动裁剪超出屏幕范围(NDC空间外)的三角形,仅保…...
以ChatGPT为例解析大模型背后的技术
目录 1、大模型分类 2、为什么自然语言处理可计算? 2.1、One-hot分类编码(传统词表示方法) 2.2、词向量 3、Transformer架构 3.1、何为注意力机制? 3.2、注意力机制在 Transformer 模型中有何意义? 3.3、位置编…...
网页版的俄罗斯方块
1、新建一个txt文件 2、打开后将代码复制进去保存 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>俄…...
Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境
Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境 Dockerfile 是一个文本文件, 包含了构建 Docker 镜像的所有指令。 Dockerfile 是一个用来构建镜像的文本文件, 文本内容包含了一条条构建镜像所需的指令和说明。 通过定义一系列命令和参数, Dockerfile 指导 Docker 构…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
