【Linux】权限

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:题目大解析3

在这里插入图片描述


目录

  • 👉🏻shell命令解释器
  • 👉🏻Linux用户权限
    • 如何创建新用户?
    • 如何删除用户?
    • 如何切换账号?
    • sudo是什么?
    • sudor名单
  • 👉🏻Linux权限管理
    • 文件访问者分类
    • 所属组是什么?
    • 为什么要有所属组?
    • 文件类型
    • Linux下后缀名的意义
  • 👉🏻文件权限值
    • 文件权限值的表示方法
    • 文件访问权限的相关设置方法
      • 🍡chmod
      • 🍡chown
      • 🍡chgrp
      • 🍡umask
    • file指令
  • 👉🏻目录的权限
    • 粘滞位
  • 👉🏻Linux知识问题

👉🏻shell命令解释器

我们学习Linux,知道它不过就是操作系统,我们称其为kernel核心,但是我们作为用户不能直接访问核心,要借助软件,如Xshell,我们称之为外壳。
我们输入命令,shell翻译命令给操作系统,操作系统再通过外壳反馈。
所以关系可以表示为:👇🏻
在这里插入图片描述
在Linux中,Shell是一种命令行解释器,它允许用户与操作系统进行交互。Shell提供了一个命令行界面,用户可以在其中输入命令并执行它们。

🌊Shell的存在有以下几个原因

  1. 提供了一种与操作系统进行交互的方式,使用户能够执行各种操作,如运行程序、管理文件和目录等。
  2. Shell可以执行脚本,这些脚本可以自动化执行一系列命令,从而简化重复性任务的操作。
  3. Shell提供了丰富的命令和功能,使用户能够根据自己的需求进行定制和扩展。
  4. 阻拦非法命令,保护内核

🌊Shell实现的具体进程
Shell实现的具体进程是通过解释和执行用户输入的命令来与操作系统进行交互。当用户在Shell中输入一个命令时,Shell会解析该命令并执行相应的操作。这些操作可以包括运行系统命令、启动其他程序、管理文件和目录、配置系统设置等。

具体来说,当用户在Shell中输入一个命令时,Shell会创建一个子进程来执行该命令。子进程是由Shell通过调用系统调用(如fork()和exec())来创建的。子进程会继承Shell的环境变量和文件描述符,并执行相应的命令。执行完命令后,子进程会将结果返回给Shell,并退出。

Shell本身是一个进程,通常作为用户登录时的默认进程。它可以是不同的Shell程序,如Bash、Zsh、Fish等。这些Shell程序在底层使用不同的实现方式,但它们的目标都是提供一个交互式的命令行界面,使用户能够与操作系统进行交互。

🗣注意

shell只是外壳的统称,外壳程序不止一个,如bash、sh、图形化界面(GUI)等都是外壳程序

👉🏻Linux用户权限

Linux下有两种用户:超级用户(root)普通用户

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su or su - [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su,root(root可以省略),此时系统会提示输入root用户的口令。

如何创建新用户?

🌕法一
在Linux中,可以使用useradd命令来创建新用户。以下是创建新用户的步骤:

  1. 打开终端或命令行界面。
  2. 以root用户身份登录或使用具有sudo权限的用户登录。
  3. 运行以下命令来创建新用户:
    其中,新用户名是你想要创建的新用户的用户名。
   sudo useradd -m 新用户名
  1. 设置新用户的密码:
    系统会提示你输入新用户的密码并进行确认。
   sudo passwd 新用户名
  1. 完成以上步骤后,新用户就会被成功创建。

请注意,上述命令中的sudo用于提升权限,确保你具有足够的权限来创建新用户。

🌕法二
在Linux中,可以使用adduser命令来创建新用户。以下是使用adduser命令创建新用户的步骤:

  1. 打开终端或命令行界面。
  2. 以root用户身份登录或使用具有sudo权限的用户登录。
  3. 运行以下命令来创建新用户:
    其中,新用户名是你想要创建的新用户的用户名。
   sudo adduser 新用户名
  1. 系统会提示你输入新用户的密码以及其他相关信息,如全名、电话号码等。根据提示输入相应的信息。(如果没有提示,可以passwd 用户名自己重新设置密码
  2. 完成以上步骤后,新用户就会被成功创建。
    在这里插入图片描述

如何删除用户?

要删除用户,可以使用userdel命令。以下是删除用户的步骤:

  1. 打开终端或命令行界面。
  2. 以root用户身份登录或使用具有sudo权限的用户登录。
  3. 运行以下命令来删除用户:
    其中,用户名是你要删除的用户的用户名。
   sudo userdel 用户名
  1. 如果你想同时删除用户的主目录和邮箱,可以使用-r选项:
   sudo userdel -r 用户名

这将删除用户的账户信息、主目录和邮箱。

请注意,删除用户是一个敏感操作,请谨慎使用,并确保你了解删除用户可能带来的影响。在执行上述命令时,需要以root用户身份登录或使用具有sudo权限的用户登录。

如何切换账号?

在Linux中,可以使用su命令来切换到其他用户的账号。以下是切换账号的步骤:

  1. 打开终端或命令行界面。
  2. 以当前用户登录或使用具有sudo权限的用户登录。
  3. 运行以下命令来切换到其他用户的账号:
    其中,目标用户名是你要切换到的目标用户的用户名。
   su - 目标用户名
  1. 系统会提示你输入目标用户的密码。输入密码后,你将切换到目标用户的账号。

请注意,上述命令中的-选项表示切换到目标用户的账号时,同时切换到目标用户的环境变量和工作目录。如果不使用-选项,则只切换账号,而不改变环境变量和工作目录。

另外,如果你想切换到root用户的账号,可以直接运行以下命令:

sudo su -

输入当前用户的密码后,你将切换到root用户的账号。请谨慎使用root用户的权限,以免造成意外的损坏或安全问题。

sudo是什么?

sudo是在Linux和Unix系统中用于提升用户权限的命令。它允许普通用户以超级用户(通常是root用户)的权限来执行特定的命令或访问特定的文件。

当你在使用sudo命令时,系统会要求你输入当前用户的密码,以确认你有权限执行该命令。一旦验证通过,你就可以以超级用户的权限来执行该命令。

使用sudo命令的好处是,它可以限制普通用户对系统的访问权限,只有在需要执行特定任务时才提升权限。这有助于提高系统的安全性,因为普通用户不会一直以超级用户的身份运行。

需要注意的是,sudo命令需要在具有sudo权限的用户下执行,或者以root用户身份执行。在执行敏感或危险的操作时,务必谨慎使用sudo命令,以免造成意外的损坏或安全问题。

sudor名单

我们知道了,sudo是可以让普通用户获得root超级管理员的权限。
但是,我们有没有发现,如果sudo就可以轻易获得超级管理员的权限,还要linux的权限限制有何用?
在这里插入图片描述
所以,linux其实设置了一个“白名单”——sudors
只有在这个名单的用户才是被信任的,可以使用sudo指令的。
在这里插入图片描述
在这里插入图片描述

👉🏻Linux权限管理

文件访问者分类

Linux 文件的访问者可以分成三类:

  • 拥有者:文件和文件目录的所有者:u—User
  • 所属组:文件和文件目录的所有者所在的组的用户:g—Group
  • 其它用户:o—Others

Linux上任何一个文件都有它的拥有者,默认情况下,该文件的隶属组就是拥有者本身。

所属组是什么?

在Linux中,每个文件和目录都有一个所有者和一个所属组。所属组是一组用户的集合,这些用户具有对该文件或目录的特定权限。当一个用户创建一个文件或目录时,它会自动继承创建者的所属组

所属组可以用来控制文件和目录的访问权限。通过设置适当的权限和所属组,可以限制对文件和目录的访问,以确保只有授权的用户可以进行操作。

为什么要有所属组?

所属组在Linux中起到了多个重要的作用:

  1. 权限管理:所属组可以用来控制文件和目录的访问权限。通过设置适当的权限和所属组,可以限制对文件和目录的访问,以确保只有授权的用户可以进行操作。这有助于保护敏感数据和系统文件免受未经授权的访问。

  2. 协作和共享:所属组可以用于实现文件和目录的共享和协作。当多个用户属于同一个所属组时,他们可以共享文件并进行协作编辑。这对于团队合作和项目管理非常有用。

  3. 简化权限管理:通过将多个用户分配到相同的所属组,可以简化权限管理。而不是为每个用户单独设置权限,只需为所属组设置适当的权限即可。这样可以减少管理工作量,并确保一致的权限设置。

总之,所属组在Linux中是一种重要的组织和管理用户权限的机制,它提供了安全性、协作性和简化权限管理的好处。

文件类型

我们这里需要知道一句话:Linux中不以后缀名判断文件类型!
那么Linux是怎么判断文件类型呢?
我们在输入命令ll后可以查看当前文件下的文件属性
在这里插入图片描述
这些文件属性的含义是有这些的👇🏻
在这里插入图片描述
所以我们知道了属性第一位才是表达文件的类型。
那么文件类型都有哪些呢?👇🏻
🍧文件类型

  • d:文件夹
  • -:普通文件(源代码,可执行文件exe、库等)
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

Linux下后缀名的意义

既然linux下后缀名无法判断文件类型,那么后缀名的意义有什么呢?
1.增强可读性,后缀名本身并不决定文件的类型,但它可以提供一些有用的信息
2.Linux不判断后缀名,gcc编译器会判断,如果我们在进行gcc 编译文件时,文件后缀不是可执行文件,则会出现报错。

👉🏻文件权限值

文件权限值的表示方法

在Linux中,文件权限通过一个三位数的权限值来表示。每个权限值由三个位组成,分别表示文件所有者、所属组和其他用户的权限。

每个权限位可以有以下三个值之一:

  • r:读权限,表示可以读取文件的内容或查看目录的内容。
  • w:写权限,表示可以修改文件的内容或在目录中创建、删除和重命名文件。
  • x:执行权限,表示可以执行文件(如果是可执行文件)或进入目录。

这些权限位可以通过以下方式进行组合和表示:

  • r:4
  • w:2
  • x:1

通过将这些值相加,可以得到表示权限的三位数值。例如,如果一个文件的所有者具有读、写和执行权限,所属组具有读和执行权限,其他用户只有读权限,那么该文件的权限值将是754。

  • 所有者权限:rwx(读、写、执行)= 4 + 2 + 1 = 7
  • 所属组权限:r-x(读、执行)= 4 + 0 + 1 = 5
  • 其他用户权限:r–(只读)= 4 + 0 + 0 = 4

因此,该文件的权限值为754。

要查看文件或目录的权限值,可以使用ls -l命令,并查看输出中的第一个字段。要更改文件或目录的权限值,可以使用chmod命令,并指定新的权限值。

例如,要将文件example.txt的权限值更改为754,可以运行以下命令:

chmod 754 example.txt

这将把example.txt的权限值更改为754。

文件访问权限的相关设置方法

🍡chmod

chmod 是一个在 Linux 和其他类 Unix 系统中用于更改文件或目录权限的命令。它是 “change mode” 的缩写。

chmod 命令可以通过两种方式来更改文件或目录的权限:符号模式绝对模式。

  1. 符号模式:符号模式使用符号来表示权限的增加或减少。它由以下组件组成:
  • u:表示文件所有者的权限。
  • g:表示所属组的权限。
  • o:表示其他用户的权限。
  • a:表示所有用户的权限(等同于 ugo)。
  • +:表示增加权限。
  • -:表示减少权限。
  • =:表示设置权限为指定值。

例如,要将文件 example.txt 的所有者权限设置为可读写,可以运行以下命令:
这将增加文件所有者的读和写权限。

   chmod u+rw example.txt
  1. 绝对模式:绝对模式使用数字来表示权限。每个权限位都有一个对应的数字值,如下所示:
  • r:读权限,对应数字值为 4。
  • w:写权限,对应数字值为 2。
  • x:执行权限,对应数字值为 1。

如上这些数字都是10进制表示,实际上它们是根据二进制转换过来的。
比如:

  • r - - 就是100:对应数字4
  • -w- 就是 010:对应数字2
  • – x 就是 001:对应数字1

将这些数字值相加,可以得到表示权限的三位数值。例如,要将文件 example.txt 的权限设置为 rwx r-x —,实际就是111,101,000,分别就是7、5、0可以运行以下命令:

   chmod 750 example.txt

这将设置文件的所有者具有读、写和执行权限,所属组具有读和执行权限,其他用户没有任何权限。

要查看文件或目录的权限,可以使用 ls -l 命令,并查看输出中的第一个字段。

请注意,只有文件的所有者或超级用户(root)才能使用 chmod 命令更改文件或目录的权限。
所以,root真的可以为所欲为啊。
在这里插入图片描述

🍡chown

chown 是 Linux 系统中的一个命令,用于更改文件或目录的所有者。它的基本语法如下:

chown [选项] 用户名 文件名

其中,用户名 是要将文件或目录的所有权更改为的用户的用户名,文件名 是要更改所有权的文件或目录的名称。

例如,要将文件 example.txt 的所有权更改为用户 user1,可以使用以下命令:

chown user1 example.txt

此命令将更改 example.txt 的所有者为 user1。

chown 命令还可以使用一些选项来进行更高级的操作,例如递归更改目录及其子目录的所有权,或者更改文件的所属组等。可以通过 man chown 命令查看完整的命令文档以获取更多信息。
chown 命令有一些常用的选项,可以用于执行不同的操作。以下是一些常用的选项

  • -R:递归地更改目录及其子目录中的所有文件的所有权。
  • -v:显示详细的输出,包括每个文件的更改情况。
  • -c:仅显示更改了所有权的文件,不显示其他信息。
  • -f:在没有错误时,不显示错误消息。
  • -h:如果文件是符号链接,则更改符号链接本身的所有权,而不是链接的目标文件。
  • -L:对于符号链接,始终跟踪链接的目标文件并更改其所有权。
  • -P:对于符号链接,不跟踪链接的目标文件,而是直接更改链接本身的所有权。

请注意,执行 chown 命令需要具有足够的权限。通常,只有超级用户(root)或文件的所有者才能更改文件的所有权。

🍡chgrp

chgrp 是 Linux 中的一个命令,用于更改文件或目录的所属组。它允许您将文件或目录的所属组更改为其他已存在的组。

要使用 chgrp 命令,您需要指定要更改所属组的文件或目录的路径,以及要更改为的新组的名称。例如,要将文件 file.txt 的所属组更改为 group1,可以运行以下命令:

chgrp group1 file.txt

chgrp 命令有一些常用的选项,可以根据需要进行使用。以下是一些常见的选项:

  • -R:递归地更改指定目录及其子目录中的文件或目录的所属组。
  • -v:显示详细的输出,包括每个文件或目录的更改结果。
  • -f:强制执行更改,即使发生错误或警告。
  • –reference=file:将指定文件的所属组应用于其他文件或目录。
  • –dereference:对符号链接进行操作,而不是链接指向的文件或目录本身。

🍡umask

umask 是一个用于设置文件目录的默认权限的 Linux 命令。它用于控制新创建的文件和目录的权限位掩码

权限位掩码是一个八进制数,用于表示文件和目录的权限。它由三个数字组成,分别表示所有者、所属组和其他用户的权限。

umask 命令的语法如下:

umask [mode]

其中,mode 是一个八进制数,用于设置权限位掩码。它指定了要从默认权限中屏蔽的权限位。例如,如果 mode 设置为 022,则默认权限中的写权限将被屏蔽。

umask 命令的常见用法是在用户的 shell 配置文件(如 .bashrc 或 .profile)中设置默认的权限位掩码,以便在创建新文件和目录时自动应用。

新建文件夹默认权限=0666
新建目录默认权限=0777

🗣请注意,umask 命令不会影响已经存在的文件和目录的权限,它只会影响新创建的文件和目录的默认权限
🌟权限掩码

权限掩码的每个数字代表一组权限位。每个权限位都对应一个二进制位,其中 1 表示允许该权限,0 表示禁用该权限。通过将权限掩码与默认权限进行按位与操作,可以屏蔽或禁用相应的权限位。

凡是权限掩码中出现的权限,在起始权限中都要去除
在这里插入图片描述

file指令

file指令是Linux系统中的一个命令,用于确定文件的类型
它通过检查文件的内容和特征来确定文件的类型,并将其分类为文本文件、二进制文件、脚本文件等。

file命令可以帮助用户快速了解文件的属性,例如文件的编码格式、是否为可执行文件等。要使用file命令,
只需在终端中输入file命令,后跟要检查的文件的路径。例如:

file /path/to/file

file命令将输出文件的类型信息,例如:

/path/to/file: ASCII text

这表示该文件是一个ASCII文本文件。file命令对于识别未知文件类型或验证文件类型非常有用。
在这里插入图片描述

file命令有一些常用的选项,可以帮助用户获取更详细的文件信息。以下是一些常用选项的说明:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -b:以短格式输出文件类型信息。
  • -i:以MIME类型的格式输出文件类型信息。
  • -z:对压缩文件进行解压缩并输出其中的文件类型信息。
  • -L:对符号链接进行解引用,输出链接指向的文件类型信息。
  • -f <文件>:从指定的文件中读取要检查的文件列表,并输出每个文件的类型信息。
  • -s:递归地检查目录下的所有文件,并输出文件类型信息。
  • -k:在输出中包含文件的扩展属性信息。
  • -N <魔术字节>:指定自定义的魔术字节,用于检查文件类型。

这些选项可以根据需要进行组合使用,以获取更准确和详细的文件类型信息。例如,使用-i选项可以输出文件的MIME类型,使用-s选项可以递归地检查目录下的所有文件。

👉🏻目录的权限

  • 可执行权限: 如果目录没有可执行权限x, 则无法cd到目录中
  • 可读权限: 如果目录没有可读权限r, 则无法用ls等命令查看目录中的文件内容.
  • 可写权限: 如果目录没有可写权限w, 则无法在目录中创建文件, ✨也无法在目录中删除文件

所以,✨一个文件的删除和自己本身权限无关:跟目录和other的权限有关

那么问题来了,如果我设置了一个文件不可读不可写不可执行,但是如果该文件的目录的权限是可写的,那么别人虽然不能读不能写不能执行,但是他可以直接玉石俱焚,把文件给删了!
在这里插入图片描述
所以linux在这方面的处理有:
比如我们新建一个目录它的起始权限是777,但是默认的权限掩码是002,
它就会自动抹去该目录对other用户的删除权限,防止用户删除。
在这里插入图片描述
而且linux中,不同账户在同一个目录下几乎不可能,因为一开始
在这里插入图片描述
但是万一正好在同一目录,而且目录的写权限是开放的呢?
这时我们引入一个新概念——粘滞位

粘滞位

粘滞位(Sticky Bit)是Linux文件系统中的一种权限设置。当粘滞位被设置在一个目录上时,只有目录的所有者、文件的所有者和超级用户才能删除或重命名该目录中的文件。

粘滞位通常用于公共目录,例如 /tmp 目录。通过设置粘滞位,可以确保其他用户无法删除其他用户创建的文件,即使他们具有写入权限。

设置粘滞位,可以使用 chmod 命令,并在权限设置中添加一个加号(+)和粘滞位标志(t)。例如,要将粘滞位设置在 /tmp 目录上,可以运行以下命令:

chmod +t /tmp

移除粘滞位,可以使用 chmod 命令,并在权限设置中添加一个减号(-)和粘滞位标志(t)。例如,要移除 /tmp 目录上的粘滞位,可以运行以下命令:

chmod -t /tmp

因此,只有目录的所有者、文件的所有者和超级用户才能设置或移除粘滞位

👉🏻Linux知识问题

🚗一、linux 2.6.* 内核默认支持的文件系统有哪些?
答:

  1. ext2:第二扩展文件系统,是Linux最早使用的文件系统之一。

  2. ext3:第三扩展文件系统,是ext2文件系统的升级版本,支持日志功能以提高文件系统的稳定性和恢复能力。

  3. ext4:第四扩展文件系统,是ext3文件系统的进一步改进,提供更高的性能和更大的文件系统容量。

  4. XFS:高性能文件系统,具有快速的文件系统检查和修复功能,适用于大型文件系统和高负载环境。

  5. JFS:日志文件系统,具有快速的文件系统检查和修复功能,适用于大型文件系统和高负载环境。

  6. ReiserFS:具有快速文件查找和高性能的日志文件系统。

  7. Btrfs:B-tree文件系统,具有快速的文件系统检查和修复功能,支持快照、压缩和数据校验等高级功能。

  8. NFS:网络文件系统,用于在网络上共享文件系统。

这些是Linux 2.6. 内核默认支持的一些常见文件系统。请注意,具体支持的文件系统可能会因Linux发行版和内核配置的不同而有所差异。

🚗二、 linux查看cpu占用的命令是什么?
答:

  1. top命令:top命令可以实时显示系统的整体性能情况,包括CPU占用率。在终端中输入top命令后,会显示一个动态更新的进程列表,其中包含了CPU占用率的信息。按下键盘上的q键可以退出top命令。

  2. htop命令:htop是top命令的一个增强版本,提供了更多的交互式功能和更友好的界面。可以使用包管理器安装htop,然后在终端中输入htop命令来查看CPU占用率。

  3. mpstat命令:mpstat命令用于显示多核CPU的性能统计信息,包括每个CPU核心的占用率。在终端中输入mpstat命令后,会显示每个CPU核心的平均占用率以及其他相关信息。

  4. sar命令:sar命令用于系统性能监控和报告,可以包括CPU占用率在内的各种性能指标。在终端中输入sar命令后,可以使用不同的选项来获取特定的性能指标,例如sar -u可以显示CPU的使用情况。

🚗三、 在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?
在Linux系统中,可以使用grep命令来查找文件中包含以字母"a"为行开头的内容。以下是使用grep命令的示例:

grep -E ^a try_grep

解释:

  • grep:用于在文件中搜索匹配指定模式的文本。
  • ^a:表示以字母"a"为行开头的模式。 ^是正则表达式中的元字符,表示行的开头。
  • try_grep:要搜索的文件名。
  • -E:使用-E选项后,grep将会将模式解释为扩展的正则表达式语法,而不是默认的基本正则表达式语法

执行上述命令后,grep将会在try_grep文件中查找以字母"a"为行开头的内容,并将匹配的行显示在终端中。

什么是正则表达式? 🤔
正则表达式(Regular Expression)是一种用于描述字符串模式的工具。它是由字符和特殊字符组成的序列,用于匹配、查找和操作文本中符合特定模式的字符串。

正则表达式提供了一种灵活且强大的方式来进行字符串匹配和搜索。它可以用于各种编程语言和文本处理工具中,如Python、JavaScript、grep等。

正则表达式由普通字符和特殊字符组成。普通字符表示它们自身,而特殊字符具有特殊的含义和功能。例如,a是一个普通字符,表示匹配字符"a"本身,而^是一个特殊字符,表示匹配行的开头。

使用正则表达式,可以进行以下操作:

  • 匹配:确定一个字符串是否与给定的模式匹配。
  • 搜索:在文本中查找符合特定模式的字符串。
  • 替换:将匹配的字符串替换为指定的内容。
  • 分割:根据匹配的模式将字符串分割成多个部分

🚗四、在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是
在使用mkdir命令创建新的目录时,如果要同时创建父目录(即父目录不存在),可以使用-p选项。该选项会自动创建所需的父目录。

例如,要创建一个名为/path/to/new/directory的目录,如果/path/to目录不存在,可以使用以下命令:

mkdir -p /path/to/new/directory

使用-p选项后,mkdir命令会自动创建/path/to目录(如果不存在),然后再创建/path/to/new目录。

🚗五、批量删除当前目录下后缀名为.c的文件。如a.c、b.c。

  • rm *.c: * 通配符,表示匹配任意字符任意次

  • find . -name " * .c" -maxdepth 1 | xargs rm:
    找到当前目录下.*结尾的文件,目录深度为1

    xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,用于很多不支持|管道来传递参数的命令
    相当于将前边命令的执行结果,也就是查找到的文件名,传递给后边的rm指令进行删除


如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】【Stream流】分页

在Java开发中&#xff0c;使用Java自带Stream流的API来进行开发是一种常见的做法。 下面是一个简单的例子&#xff1a; 假设我们有一个包含100个数据项的列表。我们需要按照每页10个数据进行分页&#xff0c;并返回指定页码的数据。可以使用Java 8中的流来实现分页&#xff1…

使用 AutoGPTQ 和 transformers 让大语言模型更轻量化

大语言模型在理解和生成人类水平的文字方面所展现出的非凡能力&#xff0c;正在许多领域带来应用上的革新。然而&#xff0c;在消费级硬件上训练和部署大语言模型的需求也变得越来越难以满足。 &#x1f917; Hugging Face 的核心使命是 让优秀的机器学习普惠化 &#xff0c;而…

Mysql45讲学习笔记

前言&#xff1a;这篇文章主要总结事务&#xff0c;锁、索引的一些知识点&#xff0c;然后分享一下自己学习小心得&#xff0c;我会从点到线在到面展开说说&#xff0c;对于学习任何知识&#xff0c;我们都应该藐其全貌&#xff0c;不要一开始就选入细节 基础 一、基础架构&a…

基于ssm+vue德云社票务系统源码和论文

基于ssmvue德云社票务系统源码和论文063 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 1.选题的依据和意义 互联网时代&#xff0c;随着生活节奏的加快和不断上升的压力&#xff0c;人们急需寻找到情绪的宣泄…

docker第二次作业

1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 拉取镜像 docker pull mysql:5.6 docker pull ow ncloud 运行镜像生成容器 [rootharbor ~]# docker run -d --name mydb1 --env MYSQL_ROOT_PASSWORD123456 mysql:5.6 [rootharbor ~]# docker run -d --name…

Axure RP软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Axure RP是Axure公司开发的一款原型设计工具&#xff0c;广泛应用于产品设计和UI/UX设计领域。以下是Axure RP软件的主要特点和功能&#xff1a; 原型设计&#xff1a;Axure RP提供了丰富的界面元素和交互元素&#xff0c;用户…

THINKPHP 微联云投票系统源码独立版 + 支持刷礼物

THINKPHP 微联云投票系统源码独立版 支持刷礼物 nginxphp7.2以上 mysql5.6以上 简单测试后台基本没什么问题&#xff0c;暂时发现H5前端有bug,自行修复。

VS2022 C++修改Window系统DNS源代码V2.0

这是自己使用VS2022 C++编写开发的Window系统下修改DNS脚本程序第2个版本,适合Win10系统和Win7系统。cfg.txt文件存放要修改的DNS,最多4个。 详细源代码如下: setdns.cpp /* 1.全部清空DNSstring strParameter;strParameter = "netsh interface ip delete dns name=\…

苹果新健康专利:利用 iPhone、Apple Watch 来分析佩戴者的呼吸情况

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果获得了一项健康相关的技术专利&#xff0c;可以利用 iPhone、Apple Watch 来分析佩戴者的呼吸系统。 苹果在专利中概述了一种测量用户呼吸功能的系统&#xff0c;通过 iPhone 上的光学感测单元&am…

Linux Shell 搜索命令 grep

grep 是一个强大的文本搜索工具&#xff0c;用于在文件或标准输入中查找匹配指定模式的行。 它的基本语法是&#xff1a; grep [options] pattern [file...]其中&#xff0c;pattern 是要搜索的模式&#xff0c;可以是普通字符串或使用正则表达式表示的模式。file 是要被搜索…

6. 使用python将多个Excel文件合并到同一个excel-附代码解析

【目录】 文章目录 6. 使用python将多个Excel文件合并到同一个excel-附代码解析1. 目标任务2. 结果展示3. 代码示例4. 代码解析4.1 导入库4.2 调用库的类、函数、变量语法4.3 os.listdir-返回目录中的文件名列表4.4 startswith-用于判断一个字符串是否以指定的前缀开头4.5 ends…

Class ‘com.xxxx.Log‘ was compiled with an incompatible version of Kotlin.

Class com.xxxx.Log was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1. 原因&#xff1a;在build.gradle中使用了1.5.30版本的kotlin插件&#xff0c;与第三方库中的kotlin插件版本不同&#…

如何在Ubuntu 18.04上安装PHP 7.4并搭建本地开发环境

引言 PHP是一种流行的服务器脚本语言&#xff0c;用于创建动态和交互式web页面。开始使用你选择的语言是学习编程的第一步。 本教程将指导您在Ubuntu上安装PHP 7.4&#xff0c;并通过命令行设置本地编程环境。您还将安装依赖管理器Composer&#xff0c;并通过运行脚本来测试您…

React 使用 useRef() 获取循环中所有子组件实例

目录 背景思考实现完整代码&#xff1a;成功运行后的界面如下&#xff1a; 知识点总结uesRef() 作对象处理useImperativeHandle() 父组件操作引入子组件的内部方法最后 背景 之前项目中使用了antd pro 中的 可编辑表格 (EditableProTable)&#xff0c;在页面中表格要经过多层遍…

vue实现表格的动态高度

需求:表格能够根据窗口的大小自动适配页面高度 防抖和节流函数的使用场景是当需要对频繁触发的事件进行限制时,例如: 防抖函数常用于限制用户在短时间内多次触发某一事件,例如搜索框输入并搜索,当用户一直在输入时,我们可以使用防抖函数来避免多次请求搜索结果,减轻服…

Http与Https

1.简单介绍 HTTP&#xff1a;最广泛应用的网络通信协议&#xff0c;基于TCP&#xff0c;数据传输简单高效&#xff0c;数据是明文。 HTTPS&#xff1a;是HTTP的加强版&#xff0c;是HTTPSSL。在HTTP的基础上加了安全机制&#xff0c;一方面保证数据的安全传输&#xff0c;另一…

【UniApp开发小程序】私聊功能后端实现 (买家、卖家 沟通商品信息)【后端基于若依管理系统开发】

声明 本文提炼于个人练手项目&#xff0c;其中的实现逻辑不一定标准&#xff0c;实现思路没有参考权威的文档和教程&#xff0c;仅为个人思考得出&#xff0c;因此可能存在较多本人未考虑到的情况和漏洞&#xff0c;因此仅供参考&#xff0c;如果大家觉得有问题&#xff0c;恳…

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页 文章目录 一、前言二、安装和基本使用1. 添加依赖2. 基础配置和初始化 三、实际业务中的用法1. 与 API 集成2. 错误处理 四、完整示例1. 创建一个无限滚动列表2. 使用在你的应用中3. 完整代码示例 五、总…

VSCode如何为远程安装预设(固定)扩展

背景 在使用VSCode进行远程开发时&#xff08;python开发之远程开发工具选择_CodingInCV的博客-CSDN博客&#xff09;&#xff0c;特别是远程的机器经常变化时&#xff08;如机器来源于动态分配&#xff09;&#xff0c;每次连接新的远程时&#xff0c;都不得不手动安装一些开…

Unity - MenuItem特性

MenuItem(string itemName, bool isValidateFunction, int priority) 参数1&#xff1a;菜单名 参数2&#xff1a;是否使用自定义条件控制菜单项是否可点击&#xff0c;默认为false&#xff0c;一般不赋值&#xff0c;需要用的话需要定义两个MenuItem MenuItem 1 : 自定义条件…