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 构…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...