当前位置: 首页 > news >正文

从0开始学习Linux——文件管理

  往期目录:

从0开始学习Linux——简介&安装

从0开始学习Linux——搭建属于自己的Linux虚拟机

从0开始学习Linux——文本编辑器

从0开始学习Linux——Yum工具

从0开始学习Linux——远程连接工具

从0开始学习Linux——文件目录

从0开始学习Linux——网络配置

从0开始学习Linux——防火墙配置

从0开始学习Linux——系统服务管理

从0开始学习Linxu——系统常用命令

从0开始学习Linux——进程管理

从0开始学习Linux——用户管理

 上期教程我们学习了用户管理,这节教程我们学习文件管理。

 文件操作是日常系统管理和使用的核心内容。掌握文件操作不仅能有效地管理系统中的数据,还能帮助我们提升对 Linux 系统的理解和运用。

一、文件目录常见操作

1.1 查看目录

在 Linux 中,可以使用ls命令查看文件和目录的内容:

  • ls:列出当前目录的文件和目录。
  • ls -l:以长格式显示文件详细信息(包括权限、大小、修改时间等)。
  • ls -a:列出所有文件,包括隐藏文件(以.开头的文件)。
  • ls -lh:以易读的方式显示文件大小(如 KB、MB)。

 上述运行结果中ls -lh和ls -l命令的显示结果都为:

-rw-r--r--. 1 root root  21 11月  6 11:18 aaaa.txt
-rw-r--r--. 1 root root  16 11月  4 11:38 student1.txt
-rw-r--r--. 1 root root 258 11月  4 11:31 student.txt
-rw-r--r--. 1 root root 367 11月  4 10:13 user.txt

上述结果的解释为:

第一部分:文件权限

第一个字符 (-) 表示文件类型。如果是目录,则是d,如果是普通文件则是-,符号链接是l等。

接下来的三个字符表示文件所有者权限:

  • r 代表可读权限。
  • w 代表可写权限。
  • - 代表没有执行权限。

这里表示root用户对于该文件只有读写权限但是没有执行权限。

紧接着的三个字符表示用户组权限:

  • r 代表可读权限。
  • -- 表示没有写权限和执行权限。

这里表示root用户组对于该文件只有读的权限,没有执行和写的权限。

接下来的三个字符表示其他用户的权限:

  • r 代表可读权限。
  • -- 表示没有写权限和执行权限。

这里表示除了roo以外的其他用户对于该文件只有读取的权限。

三个权限后面有一个字符“.”,该字符表示文件是否有 SELinux 上下文。如果有 SELinux 启用,点表示文件有额外的安全标签信息。

第二部分:硬连接数

这里的取值是1。

硬链接数表示指向这个文件的链接数量。在大多数情况下,普通文件的硬链接数为1。对于目录来说,硬链接数通常是2,其中包括指向该目录本身的链接和指向其父目录的链接。

第三部分:文件所有者

这部分用于指明该文件的所有者以及用户组。

这里表示该文件属于root用户,用户组为root。 

第四部分:文件大小

该部分用于表示文件的大小,单位是字节。

例如这里的21表示aaaa.txt的大小是21字节。

第五部分:文件修改时间

该部分用于表示该文件的最后一次修改时间。

例如这里的11月  6 11:18表示11月6号11点18分。

第六部分:文件名称

最后一部分就不必多说就是指文件的名称。

补充:ll命令在Linux中ll是ls -l命令的一个简写形式。

1.2 创建文件/目录

1.2.1 mkdir命令

mkdir是“make directory”的缩写,用于创建新的目录(文件夹)。

mkdir [选项] 目录名称

mkdir常见选项如下所示:

  • -p:创建父目录。如果指定的路径中有不存在的父目录,mkdir -p 会自动创建它们。这个选项非常有用,因为它避免了手动创建每个父目录。
  • -v:显示创建目录的详细信息。mkdir -v会在终端上显示每个被创建的目录的名称。
  • -m:设置目录的权限。在创建目录时,可以使用-m选项来设置目录的权限,通常是以chmod的形式指定权限值。

 1.2.2 touch命令

touch命令的主要作用是创建空文件,或者修改文件的时间戳(访问时间和修改时间)。

touch [选项] 文件名

该命令的常见选项如下所示:

  • -c:如果文件不存在,则不会创建文件,仅仅会修改已有文件的时间戳,也就是说若文件不存在则直接返回。
  • -t:设置文件的时间戳。使用-t可以手动指定文件的修改时间和访问时间,时间格式为[[CC]YY]MMDDhhmm[.ss]。
  • -a:只修改访问时间(Access Time),不修改修改时间(Modify Time),且不会更改文件内容。
  • -m:只修改修改时间(Modify Time),不修改访问时间。

 1.3 删除文件和目录

rm(remove)是一个常用的命令,用于删除文件和目录。它的基本作用是移除指定的文件或目录,但需要注意的是,rm删除的文件或目录通常无法通过常规方式恢复,除非使用一些数据恢复工具或特殊的备份措施。

rm 选项 文件名

 上述命令执行后九江aaaa.txt文件给删除了。

当然我们也可以一次性删除多个文件。

rm常见选项如下所示:

  •  -i:交互式删除,使用该选项时,系统会在删除每个文件之前要求确认,确保不会误删除重要文件。对于批量删除操作尤为有用。
  • -f:选项会强制删除文件,即使文件具有只读属性,也会被删除。并且不会显示错误信息。如果文件不存在,也不会报错。
  • -r或-R:当要删除目录时可以使用 -r或 -r 选项,它会递归删除目录中的所有内容,包括子目录和文件。
  • -rf:结合 -f 和-r选项,-rf允许你强制删除目录及其所有内容(包括只读文件和子目录),而不会要求确认。这个命令非常危险,应谨慎使用,因为它会直接删除所有数据,且无法恢复。
  • -v:使用 -v(verbose)选项时,rm 会在删除每个文件时显示详细的操作信息。
  • -d:该选项可以用来删除空目录。如果目录中有文件或子目录,删除操作将会失败。

rm命令还可以用于删除符号链接。

rm 符号链接名称

对于文件的删除我们还可以使用unlink命令,它和rm的区别如下所示:

  • rm命令用于删除文件、目录或符号链接,并且支持递归删除。
  • unlink是一个更简单的命令,仅用于删除单个文件,无法删除目录。它相当于rm的一个简化版本

对于rm命令我们要小心,rm命令删除的文件默认不会进入回收站,也不会经过任何确认,因此一旦文件被删除,通常无法恢复,除非有备份或者使用一些恢复工具。为了避免误删除文件,建议在重要的操作上使用-i选项进行确认,或者事先备份重要数据。

1.4 移动&重命名文件

mv命令用于移动文件或重命名文件。mv是Linux 系统中常用的命令之一,属于文件操作类命令。

mv [选项] 源文件 目标文件/目录

命令中的源文件是指要移动或重命名的文件或目录,目标文件/目录是指目标位置,如果目标是文件名,则表示重命名文件;如果目标是目录,则表示将源文件移动到该目录下。

mv命令常见选项如下所示:

  • -f或--force:强制移动,不会提示确认。即使目标文件已存在,mv也会直接覆盖。
  • -i或--interactive:交互式操作。在覆盖已存在的目标文件时,会提示用户确认。
  • -u或--update:仅当源文件比目标文件新,或者目标文件不存在时,才进行移动。
  • -v或--verbose:显示详细操作过程,包括每个移动或重命名的文件。
  • -n或--no-clobber:防止覆盖已有文件。如果目标文件已存在,mv不会进行移动操作。
  • -b或--backup:在移动目标文件时,如果目标文件已经存在,会先备份目标文件(一般备份文件会加上波浪号 ~ 后缀)。

 当然mv命令一次可以操作多个文件,例如将多个文件移动到指定目录。

mv file1.txt file2.txt file3.txt /home/user/documents/

1.5 复制文件和目录

cp命令是一个非常常用的命令,用于复制文件和目录。它是 Linux 和类 Unix 系统中的标准命令之一,广泛应用于文件管理中。

cp 选项 源文件 目标文件
cp 选项 源文件... 目标目录
  • 源文件:要复制的文件或目录。
  • 目标文件:复制后新文件的名称和路径。如果目标是一个目录,那么源文件会被复制到该目录下。
  • 目标目录:复制后的文件将放在这个目录下。

cp命令常见选项如下所示:

  • -a或--archive:归档模式,等效于-dR --preserve=all,复制目录及其中的所有内容,并尽量保留文件的原始属性(如权限、时间戳、符号链接等)。
  • -b或--backup:如果目标文件已经存在,则在目标文件上加上备份(文件名会带有 ~ 后缀)。
  • -f或--force:强制覆盖目标文件,即使目标文件是只读的。
  • -i或--interactive:复制前进行确认。如果目标文件已存在,会要求用户确认是否覆盖。
  • -l或--link:创建硬链接,而不是复制文件。
  • -n或-no-clobber:如果目标文件已存在,不会覆盖它。
  • -p或--preserve:保留文件的属性,如权限、时间戳、符号链接等。
  • -r或--recursive:递归复制目录。适用于复制目录及其内容。
  • -u或--update:只在源文件较新或目标文件不存在时才进行复制。
  • -v或--verbose:显示详细的操作过程,列出每个复制的文件。
  • --remove-destination:在复制时,如果目标文件已存在,先删除目标文件,然后进行复制。

1.6 文件搜索&查找

1.6.1 find命令

find命令是一个非常强大的工具,用于在文件系统中查找文件和目录。它不仅可以按文件名、类型、大小、修改时间等条件进行搜索,还能执行一些动作,比如删除、移动或修改文件。

find 路径 选项 表达式
  • 路径:指定查找的目录路径,可以是一个或多个路径。如果没有指定路径,默认从当前目录 . 开始查找。
  • 选项:控制find命令的行为,比如查找的类型、查找条件等。
  • 表达式:定义查找的条件,如文件名、文件类型、权限等。

按照文件类型查

我们可以使用-type选项用于按照文件类型查找,如下所示:

  • -type f:查找普通文件。
  • -type d:查找目录。
  • -type l:查找符号链接。

 按照文件大小查找

我们可以使用-size选项来按文件的大小进行查找。单位可以是:

  • b:512字节块(默认单位)。
  • c:字节。
  • k:千字节。
  • M:兆字节。
  • G:千兆字节。

假设我们想要查找小于10兆字节的文件。

假设我们想要查找大于10兆字节的文件。

假设我们想要查找刚好为10兆字节的文件。

按照修改时间查找

 我们可以使用-mtime选项按文件修改时间查找,其单位是天:

  • +N:查找修改时间超过N天的文件
  • -N:查找修改时间不超过N天的文件
  • N:查找修改时间刚好为N天的文件

假设我们要查找最近两天内所修改的文件:

按照文件权限查找 

我们可以使用-perm选项按文件权限查找。

假设我们想要查找权限为755的文件。

假设我们想要查找权限为755的文件或者比755权限更为宽松的文件。

 按照文件拥有者查找

  • -user:查找指定用户拥有的文件。
  • -group:查找指定组拥有的文件。

假设我们想要所属用户为root的文件。

 假设我们想要所属用户组为root的文件。

 按照文件名查找

我们可以使用-name选项来按照文件名来查找。

find [路径] -name [文件名]

文件名支持通配符:

  • *:表示0个或多个字符
  • ?:表示一个任意字符
  • []:匹配方括号中任意字符

假设我们想要查找/opt目录下.txt文件。

 查找文件后执行命令

 我们可以使用-exec选项实现查找到某个文件后删除它。

假设我们向查找出/opt目录下的txt文件然后删除。

结合多个条件查询

  • -and:默认逻辑操作符,用来连接多个条件。
  • -or:或操作符。
  • !: 否定操作符。

1.6.2 grep命令

grep命令是 Linux 系统中用于文本搜索的命令。它可以通过正则表达式在文件或输入流中查找指定的字符串,并返回匹配的行。grep是 "global regular expression print" 的缩写,基本的工作方式就是从指定的文本中筛选出符合模式的行。

grep [选项] PATTERN [FILE...]
  • PATTERN: 要匹配的模式(可以是字符串或正则表达式)。
  • FILE: 需要搜索的文件。如果未指定文件,grep 会从标准输入读取。

grep命令常见选项如下所示:

  • -i:该选项可以使得匹配时忽略大小写字母。
  • -v:此选项会显示所有不匹配指定模式的行。
  • -r:此选项使得grep可以递归地搜索目录中的文件。
  • -l:此选项只会列出包含匹配模式的文件名,而不是显示匹配的行。
  • -n:此选项会显示匹配模式所在行的行号。
  • -c:此选项显示匹配模式的行数。
  • -w:此选项确保只匹配完整单词,而不是单词的一部分。
  • -x:此选项仅匹配整行与模式完全一致的情况。
  • -A num:该命令会显示匹配 "pattern" 的行及其之后的 num 行内容。
  • -B num:该命令会显示匹配 "pattern" 的行及其之前的 num 行内容。
  • -C num:该命令会显示匹配 "pattern" 的行以及前后各num行内容。
  • -e PATTERN:此选项可以在同一命令中指定多个模式进行搜索,多个模式之间用-e分隔。
  • -f FILE:该选项允许从一个文件中读取多个模式来进行匹配。
  • --color=auto:此选项会为匹配的文本加上颜色,通常用于增强可读性。

1.7 文件压缩与解压

1.7.1 tar压缩包

tar -cvf 压缩包路径 /文件路径

上述命令用于将指定文件或者文件夹打包成tar压缩包。

tar -xvf tar压缩包路径

上述命令用于解压指定压缩包。

1.7.2 zip压缩包

zip 文件路径

上述命令用于将指定文件或者文件夹打包成zip压缩包。

unzip 文件路径

上述命令用于解压指定压缩包。

1.7.3  gz压缩包

处理gz压缩包可以使用gzip命令和gunzip命令,该命令和zip命令类似。

二、文件权限管理

2.1 简介

对于文件的权限,其实我们在学习文件查看命令的时候已经简单了解过了,ls命令和ll命令查询出来的结果会将文件的属性给展示出来。

如上图所示文件权限是由三部分组成的:读(r)、写(w)、和 执行(x)。这些权限被分配给三类不同的用户:文件的所有者、文件所属组、其他用户。下面详细解释每一部分。

文件权限是针对 所有者(User)、所属组(Group)、和 其他用户(Other)进行配置的:

  • 所有者权限(User Permissions):是指文件的所有者对该文件的权限。
  • 组权限(Group Permissions):是指与文件的所有者属于同一组的用户的权限。
  • 其他用户权限(Other Permissions):是指文件所属组外的其他所有用户的权限。

权限的顺序为:所有者权限 -> 组权限 -> 其他用户权限。

文件权限通过 r、w、x表示,每个字母对应一个不同的操作权限:

  • r(read)—— 读权限:允许查看文件内容或列出目录内容。
  • w(write)—— 写权限:允许修改文件内容或在目录中创建、删除文件。
  • x(execute)—— 执行权限:允许执行文件(对文件为可执行文件时有效),对目录表示可以进入该目录。

权限除了可以用r、w、x等字母表示,也可以使用数字进行表示:

  • r(读权限) = 4
  • w(写权限) = 2
  • x(执行权限) = 1
  • -(没有权限) = 0

假设现在我们要给用户、用户组、其他用户设置权限,那么有如下两种方式:

要求:所属用户具有全部权限,所属用户组的其他用户只有读和执行的权限,其他用户只有读和执行的权限。

  • 方式一:rwxr-xr-x
  • 方式二:755

2.2 chmod命令修改文件权限

2.2.1 数字表示法

chmod 权限数字 文件名

图片中的命令执行以后会给copy.txt文件赋予root用户读写执行权限,给root用户组其他用户读和执行的权限,给其他用户读和执行的权限。

当然我们也可以使用-R参数进行递归给指定的目录的所有文件赋予权限。

2.2.2 符号表示法

符号表示法是通过使用字母来代表不同的权限操作。

chmod [ugoa][+-=][rwx] 文件名称

上述命令中的ugoa参数含义如下所示:

  • u代表 用户(User)(即文件所有者)。
  • g代表 组(Group)。
  • o代表 其他用户(Others)。
  • a代表 所有人(所有用户,包括所有者、组、其他人)

上述命令中的+-=参数含义如下所示:

  • +表示添加权限。
  • -表示删除权限。
  • =表示设置权限为指定值。

添加执行权限给所有用户

chmod a+x filename

删除用户组写的权限 

chmod g-w filename

设置用户为读写权限,而组和其他用户为只读权限

chmod u=rw,go=r filename

 2.3 chown命令

chown(Change Owner)命令用于更改文件或目录的所有者(Owner)和所属用户组(Group)。它是一个非常重要的命令,用于管理文件和目录的所有权,控制哪些用户可以访问和操作它们。

chown [选项] <新所有者>:<新用户组> 文件或目录
  • 新所有者:指定文件或目录的新所有者(通常是用户名)。
  • 新用户组:指定文件或目录的新用户组(通常是组名)。
  • 如果只指定了所有者或用户组,则另一个保持不变。

更改文件所有者

chown -R tom /opt/a2/

上述命令可以完成将/opt/a2下的文件的用户修改为tom。

chown  tom /opt/a2/copy.txt

 上述命令可以完成将/opt/a2/copy.txt文件的用户修改为tom。

更改文件用户组

chown  :mysql_grander /opt/a2/copy.txt

上述命令可以完成将/opt/a2/copy.txt文件的用户组修改为mysql_grander。

 同时更改用户和用户组

chown  tom:mysql_grander /opt/a2/copy.txt

 上述命令可以完成将/opt/a2/copy.txt文件的用户组修改为mysql_grander,用户修改为tom。

只更改目录的所有者或用户组(不影响文件)

chown -d tom /opt/a2/

上述命令可以完成将/opt/a2目录文件所有者修改为tom而不去影响里面的文件。

2.4 chgrp命令

chgrp命令专门用来更改文件或目录的用户组。

chgrp [选项] 组名 文件...

常见选项如下所示:

  • -v, --verbose:显示详细输出,即显示更改的文件以及新的组名。

  • -c, --changes:仅在文件组发生变化时才输出信息。

  • -R, --recursive:递归地更改目录及其子目录和文件的组。

  • --reference=文件:根据指定文件的组来设置文件或目录的组,而不是指定组名。

  • -f, --quiet, --silent:不输出任何消息,即使发生错误也不会显示。

  • -h, --no-dereference:如果是符号链接,chgrp命令不会更改符号链接的组,只会更改符号链接本身的组,而不是它指向的目标文件的组。

注意:只有文件的所有者或者超级用户(root)才能更改文件的组。普通用户无法将文件的组更改为其他用户组。

本节教程就先到这里结束,更多内容将在后续教程中进行讲解。

相关文章:

从0开始学习Linux——文件管理

往期目录&#xff1a; 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 从0开始学习Linux——Yum工具 从0开始学习Linux——远程连接工具 从0开始学习Linux——文件目录 从0开始学习Linux——网络配置 从0开…...

全面介绍软件安全测试分类,安全测试方法、安全防护技术、安全测试流程

一、软件系统设计开发运行安全 1、注重OpenSource组件安全检查和版本更新&#xff08;black duck&#xff09; 现在很多云、云服务器都是由开源的组件去搭成的&#xff0c;对于OpenSource组件应该去做一些安全检查和版本更新&#xff0c;尤其是版本管理&#xff0c;定期对在运…...

Leidenアルゴリズムの詳細解説:Pythonによるネットワーク分割の実装

Leidenアルゴリズムの詳細解説&#xff1a;Pythonによるネットワーク分割の実装 目次1. Leidenアルゴリズムの概要2. Python実装例3. グループ分けの結果分析4. なぜこのような分割になるのか5. Leidenアルゴリズムの仕組み6. 実践的な応用例7. 初心者へのアドバイス8. まとめ …...

安当ASP系统:适合中小企业的轻量级Radius认证服务器

安当ASP&#xff08;Authentication Service Platform&#xff09;身份认证系统是一款功能强大的身份认证服务平台&#xff0c;特别适用于中小企业。其中&#xff0c;简约型Radius认证服务器是安当ASP系统中的一个重要组成部分。以下是对该系统的详细介绍&#xff1a; 一、主要…...

Vue 组件间传值指南:Vue 组件通信的七种方法

前言 Vue 的组件系统非常强大&#xff0c;允许我们将应用程序拆分成独立且可复用的组件。随着前端开发的复杂性增加&#xff0c;组件间的数据传递和状态管理显得尤为重要。本文将详细介绍几种在 Vue 中常用的组件间传值方法&#xff0c;并结合实际代码示例&#xff0c;帮助您更…...

推荐一个超漂亮ui的网页应用设计

https://andi.cn/download/65211.html...

有什么初学算法的书籍推荐?

对于初学算法的读者&#xff0c;以下是一些值得推荐的书籍&#xff1a; 1、算法超简单&#xff1a;趣味游戏带你轻松入门与实践 作者&#xff1a;童晶 著 推荐理由&#xff1a;本书把趣味游戏应用于算法教学&#xff0c;提升读者的学习兴趣&#xff0c;并通过可视化的图解和动…...

自动化工作流建设指南

&#x1f680; 自动化工作流建设指南&#xff1a;CI/CD、Github Actions与自动化测试部署 打造现代化的自动化工作流&#xff0c;提升团队开发效率。今天咱们将深入探讨 CI/CD 最佳实践、Github Actions 实战经验以及自动化测试与部署策略。 &#x1f4d1; 目录 CI/CD 最佳实践…...

[免费]SpringBoot+Vue3校园宿舍管理系统(优质版)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue3校园宿舍管理系统(优质版)&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue3校园宿舍管理系统(优质版) Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术的不断发展&…...

SNK施努卡 - 机器人测温取样系统

机械手测温取样系统 有色行业自动化 机器人&#xff1a;机械手测温取样系统是以工业机器人为平台&#xff0c;技术相对成熟稳定&#xff0c;利用机器人的灵活性&#xff0c;自动往测温取样枪上安装探头&#xff0c;自动将探头伸进高温铜水内进行测温取样&#xff0c;自动拆除废…...

goframe开发一个企业网站 验证码17

Go验证码功能实现详解 目录结构 ├── internal │ ├── controller │ │ └── captcha │ │ └── captcha.go │ ├── logic │ │ └── captcha │ │ └── captcha.go │ └── service │ └── captcha.go1. Serv…...

【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题

目录 1. 单例模式 (1) 饿汉模式 (2) 懒汉模式 1. 单线程版本 2. 多线程版本 2. 解决懒汉模式产生的线程安全问题 (1) 产生线程安全的原因 (2) 解决线程安全问题 1. 通过加锁让读写操作紧密执行 方法一 方法二 2. 处理加锁引入的新问题 问题描述 …...

MySQL电商多级分类表设计方案对比

MySQL电商多级分类表设计方案对比 在电商系统中&#xff0c;多级分类是一个常见的需求&#xff0c;用于组织和管理商品类别&#xff0c;合理的设计可以提高系统的性能和可维护性。本文将详细介绍三种不同的多级分类表设计方案&#xff0c;我们将使用宠物分类作为示例数据&…...

网络安全工程师需要知道哪些IPSec的基本原理?

IPSec是一种端到端的安全协议&#xff0c;为IP数据包提供认证、完整性和加密服务。它通过在IP层实现安全功能&#xff0c;确保数据在传输过程中的机密性、完整性和真实性。IPSec广泛应用于VPN、远程访问和企业内部网络通信等领域&#xff0c;是保护互联网通信安全的重要手段。 …...

leetcode 148. 排序链表 中等

给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,3,4,5]示例 3&#xff1a; …...

动态规划与贪心算法:核心区别与实例分析

动态规划与贪心算法&#xff1a;核心区别与实例分析 动态规划和贪心算法是计算机科学中用于解决优化问题的两种著名方法。它们各自的思路和应用场景有显著的区别&#xff0c;理解这些区别对解决相关问题至关重要。本文将详细探讨这两种算法的最优子结构、解法策略、适用场景&a…...

.NET 公共语言运行时(Common Language Runtime,CLR)

.NET 的公共语言运行时&#xff08;Common Language Runtime&#xff0c;CLR&#xff09;是 .NET Framework 和 .NET Core 的核心组件&#xff0c;负责运行和管理 .NET 程序。CLR 提供了一个高效、安全和稳定的执行环境&#xff0c;支持多种编程语言并处理各种系统级的任务。下…...

SpringBoot使用TraceId日志链路追踪

项目场景&#xff1a; 有时候一个业务调用链场景&#xff0c;很长&#xff0c;调了各种各样的方法&#xff0c;看日志的时候&#xff0c;各个接口的日志穿插&#xff0c;确实让人头大。为了解决这个痛点&#xff0c;就使用了TraceId&#xff0c;根据TraceId关键字进入服务器查询…...

YOLO11 旋转目标检测 | OBB定向检测 | ONNX模型推理 | 旋转NMS

本文分享YOLO11中&#xff0c;从xxx.pt权重文件转为.onnx文件&#xff0c;然后使用.onnx文件&#xff0c;进行旋转目标检测任务的模型推理。 用ONNX模型推理&#xff0c;便于算法到开发板或芯片的部署。 本文提供源代码&#xff0c;支持不同尺寸图片输入、支持旋转NMS过滤重复…...

PCL 点云拟合 拟合空间直线

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 设置RANSAC算法参数 2.1.2拟合直线模型 2.1.3 提取拟合直线内点 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更…...

go语言学习 第7章:数组

第7章&#xff1a;数组 数组是一种基本的数据结构&#xff0c;用于存储相同类型的元素集合。在Go语言中&#xff0c;数组的大小是固定的&#xff0c;一旦定义&#xff0c;其长度不可改变。本章将详细介绍Go语言中数组的定义、初始化、访问、遍历以及一些常见的操作。 一、数组…...

TDengine 开发指南——无模式写入

简介 在物联网应用中&#xff0c;为了实现自动化管理、业务分析和设备监控等多种功能&#xff0c;通常需要采集大量的数据项。然而&#xff0c;由于应用逻辑的版本升级和设备自身的硬件调整等原因&#xff0c;数据采集项可能会频繁发生变化。为了应对这种挑战&#xff0c;TDen…...

机器学习复习3--模型的选择

选择合适的机器学习模型是机器学习项目成功的关键一步。这通常不是一个一蹴而就的过程&#xff0c;而是需要综合考虑多个因素&#xff0c;并进行实验和评估。 1. 理解问题本质 这是模型选择的首要步骤。需要清晰地定义试图解决的问题类型&#xff1a; 监督学习 : 数据集包含…...

51单片机基础部分——矩阵按键检测

前言 上一节&#xff0c;我们说到了独立按键的检测以及使用&#xff0c;但是独立按键每一个按键都要对应一个IO口进行检测&#xff0c;在一些需要多按键的情况下&#xff0c;使用过多的独立按键会过多的占用单片机的IO资源&#xff0c;为了解决这个问题的出现&#xff0c;我们…...

[BIOS]VSCode zx-6000 编译问题

前提&#xff1a;Python 3.6.6及以上版本安装成功&#xff0c;Python 3.6.6路径加到了环境变量# DEVITS工具包准备好 问题&#xff1a;添加环境变量 1&#xff1a;出现环境变量错误&#xff0c;“py -3” is not installed or added to environment variables #先在C:\Windows里…...

【C语言】通用统计数据结构及其更新函数(最值、变化量、总和、平均数、方差等)

【C语言】通用统计数据结构及其更新函数&#xff08;最值、变化量、总和、平均数、方差等&#xff09; 更新以gitee为准&#xff1a; gitee 文章目录 通用统计数据结构更新函数附录&#xff1a;压缩字符串、大小端格式转换压缩字符串浮点数压缩Packed-ASCII字符串 大小端转换什…...

H_Prj06_03 8088单板机串口读取8088ROM复位内存

1.8088CPU复位时&#xff0c;CSFFFFH,IP0000H,因此在ROM的逻辑地址FFFF&#xff1a;0000&#xff08;FFF0H&#xff09;处一般要防止一个长跳转指令LJMP&#xff08;机器码位EAH&#xff09; 2.写一个完整的8086汇编程序&#xff0c;通过查询方式检测串口接收符串‘r’&#x…...

NLP学习路线图(二十七):Transformer编码器/解码器

一、Transformer概览&#xff1a;抛弃循环&#xff0c;拥抱注意力 传统RNN及其变体&#xff08;如LSTM、GRU&#xff09;处理序列数据时存在顺序依赖的瓶颈&#xff1a;必须逐个处理序列元素&#xff0c;难以并行计算&#xff0c;且对长程依赖建模能力较弱。Transformer的革命…...

Ubuntu2404 下搭建 Zephyr 开发环境

1. 系统要求 操作系统&#xff1a;Ubuntu2404&#xff08;64位&#xff09;磁盘空间&#xff1a;至少 8GB 可用空间&#xff08;Zephyr 及其工具链较大&#xff09; 2. 安装必要工具 Tool Min. Version CMake 3.20.5 Python 3.10 Devicetree compiler 1.4.6 2.1 安装系…...

vite+tailwind封装组件库

前言 演示视频 https://www.bilibili.com/video/BV1EST3zPEyP/?spm_id_from333.1387.homepage.video_card.click 参考 https://juejin.cn/post/7112295067682865166 https://juejin.cn/post/7046187185615142949 代码仓库 https://gitee.com/malguy/vite-components-li…...