Linux常用命令-文件操作

news2024/11/15 11:58:03

在这里插入图片描述

文章目录

  • ls
    • 基本用法
    • 常用选项
    • 组合选项
    • 示例
    • 注意事项
  • cd
    • 基本用法
    • 示例
    • 注意事项
  • pwd
    • 基本用法
    • 示例
    • 选项
    • 总结
  • cp
    • 基本用法
    • 常见选项
    • 示例
    • 注意事项
  • rm
    • 基本用法
    • 常见选项
    • 示例
      • 删除单个文件:
      • 交互式删除文件:
      • 强制删除文件:
      • 递归删除目录:
      • 交互式递归删除:
      • 详细输出删除操作:
    • 注意事项
  • mkdir
    • 基本用法
    • 常见选项
    • 示例
    • 注意事项
  • rmdir
    • 基本用法
    • 常见选项
    • 示例
    • 注意事项
  • touch
    • 基本用法
    • 常见选项
    • 示例
    • 注意事项
  • find
    • 基本用法
    • 常见选项和表达式
    • 示例
    • 注意事项

ls

ls 是 Linux 中最常用的命令之一,主要用于列出目录中的文件和子目录。这个命令不仅可以显示名称,还可以显示文件和目录的详细信息,如权限、所有者、大小和最后修改日期。

基本用法

ls:列出当前目录中的文件和目录。
ls /path/to/directory:列出指定目录下的文件和目录。

常用选项

-l:以长列表格式显示详细信息(例如,文件权限、所有者、组、大小、最后修改时间和文件名)。
-a:显示所有文件和目录,包括以点(.)开头的隐藏文件。
-h:与 -l 一起使用时,以易读的格式显示文件大小(例如 KB、MB)。
-r:逆序显示(默认是按字母顺序)。
-t:根据文件的最后修改时间排序。
-S:按文件大小排序。
-R:递归列出所有子目录。
–color:以彩色显示输出,不同的颜色代表不同的文件类型和权限(大多数现代的 Linux 发行版默认启用彩色输出)。

组合选项

ls -la:列出所有文件(包括隐藏文件)以及详细信息。
ls -ltr:按时间逆序列出文件,最近修改的文件显示在最后。

示例

列出当前目录下的所有文件和目录:

ls -a

以长列表格式显示当前目录下的文件和目录详细信息:

ls -l

以长列表格式显示文件大小,包括隐藏文件,并使用易读格式:

ls -lah

列出指定目录 /etc 的文件,按文件大小排序:

ls -lS /etc

逆序显示当前目录下的文件,并按时间排序:

ls -lrt

递归列出当前目录及其所有子目录下的文件和目录:

ls -R

注意事项

默认情况下,ls 会省略以点(.)开头的隐藏文件和目录。如果要显示这些隐藏文件,请使用 -a 或 -A(后者不会显示 . 和 … 代表的当前目录和父目录)。
ls 命令的输出可以通过管道传递给其他命令,这在 shell 脚本和命令行工作流中非常有用。
在不同的发行版和环境中,ls 命令可能会有不同的别名,这些别名通常带有预定义的选项。例如,ll 可能是 ls -l 的别名。
总之,ls 是一个功能强大的命令,可用于以多种方式查看和排序文件系统中的文件和目录列表。通过熟练使用 ls 命令的不同选项和参数,你可以有效地浏览和管理 Linux 系统中的文件。

cd

cd(Change Directory)命令是一个用于在Linux和Unix-like操作系统的命令行中切换当前工作目录的命令。它是一个内建在大多数shell中的命令,不是一个独立的程序。使用 cd 命令可以移动到文件系统中的任何位置,是命令行用户日常工作的基本组成部分。

基本用法

cd [目录]:切换到指定的目录。
cd 或 cd ~:切换到当前用户的主目录。
cd -:切换到上一个工作目录。
cd …:移动到当前目录的上一级(父)目录。
cd /:切换到文件系统的根目录。

示例

切换到相对路径的目录:

cd Documents

这会将当前工作目录切换到用户主目录下的 Documents 子目录。

切换到绝对路径的目录:

cd /usr/local/bin

这会将当前工作目录切换到文件系统中的 /usr/local/bin 目录。

返回到主目录:

cd

或者

cd ~

两个命令都会把用户的当前工作目录切换到他们的主目录。

使用 … 返回到上级目录:

cd ..

这会把当前工作目录上移一级。

使用 …/… 返回到上上级目录:

cd ../..

这会把当前工作目录上移两级。

切换到上一个工作目录:

cd -

这会将当前工作目录切换回刚才使用 cd 命令离开的目录。

注意事项

当使用 cd 命令时,如果指定的目录不存在或者没有足够的权限去访问它,你会得到一个错误消息。
在使用 cd 命令时,可以使用环境变量,例如 cd $HOME 会切换到用户的主目录。
在许多情况下,你可以使用 Tab 键进行自动补全,这样可以快速输入目录名并防止拼写错误。
cd 并不改变新的shell实例的工作目录,它只在当前shell会话中有效。如果你希望在新的shell会话或脚本中改变工作目录,你需要在那个shell实例或脚本内部执行 cd 命令。
cd 命令虽然简单,但它是日常操作中使用频率非常高的命令之一。熟练使用 cd 命令对于提高在命令行中工作的效率至关重要。

pwd

pwd(Print Working Directory)命令是一个常用且基本的Linux命令行工具,它用来打印当前工作目录的完整路径。它是大多数Shell程序的内建命令,包括Bash、sh和其他常见的Shell。

当你在终端中浏览文件系统时,pwd 命令可以帮助你清晰地了解你当前所在的位置。

基本用法

命令的语法非常简单:

pwd

当执行这个命令时,它会输出你目前所在目录的绝对路径。绝对路径意味着从根目录 / 开始直到当前位置的完整路径。

示例

如果你在用户的主目录中(通常是 /home/username),执行 pwd 会返回:

/home/username

选项

pwd 命令的选项非常有限,因为它的功能就是单一的。两个最常用的选项是:

-P:显示物理路径,即不包含任何符号链接(symbolic links)。如果你的当前工作目录包含通过符号链接进入的路径,使用 -P 选项将会显示实际的物理路径,而非含有链接的路径。
-L:显示逻辑路径,即可以包含符号链接。这是 pwd 命令的默认行为,通常不需要显式指定 -L 选项。
注意事项
对于大多数用户来说,简单地键入 pwd 就足够了,因为默认行为通常就是他们所期望的。
当你使用 cd 命令切换目录时,pwd 命令非常有用,它可以帮助你验证你是否已经切换到了正确的目录。
在写脚本时,pwd 命令经常被用来确定脚本当前的执行位置,这样可以确保文件路径的正确性。

总结

pwd 命令非常简单却非常有用,它提供了一种快速方法来查看或确认你在文件系统中的确切位置。在处理文件和目录时,这是一个关键的信息,特别是在复杂的目录结构和长期的终端会话中。

cp

cp 命令在 Linux 和 Unix-like 系统中用于复制文件和目录。这个命令可以在同一个目录中复制文件,也可以将文件复制到不同的目录。此外,它支持多种选项,允许用户根据需要定制复制操作。

基本用法

复制文件到另一个目录:

cp source_file destination_file

如果 destination_file 已经存在,它会被 source_file 的内容覆盖。如果 destination_file 不存在,它会被创建。

复制文件到另一个目录并保持原有名称:

cp source_file /path/to/destination/directory/

这会将 source_file 复制到指定的目录中,并保持文件名称不变。

复制目录及其所有内容:

cp -r source_directory /path/to/destination_directory/

-r 选项告诉 cp 命令递归地复制目录,包括其内部的所有文件和子目录。

常见选项

-i:交互模式,在覆盖文件之前提示用户确认。
-b:在覆盖现有文件之前,为其创建一个备份。
-u:仅当源文件比目标文件新,或者目标文件不存在时,才复制文件。
-v:详细模式,复制时显示有关文件的信息。
-a:归档模式,尽可能以原样复制目录,包括链接、文件权限等。
–preserve=:保留指定的属性,如权限、时间戳等。例如,–preserve=mode,ownership。

示例

交互式复制文件:如果担心误覆盖重要文件,可以使用 -i 选项:

cp -i source_file destination_file

备份已存在的目标文件:在覆盖文件之前自动创建一个备份:

cp -b source_file destination_file

递归复制目录:复制整个目录及其内容到新位置:

cp -r /path/to/source_directory /path/to/destination_directory

详细输出:在复制文件时显示详细信息:

cp -v source_file destination_file

仅复制更新的文件:只有当源文件比目标文件更新时才执行复制:

cp -u source_file destination_file

注意事项

使用 cp 命令时,特别是在使用 -r 选项复制目录时,务必小心路径。错误的路径可能导致数据丢失。
为防止意外覆盖文件,可以习惯性地使用 -i 选项。
在脚本中使用 cp 时,考虑使用 -v 选项以记录哪些文件被复制,或使用 -u 选项以确保只复制已更新的文件。
cp 命令是 Linux 和 Unix 用户日常工作中不可或缺的工具,熟练使用它有助于提高文件管理的效率和准确性。

rm

rm(remove)命令在Linux和Unix-like操作系统中用于删除文件或目录。它是一个非常强大的工具,因为在Linux中,删除的文件通常不会被放入回收站或垃圾箱,而是被永久删除,所以使用时需要特别小心。

基本用法

删除文件:

rm filename

这个命令会删除当前目录中的文件 filename。如果文件不存在,rm 会输出一个错误消息。

删除多个文件:

rm file1 file2 file3

这会删除 file1、file2 和 file3。

删除目录和其中的所有内容:

rm -r directoryname

-r(或-R)选项告诉rm递归地删除目录和该目录中的所有内容,包括所有文件和子目录。

常见选项

-f:强制删除,忽略不存在的文件,不会显示任何提示。
-i:交互式删除,在删除每个文件之前都会提示用户确认。
-v:详细模式,显示删除操作的详细信息。
–no-preserve-root:允许删除根目录 /(非常危险,通常不推荐使用)。
–preserve-root:防止递归删除根目录(默认行为)。

示例

删除单个文件:

rm myfile.txt

这会删除当前目录中名为 myfile.txt 的文件。

交互式删除文件:

rm -i myfile.txt

这会在删除 myfile.txt 前提示用户确认。

强制删除文件:

rm -f myfile.txt

即使 myfile.txt 不存在,也不会显示错误消息。

递归删除目录:

rm -r mydirectory

这会删除 mydirectory 及其内部的所有文件和子目录。

交互式递归删除:

rm -ri mydirectory

这将在删除 mydirectory 中的每个文件和子目录之前提示用户确认。

详细输出删除操作:

rm -rv mydirectory

这将在删除 mydirectory 及其内容时显示详细信息。

注意事项

rm 命令不会将文件移动到回收站,所以一旦删除了文件或目录,通常很难恢复。
在使用带有 -r 选项的 rm 命令时要非常小心,尤其是当以root用户执行时。错误的命令可能导致系统或重要数据的丢失。
在默认情况下,rm 会保护根目录不被递归删除。应该始终保留这种默认行为。
在脚本中使用 rm 时,考虑使用 -i 或 -f 以避免潜在的危险操作。
对于那些想要在删除之前确认的情形,可以使用 -i 选项进行交互式删除。
总的来说,rm 是一个非常有用但潜在危险的命令。在使用它之前,始终要确保你了解它的影响,并且检查你的命令至少两次,以避免错误地删除了重要文件。

mkdir

mkdir(make directory)命令在 Linux 和类 Unix 操作系统中用于创建一个或多个新的目录。它是一个非常基本和常用的命令,适用于文件系统组织和管理。

基本用法

创建一个新目录:

mkdir directory_name

这个命令会在当前工作目录中创建一个名为 directory_name 的新目录。

创建多个新目录:

mkdir dir1 dir2 dir3

这将在当前工作目录中同时创建三个名为 dir1、dir2 和 dir3 的新目录。

常见选项

-m 或 --mode:设置目录的权限。可以在创建目录的时候设置权限(使用类似于 chmod 的权限设置方式)。
-p 或 --parents:创建多级目录。如果父目录不存在,mkdir 会自动创建它们。
-v 或 --verbose:详细模式。在创建新目录时,命令会显示一条消息告知用户已创建的目录。

示例

创建一个新目录:

mkdir my_new_directory

这会在当前位置创建一个名为 my_new_directory 的目录。

创建具有指定权限的目录:

mkdir -m 755 secure_directory

这将创建一个名为 secure_directory 的目录,并设置权限为 755(所有者有读、写、执行权限,而组和其他用户只有读和执行权限)。

创建多级目录:

mkdir -p parent_dir/child_dir/grandchild_dir

这将创建一个目录路径 parent_dir/child_dir/grandchild_dir。如果 parent_dir 和 child_dir 不存在,mkdir 会连同它们一起创建。

创建多个目录并显示详细信息:

mkdir -v dir1 dir2 dir3

这将创建 dir1、dir2 和 dir3,并显示关于每个创建的目录的信息。

注意事项

在使用 mkdir 命令时,如果指定的目录已经存在,命令会失败并显示一条错误消息。
mkdir 不会覆盖已存在的目录。如果你希望修改现有目录的权限,请使用 chmod 命令。
使用 -p 选项可以确保整个目录路径都被创建,即使其中一些中间目录还不存在。这在编写脚本时特别有用,因为它可以防止因尝试创建已存在的目录而导致的错误。
当使用 -m 或 --mode 选项时,你可以使用与 chmod 命令相同的权限符号或数值。
mkdir 命令通常配合其他命令(如 cd, ls, rmdir 等)一起使用来管理文件系统的结构。掌握 mkdir 命令是进行有效文件系统管理的基础。

rmdir

rmdir(remove directory)命令在Linux和Unix-like系统中用于删除空的目录。与rm -r不同,rmdir只能删除空目录,如果目录中包含文件或其他目录,则会失败。这可以防止意外删除目录中的内容。

基本用法

删除一个空目录:

rmdir directory_name

此命令将尝试删除名为 directory_name 的空目录。如果目录非空,命令将失败并显示错误消息。

常见选项

-p 或 --parents:递归删除目录树。如果父目录变为空(在子目录被删除后),则一并删除父目录。即,rmdir -p 将删除目录以及其任何已变为空的祖先目录。
–ignore-fail-on-non-empty:忽略非空目录导致的删除失败。通常,如果尝试删除一个非空目录,rmdir 会失败。此选项将允许命令完成,但会忽略由于目录不为空而无法删除的情况。

示例

删除空目录:

rmdir my_empty_directory

如果 my_empty_directory 是空的,它将被删除。如果它包含文件或子目录,则命令将失败。

递归删除多个空目录:

rmdir -p parent_dir/child_dir/grandchild_dir

这将尝试删除 grandchild_dir、child_dir 和 parent_dir。如果 grandchild_dir 是空的且其中一个父目录在其子目录被删除后变为空,则将一并删除该父目录。

注意事项

rmdir 仅用于删除空目录。如果你需要删除包含文件的目录,请使用 rm -r 命令。
在默认情况下,如果目录不为空,rmdir 命令会失败。这是一个安全特性,可以防止不小心删除目录中的内容。
使用 rmdir 删除目录时,不会有任何确认提示,所以在运行命令之前需要确保目录是空的。
在脚本中使用 rmdir 前,通常需要先检查目录是否为空,或者使用其他命令(例如 find 命令)清空目录。
在某些情况下,尽管目录看似空,实际上可能包含了隐藏文件(以.开头的文件)。在这些情况下,你需要先删除这些隐藏文件或使用 rm -r 命令。
rmdir 命令在进行文件系统整理时很有帮助,尤其在你确信想要删除的目录必须是空的时候。通过它的保护性质,它可以在某些程度上防止数据丢失。

touch

touch 命令是在Linux和Unix-like系统中用来创建空文件或者改变现有文件的时间戳的工具。它的主要作用是:

创建一个新的空文件。
更新一个已存在文件的访问时间(atime)、修改时间(mtime)。

基本用法

创建一个新文件:

touch filename

如果 filename 指定的文件不存在,touch 会创建一个空的新文件。如果文件已存在,它的访问和修改时间会被更新为当前时间。

更改文件时间戳:
只要运行 touch 命令并指定一个已存在的文件名,该文件的时间戳就会被更新。

常见选项

-a:仅更改文件的访问时间。
-m:仅更改文件的修改时间。
-c 或 --no-create:不创建任何文件;如果指定的文件不存在,touch 不会创建新文件。主要用于仅想更新已存在文件的场景。
-t:使用特定的时间而非当前时间。格式应为 [YYYYMMDDhhmm]。
-r:使用另一个文件的时间戳来更新指定文件的时间戳。

示例

创建一个新文件:

touch newfile.txt

如果 newfile.txt 不存在,这条命令会创建一个名为 newfile.txt 的空文件。

更新现有文件的时间戳:

touch existingfile.txt

这条命令会将 existingfile.txt 的访问和修改时间更新为当前时间。

仅更新文件的访问时间:

touch -a file.txt

这条命令会更新 file.txt 的访问时间而不改变修改时间。

使用特定的时间而非当前时间:

touch -t 202101010800 newfile.txt

这条命令会创建(或更新) newfile.txt,使其时间戳对应于2021年1月1日8点。

使用另一个文件的时间戳更新文件:

touch -r reference.txt target.txt

这会将 target.txt 的时间戳更新为和 reference.txt 一样的时间。

注意事项

touch 不是用来编辑文件内容的;它只用于快速创建空文件或者更改文件的时间戳。
在某些脚本编程、文件管理任务中,更新文件的时间戳可能非常有用,比如用于触发基于时间的自动脚本执行。
使用 -t 选项指定的时间格式必须严格遵守 [YYYYMMDDhhmm] 的格式,否则命令会失败。
touch 命令因其简单和多功能性而在日常使用中非常方便,无论是在脚本编程还是在文件管理任务中。

find

find 命令是 Linux 和 Unix-like 系统中一个非常强大的工具,用于在文件系统中搜索符合指定条件的文件和目录。find 可以根据各种属性如文件名、文件类型、大小、权限、修改时间等来查找文件,并能够对搜索结果执行指定的命令。

基本用法

find [路径…] [表达式]
[路径…] 是 find 开始搜索的路径,例如 . 表示当前目录,/ 表示根目录。
[表达式] 定义了搜索的标准和在找到匹配的文件后要执行的动作。

常见选项和表达式

-name:根据文件名搜索。
-iname:和 -name 类似,但搜索是大小写不敏感的。
-type:根据文件类型搜索。常见的类型包括 f(普通文件)、d(目录)等。
-size:根据文件大小搜索。
-perm:根据文件权限搜索。
-user:根据文件的所有者搜索。
-group:根据文件的组所有者搜索。
-mtime, -atime, -ctime:根据文件的最后修改时间、访问时间或状态更改时间搜索。
-exec:对匹配的文件执行指定的命令。

示例

在当前目录及子目录中搜索文件名为 “myfile.txt” 的文件:

find . -name myfile.txt

在 /home 目录中搜索所用者为 “john” 的文件:

find /home -user john

在 /var/log 目录中搜索修改时间在7天以内的文件:

find /var/log -mtime -7

搜索当前目录及子目录中所有的 JPEG 文件并删除它们:

find . -type f -name "*.jpg" -exec rm {} \;

在 /etc 目录中搜索大小超过1MB的文件:

find /etc -type f -size +1M

搜索根目录中所有的目录并列出它们:

find / -type d -exec ls -ld {} \;

注意事项

在使用 -exec 时,符号 {} 代表当前匹配的文件名,; 表示 -exec 命令的结束。
使用 -exec 时要特别小心,因为你可能会执行修改或删除操作。
find 默认会递归地搜索所有的子目录。使用 -maxdepth 选项可以限制搜索的深度。
使用 find 能够匹配复杂的条件,也可以通过逻辑运算符(例如 -and、-or、-not)结合多个条件。
find 命令非常灵活且功能强大,只要熟悉其各种选项和用法,就能构建出复杂的查询来执行高度定制的操作。对于文件管理和一些自动化的shell脚本,find 是一个不可或缺的工具。

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

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

相关文章

腾讯云优惠券、代金券、云服务器折扣券领取渠道汇总

目前,云计算市场竞争太激烈了,为了吸引用户上云,腾讯云经常推出各种优惠活动,其中就包括优惠券、代金券和云服务器折扣券等。本文将为大家汇总腾讯云优惠券、代金券及云服务器折扣券的领取渠道,帮助大家轻松获取优惠&a…

蓝桥杯java组 最少砝码

问题描述】 你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意小于等于 N 的正整数重量。 那么这套砝码最少需要包含多少个砝码? 注意砝码可以放在天平两边。 【输入格式】 输入包含一个正整数 N。 【输出格式】 输出一个整数代表答案…

了解微信小程序开发流程

前言:本文只适合初学者了解大致开发流程,好让后续学习胸有成竹,有条不紊 1、开发准备 ① 在微信公众平台 (qq.com)完成微信小程序账号注册 ②下载安装微信小程序开发者工具 2、创建项目 新建 新建时需要的appid,在微信公众平…

【物联网项目】基于ESP8266的家庭灯光与火情智能监测系统——文末完整工程资料源码

目录 系统介绍 硬件配置 硬件连接图 系统分析与总体设计 系统硬件设计 ESP8266 WIFI开发板 人体红外传感器模块 光敏电阻传感器模块 火焰传感器模块 可燃气体传感器模块 温湿度传感器模块 OLED显示屏模块 系统软件设计 温湿度检测模块 报警模块 OLED显示模块 …

开源AI引擎:自然语言处理技术在人岗匹配中的应用

一、应用场景介绍 如何从海量的求职者中精准地匹配到合适的候选人,是每个人力资源部门都需要解决的问题。自然语言处理(NLP)技术的发展为人岗匹配提供了新的解决方案。通过信息抽取和文本分类技术,企业可以更高效地分析职位描述和…

【SpringBoot从入门到精通】03_SpringBoot自动配置原理

三、SpringBoot自动配置原理 我们通过编写SpringBoot HelloWorld程序&#xff0c;体会到了其强大与便捷&#xff0c;它的这些功能都是基于SpringBoot的依赖管理与自动配置。 3.1 核心特性 依赖管理 父项目做依赖管理 <!-- 当前项目的父项目&#xff1a;依赖管理 --> &…

JavaScript 常用方法(1):JS日期格式化函数、JS实现并列排序、JS实现数字每三位添加逗号、JS 实现根据日期和时间进行排序

1、JS日期格式化函数 JS日期格式化转换方法 /*** description 格式化时间* param fmt 格式 如&#xff1a;yyyy-MM-dd、yyyy-MM-dd HH:mm:ss、yyyy年MM月dd日 W HH:mm:ss等* param {String} date 时间戳* returns {string|null}* 对 Date 的扩展&#xff0c;将 Date 转化为指…

LangChain教程 | langchain 文本拆分器 | Text Splitters全集

在阅读本文前&#xff0c;建议先看下langchain的基础&#xff0c;最主要的是先看下langchain 文档加载器使用教程有关的内容&#xff0c;会更容易把知识串联起来。 概述 一旦加载了文档&#xff0c;您通常会想要转换它们以更好地适应您的应用程序。最简单的例子是&#xff0c;您…

使用dlv配合goland调试在wsl中运行的go程序

参考文章&#xff1a;https://marksuper.xyz/2021/06/29/dlv-goland/ 首先安装一下dlv这个工具&#xff1a; git clone GitHub - go-delve/delve: Delve is a debugger for the Go programming language. cd delve go install github.com/go-delve/delve/cmd/dlv 我们直接开始配…

数据结构 之 栈与单调栈习题 力扣oj(附加思路版)

#include<stack> --栈的头文件 栈的特点 &#xff1a; 先进后出 &#xff0c; 后进先出 相关函数&#xff1a; top() 获取栈顶元素 ,返回栈顶元素的值 pop() 删除栈顶元素 ,没有返回值 push() 放入元素 ,没有返回值 empty() 为空返回 true 否则返回false size() 元素…

Java毕业设计-基于springboot开发的疫情防控期间外出务工人员信息管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台登录2.1管理员功能2.2用户功能2.3采集员功能2.4分析员功能 四、毕设内容和源代码获取总结 Java毕业设计-基…

文件上传漏洞-客户端检测

本文章仅供学习参考&#xff01;&#xff01;&#xff01; 靶场环境&#xff1a;upload-labs-master/pass-1 客户端检测 客户端检测一般都是在网页上写一段 javascript 脚本&#xff0c;校验上传文件 的后缀名&#xff0c;有白名单形式也有黑名单形式。 判断方式&#xff1…

Advisor 被重复代理问题排查

问题场景 项目中存在多个 AbstractAdvisorAutoProxyCreator 且其持有的 Advisor Bean 重复 问题复现 相关代码 ResponseBodyRequiresPermissions(PermissionConstant.****)GetMapping(value "/query****.json", name "")public List<***> query…

aws 入门篇 01.aws学习的方法论

aws入门篇 01.aws学习的方法论 第1章 aws学习的方法论 aws的服务很多&#xff0c;现在应该有100多个服务了&#xff0c;怎么来学习aws呢&#xff1f; 这几年也使用了一些aws的服务&#xff0c;谈谈自己对学习aws的理解。 1.先横向&#xff0c;后纵深 比如说&#xff0c;aws最…

【Hello,PyQt】控件拖拽

在 PyQt 中实现控件拖拽功能的详细介绍 拖拽功能是现代用户界面设计中常见的交互方式之一&#xff0c;它可以提高用户体验&#xff0c;增加操作的直观性。在 PyQt 中&#xff0c;我们可以很容易地实现控件之间的拖拽功能。本文将介绍如何在 PyQt 中实现控件的拖拽功能。 如何实…

第二百二十九回

文章目录 1. 概念介绍2. 关键信息2.1 程序包名 2.2 程序图标2.3 程序id3. 内容总结 我们在上一章回中介绍了"如何在打包apk时自动签名"相关的内容&#xff0c;本章回中将介绍程序中的包名等关键信息.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我…

推荐:便宜幻兽帕鲁Palworld联机游戏服务器优惠价格表

2024年全网最全的幻兽帕鲁服务器租用价格表&#xff0c;阿里云幻兽帕鲁游戏服务器26元1个月、腾讯云32元一个月、京东云26元一个月、华为云24元1个月&#xff0c;阿腾云atengyun.com整理最新幻兽帕鲁专用4核16G、8核16G、8核32G游戏服务器租用价格表大全&#xff1a; 阿里云幻…

数据结构——链表(练习题)

大家好&#xff0c;我是小锋我们继续来学习链表。 我们在上一节已经把链表中的单链表讲解完了&#xff0c;大家感觉怎么样我们今天来带大家做一些练习帮助大家巩固所学内容。 1. 删除链表中等于给定值 val 的所有结点 . - 力扣&#xff08;LeetCode&#xff09; 我们大家来分…

十四、MySQL日志之 binlog日志

目录 一、二进制日志&#xff08;Binary log&#xff09; 1、binlog主要应用场景&#xff1a; 2、查看默认情况 3、日志参数设置 &#xff08;1&#xff09;永久设置 &#xff08;2&#xff09;临时性设置 4、查看日志 5、删除二进制日志 总结&#xff1a; 一、二进制日…

【JavaWeb】Day23.maven——依赖管理

依赖管理 一.依赖配置 依赖&#xff1a;指当前项目运行所需要的jar包。一个项目中可以引入多个依赖。 例如&#xff1a;在当前工程中&#xff0c;我们需要用到logback来记录日志&#xff0c;此时就可以在maven工程的pom.xml文件中&#xff0c;引入logback的依赖。具体步骤如…