🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
我们搞网络安全需要经常用到 linux 命令,比用拿到 linux 的 shell,需要使用 linux 命令。再比如 sh 脚本,我们经常需要使用。这里我将开始详细介绍一些常用的 linux 命令。本文讲解与文件和目录管理相关的命令。
文章目录
- 🍬 博主介绍
- 3.1 基础命令
- 3.1.1 pwd
- 3.1.1.1 基本功能
- 3.1.1.2 基本语法
- 3.1.2 ls
- 3.1.2.1 基本功能
- 3.1.2.2 基本语法
- 3.1.2.3 常用选项
- 3.1.3 cd
- 3.1.3.1 基本功能
- 3.1.2.2 基本语法
- 3.1.2.3 常用用法:
- 3.1.4 mv
- 3.1.4.1 基本功能
- 3.1.4.2 基本语法
- 3.1.4.3 常用选项
- 3.1.4.4 高级用法
- 3.2 文件管理
- 3.2.1 touch
- 3.2.1.1 基本功能
- 3.2.1.2 基本语法
- 3.2.1.3 常用选项
- 3.2.1.4 使用示例
- 3.2.2 rm
- 3.2.2.1 基本功能
- 3.2.2.2 基本语法
- 3.2.2.3 常用选项
- 3.3 目录管理
- 3.3.1 mkdir
- 3.3.1.1 基本功能
- 3.3.1.2 基本语法
- 3.3.13 常用选项:
- 3.3.2 rmdir
- 3.3.2.1 基本功能
- 3.3.2.3 常用选项
- 3.4 复制文件和目录
- 3.4.1 cp
- 3.4.1.1 基本功能
- 3.4.1.2 基本语法
- 3.4.1.3 常用选项
- 3.4.2 scp
- 3.4.2.1 基本功能
- 3.4.2.2 基本语法
- 3.4.2.3 常用选项:
- 3.4.3 rsync
- 3.4.3.1 基本功能
- 3.4.3.2 基本语法
- 3.4.3.3 常用选项
- 3.5 文件查找
- 3.5.1 find
- 3.5.1.1 基本功能
- 3.5.1.2 基本语法
- 3.5.1.3 常用选项和表达式:
- 3.5.1.4 使用示例
- 3.5.2 locate
- 3.5.2.1 基本功能
- 3.5.2.2 基本语法
- 3.5.2.3 常用参数:
- 3.6 文件目录属性
- 3.6.1 chattr
- 3.6.1.1 基本功能
- 3.6.1.2 基本语法
- 3.6.1.3 常用选项:
- 3.6.1.4 使用示例
- 3.6.2 lsattr命令
- 3.6.2.1 基本功能
- 3.6.2.2 基本语法
- 3.6.2.3 常用选项:
- 3.7 打包与解压缩
- 3.7.1 tar
- 3.7.1.1 基本功能
- 3.7.1.2 基本语法
- 3.7.1.3 常用选项:
- 3.7.1.4 常用示例
- 3.7.2 zip 与unzip
- 3.7.2.1 zip
- 3.7.2.2 unzip命令
- 3.7.3 gzip 与 gunzip
- 3.7.3.1 gzip
- 3.7.3.2 gunzip
- 3.7.4 bzip2 与 bunzip2
- 3.7.4.1 bzip2
- 3.7.4.2 bunzip2
- 3.7.5 xz 与 unxz
- 3.7.5.1 xz
- 3.7.5.2 unxz
- 相关资源
3.1 基础命令
3.1.1 pwd
3.1.1.1 基本功能
获取当前所在目录.
3.1.1.2 基本语法
pwd
3.1.2 ls
3.1.2.1 基本功能
列出指定目录中的文件和子目录
3.1.2.2 基本语法
ls [选项]
3.1.2.3 常用选项
-l
: 以长格式显示,包括文件的权限、所有者、大小和修改时间。-a
: 显示所有文件,包括隐藏文件-h
: 以易读的单位显示文件大小。-R
:递归的列出目录及其所有子目录的内容。
3.1.3 cd
3.1.3.1 基本功能
改变当前工作目录。
3.1.2.2 基本语法
cd path
3.1.2.3 常用用法:
cd <directory>
:改变当前工作目录到指定的<directory>
。cd ~
或cd
:回到当前用户的主目录。cd -
:返回到前一个工作目录。cd ..
:移动到上一级目录。
3.1.4 mv
3.1.4.1 基本功能
mv命令是Unix和Linx系统中用于移动文件或目录的命令,它也是重命名文件或目录的主要工具。
3.1.4.2 基本语法
mv [选项] source target
source
: 要移动或重命名的文件或目录。target
: 目标位置或新的名称
3.1.4.3 常用选项
-i
: 交互模式。在覆盖文件时提示用户确认。-f
: 强制模式-n
: 不覆盖已存在的文件。-v
: 详细模式。显示移动或重命名操作的详细信息。-u
: 仅当源文件比目标文件新或目标文件不存在时移动。
3.1.4.4 高级用法
1.批量移动文件
mv *.txt /tmp
2.在移动文件时创建备份
mv --backup file1.txt /tmp
3.备份文件指定自定义后缀
mv --backup -S .bak file1.txt /tmp
3.2 文件管理
3.2.1 touch
3.2.1.1 基本功能
用户创建空文件和修改文件的时间戳。
3.2.1.2 基本语法
touch [option] file
如果文件存在,打开之后默认会修改执行时间和修改时间。
3.2.1.3 常用选项
-a
: 仅修改文件的访问时间-m
: 仅修改文件的修改时间-c
或--no-create
: 如果文件不存在则创建文件。-d
: 使用指定的日期时间而不是当前时间。
3.2.1.4 使用示例
1.仅修改文件的访问时间
touch -a filename
2.仅修改文件的修改时间
touch -m filename
3.使用指定时间,而不是当前时间
touch -d "2023-01-01 12:34:56" filename
3.2.2 rm
3.2.2.1 基本功能
用于删除文件和目录的命令。可以永久删除文件和目录而无法恢复。
3.2.2.2 基本语法
rm [options] file...
3.2.2.3 常用选项
-f
: 强制删除文件或目录,不提示确认-i
: 交互式移除-r,-R.--recursive
: 递归删除目录及其内容。-d
: 删除空目录。-v
: 详细模式,显示删除文件和目录。
3.3 目录管理
3.3.1 mkdir
3.3.1.1 基本功能
用于创建目录的命令
3.3.1.2 基本语法
mkdir [选项] directory..
3.3.13 常用选项:
-p,--parents
: 创建目录时,必要时创建其父目录,如果目录已经存在,不会报错。-v
: 详细模式,显示创建的目录-m, --mode=MODE
: 创建目录并设置目录权限
3.3.2 rmdir
3.3.2.1 基本功能
用于删除空目录
3.3.2.2 基本语法
rmdir [options] directory
3.3.2.3 常用选项
-p, --parents
: 递归删除目录及其子目录-v
: 详细模式,显示要删除的目录--ignore-fail-on-non-empty
: 忽略非空目录导致的错误,不会进行删除。
3.4 复制文件和目录
3.4.1 cp
3.4.1.1 基本功能
用户复制文件和目录的命令。
3.4.1.2 基本语法
1.基本语法
cp [options] source destination
2.一次复制多个文件
cp [options] source ... directory
3.4.1.3 常用选项
-a, --archive
: 递归复制目录,并尽可能保持文件属性。相当于-dR --preserve=all
。-r,-R,--recursive
: 递归复制目录及其内容。-f
: 强制覆盖目标文件-i, --interactive
: 覆盖目标文件前提示确认。-u, --update
: 仅当源文件比目标文件新或目标文件不存在时复制-p
: 保持文件属性,如模式、所有权、时间戳等
3.4.2 scp
3.4.2.1 基本功能
用于在Unxi类系统之间安全的复制文件和目录, 用于在本地和远程主机之间。
scp
命令使用SSH协议来进行数据传输,并提供加密功能,确保数据在传输过程中不被窃听或篡改.
3.4.2.2 基本语法
scp [options] source destination
source
: 要复制的文件或目录,格式可以是[user@host:/path
或本地目录.destination
: 目标文件或目录, 格式可以是[user@host:/path
或本地目录.
3.4.2.3 常用选项:
-r
: 递归复制整个目录。-P
: 指定远程主机的SSH目录-i
: 指定用于认证的私钥文件-C
: 启用压缩-p
: 保留文件的修改时间、访问时间和模式。
3.4.3 rsync
3.4.3.1 基本功能
强大的文件同步和传输工具,用于在本地和远程主机之间高校地复制和同步文件和目录。支持增量传输、压缩、保留文件属性和权限等多种功能。
3.4.3.2 基本语法
rsync [option] source destination
source
:源文件或目录。destination
:目标文件或目录。可以是本地路径或远程路径(使用user@host:/path
格式)
3.4.3.3 常用选项
-a, --archive
: 归档模式,递归复制目录,并保留文件属性。-z, --compress
: 在传输过程中启用压缩。-P
: 显示传输进度并保留部分传输地文件。--delete
: 在目标中删除源不存在地文件。-e
: 指定远程shell程序。--exclude=PATTERN
: 排除匹配模式地文件或目录。--bwlimit=RATE
: 限制传输带宽
3.5 文件查找
3.5.1 find
3.5.1.1 基本功能
用于搜索文件和目录地命令。支持根据各种条件查找文件和目录,如类型、名称、大小、修改时间,并可以对找到的文件执行操作。
3.5.1.2 基本语法
find [path....] [expression]
- path: 指定要搜索的目录路径,默认是当前目录。
- expression: 搜索条件和操作。
3.5.1.3 常用选项和表达式:
-name pattern
: 查找名称匹配pattern的文件和目录(区分大小写)-iname pattern
: 查找名称匹配pattern的文件和目录(不区分大小写)-type type
: 按文件类型查找.f
普通文件,d
目录,l
符号链接-size n
: 查找大小为n的文件,支持指定单位.-
小于,+
大于。-mtime n
: 查找在n
天前到现在修改的文件。-atime n
: 查找在n天前访问的文件-ctime n
: 查找在n
天前状态改变的文件。-perm mode
:按照权限匹配进行查找-user username
: 查找属于username
用户的文件-group groupname
: 查找属于groupname
组的文件。- 条件连接参数
-and/ -a
: 与条件-or / -o
: 或条件-not / !
: 非条件
-exec command {} \;
: 对找到的每个文件执行命令-ok command {} \;
: 类似-exec
,但在执行前提示用户确认。
3.5.1.4 使用示例
1.查找 所有大小大于50MB的文件
find path -size +50M
2.查找最近7天内修改的文件
find path -mtime -7
3.查找当前目录中不以txt结尾的文件
find path -not -name "*.txt"
4.查找木下所有tmp结尾文件并删除
find path -name "*.tmp" and -type f -exec rm -rf {} \;
3.5.2 locate
3.5.2.1 基本功能
是Unix和Linx系统中的一个快速文件查找工具。与find不同,locate使用的是预构建的数据库来查找文件,速度快。通常与
updatedb
命令配合使用,后者用于更新文件数据库。
updatedb
: 更新文件数据库,通常由cron作业定期运行。通常每天运行一次,更新系统中所有文件的列表。
3.5.2.2 基本语法
locate [选项] pattern
3.5.2.3 常用参数:
-i
: 忽略大小写-r, --regexp REGEXP
: 使用正则表达式进行搜索。-c
: 只显示匹配项的数量-n, --limit,-l NUMBER
: 限制输出的匹配项数量。-0, --null
: 用NUL字符(不是换行符)分隔输出的文件名--existing
: 仅显示当前存在的文件。数据库内容存在滞后性。
3.6 文件目录属性
3.6.1 chattr
3.6.1.1 基本功能
用于改变文件和目录的属性。
3.6.1.2 基本语法
chattr [options] mode file...
mode
: 要设置的文件属性.+
增加属性、-
移除属性或=
直接设置属性。
3.6.1.3 常用选项:
-R, --recursive
: 递归的改变目录及其内容的属性。-V
: 显示命令执行过程中的详细信息。
常用文件属性:a
: 追加模式。只允许对文件进行追加操作。i
: 不可变模式,不允许对文件进行删除、修改、重命名或链接操作。d
: 对文件备份时忽略该文件。s
: 安全删除模式,文件内容将被安全删除而不是简单的删除。u
: 可恢复删除模式,文件被删除后可以恢复。
3.6.1.4 使用示例
1.递归目录dir
及其所有内容为不可变
chattr -R +i dir
3.6.2 lsattr命令
3.6.2.1 基本功能
用于显示文件或目录的属性
3.6.2.2 基本语法
lsattr [options] [files]
3.6.2.3 常用选项:
-R
: 递归的显示目录及其内容的属性。-a
: 显示包括隐藏文件在内的所有文件属性。-d
: 显示目录自身的属性而非其内容的属性
3.7 打包与解压缩
3.7.1 tar
3.7.1.1 基本功能
创建、提取和管理归档文件的命令,最常用于打包和解压文件。
3.7.1.2 基本语法
tar [options] [archive-file] [file or directory]
archive-file
: 要创建或提取的归档文件。
3.7.1.3 常用选项:
-c
, --create: 创建一个新的归档文件。-x, --get, --extract
: 从归档文件中提取文件。-t
: 列出归档文件的内容-z,--gzip
: 使用gzip压缩-j, --bzip2
: 使用bzip2压缩-J,--xz
: 使用xz压缩-r, --append
: 向现有归档文件中追加文件-u,--update
: 仅将比归档文件中的文件更新或新的文件追加到归档文件中-excluete=PATTERN
:排除与PATTERN匹配的文件-f
: 指定归档文件名-v
: 显示处理过程中的详细信息-k
: 提取归档文件时,如果目标路径已存在同名文件,这些文件将被覆盖
3.7.1.4 常用示例
1.向现有的tar归档文件中追加文件
tar -rvf archive.tar newfile
2.递归的将更新的文件追加到tar归档文件中
tar -uvf archive.tar file1 file2
3.7.2 zip 与unzip
3.7.2.1 zip
基本功能
用于创建ZIP压缩文件并将文件或目录添加到ZIP文件中 。
基本语法
zip [options] zipfile files
zipfile
: 要创建的ZIP文件名。files
: 要添加到ZIP文件中的文件或目录
常用选项
-r
: 递归的添加目录及其内容-u
: 更新现有ZIP文件中的文件。-d
: 从ZIP文件中删除指定文件-m
:将文件添加到ZIP文件后删除原文件。-x
: 排除匹配模式的文件-e
: 加密压缩文件,提示用户输入密码-v
: 显示详细信息,包括压缩比和文件信息
使用示例
# 递归压缩目录
zip -r archive.zip mydir
# 将更新后的文件添加到已有zip文件中
zip -u archive.zip file1 file2
# 从zip文件中删除文件
zip -d archive.zip file1 file2
3.7.2.2 unzip命令
基本功能
用于解压缩ZIP文件。
基本语法
unzip [options] zipfile
常用选项
-l
: 列出ZIP文件的内容。-v
: 显示ZIP文件的详细信息。-t
: 测试ZIP文件的完整性-d
: 指定解压缩的目标目录-o
: 覆盖现有文件而不提示。-n
: 不覆盖现有文件-x
: 排除解压缩的文件
使用示例
# 指定解压目录
unzip archive.zip -d /path/to/destination
# 解压并覆盖
unzip -o archive.zip
# 排除特定文件
unzip archive.zip -x file1 file2
3.7.3 gzip 与 gunzip
3.7.3.1 gzip
基本功能
基本介绍:
gzip(GNU zip)是一种在Linux系统中常见的命令行压缩工具,使用DEFLATE压缩算法来减小文件的大小。它主要用于压缩文本文件、Tar归档文件和网页,不建议用于压缩图像、音频、PDF文档和其他已经压缩的二进制文件。
工作原理:
gzip使用的DEFLATE算法结合了LZ77和哈夫曼编码的优点,通过查找和替换重复的字节序列来压缩数据。
基本语法
gzip [选项] 文件
常用选项
-d
:解压缩文件。-f
:强制压缩或解压文件。-r
:递归处理子目录。-t
:测试压缩文件完整性。-v
:显示压缩比率和统计信息。-k
:保留原始文件。-c
:将解压缩后的数据输出到标准输出。
使用示例
1.压缩单个文件:
gzip filename
2.解压缩文件:
gzip -d filename.gz
3.递归压缩目录:
gzip -r directoryname
3.7.3.2 gunzip
基本功能
gunzip是一个用于解压缩使用gzip命令压缩的文件的命令行工具,这些压缩文件预设最后的扩展名为 .gz。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。
基本语法
gunzip [选项] 文件
常用选项
-c
:将解压缩后的数据输出到标准输出。-d
:解压缩文件(默认行为)。-f
:强制解压缩,即使已存在同名的解压缩文件。-l
:显示压缩文件的详细信息。-n
:不覆盖已存在的解压缩文件。-q
:静默模式,不显示解压缩进度和错误信息。-r
:递归地解压缩指定目录下的所有文件。-t
:测试压缩文件的完整性,而不进行实际的解压缩操作。-v
:显示详细的解压缩信息。
使用示例
1.解压缩文件:
gunzip example.txt.gz
2.解压缩并保留原始文件:
gunzip -k example.txt.gz
3.递归解压缩目录:
gunzip -r directoryname
3.7.4 bzip2 与 bunzip2
3.7.4.1 bzip2
基本介绍
bzip2是一个用于创建和管理“.bz2”格式压缩包的命令。它采用Burrows-Wheeler块排序文本压缩算法和Huffman编码,提供了高压缩比。
安装方式:
- Debian/Ubuntu系统:
sudo apt install bzip2
- Alpine系统:
sudo apk add bzip2
- Arch Linux系统:
sudo pacman -S bzip2
- RedHat/CentOS系统:
sudo yum install bzip2
- Fedora系统:
sudo dnf install bzip2
基本语法
bzip2 [选项] 文件
常用选项
-c或--stdout
:将压缩与解压缩的结果送到标准输出。-d或--decompress
:执行解压缩。-f或--force
:覆盖现有文件而不提示。-k或--keep
:保留原始文件。-s或--small
:降低内存使用量。-t或--test
:测试压缩文件的完整性。-v或--verbose
:显示详细信息。-z或--compress
:强制执行压缩。-L,--license,-V或--version
:显示版本信息。--repetitive-best
:提高重复数据的压缩效果。--repetitive-fast
:加快重复数据的处理速度。-<1-9>
:设置压缩级别(1最快,9最高)。
使用示例
1.压缩单个文件
bzip2 filename
2.强制压缩文件
bzip2 -z filename
3.压缩文件时输出结果信息
bzip2 -v filename
4.压缩并保留原始文件
bzip2 -k filename
5.解压缩文件
bzip2 -d filename.bz2
6.模拟解压(不实际解压)
bzip2 -tv filename.bz2
3.7.4.2 bunzip2
基本介绍
bunzip2是专门用于解压缩“.bz2”格式文件的命令,实际上是bzip2命令的一个符号连接(软链接),因此其效果与执行“bzip2 -d”相同。
基本语法
bunzip2 [选项] 文件
常用选项
-f或--force
:强制覆盖已存在的文件。-k或--keep
:保留原始压缩文件。-s或--small
:降低解压缩时的内存使用量。-v或--verbose
:显示详细的解压缩信息。-l,--license,-V或--version
:显示版本信息。
使用示例
1.解压“.bz2”文件
bunzip2 filename.bz2
2.解压多个“.bz2”文件
bunzip2 file1.bz2 file2.bz2 file3.bz2
3.解压文件到指定目录
bunzip2 -c filename.bz2 > /path/to/target_directory/filename
4.检查文件完整性(不解压缩)
bunzip2 -t filename.bz2
3.7.5 xz 与 unxz
3.7.5.1 xz
基本介绍
定义:xz是一种高效的压缩文件格式,它采用LZMA或LZMA2算法进行数据压缩。这种格式的文件通常具有更高的压缩比,意味着相同数据量的.xz文件比其他压缩格式(如gzip、bzip2)的文件更小。xz是一个用于压缩和解压缩文件的命令,它基于LZMA算法家族。
特点:
- 高压缩比:xz格式的文件通常比普通gzip文件小30%,比bzip2文件小15%。
- 多线程支持:xz命令支持多线程压缩和解压缩,提高了处理效率。
- 多种过滤器:xz支持多个过滤器和链接,可以进行复杂的数据处理和转换。
使用:在Linux系统中,可以使用xz命令来压缩和解压缩文件。例如,
xz file.txt
将file.txt压缩为file.txt.xz,而xz -d file.txt.xz
则将其解压缩回file.txt。安装:如果系统上没有预装xz工具,可以通过包管理器进行安装。例如,在CentOS或RHEL上,可以使用
yum install epel-release && yum install xz
;在Debian或Ubuntu上,可以使用sudo apt-get install xz-utils
。
基本语法
压缩文件:xz [选项] 文件名
解压缩文件:xz -d [选项] 文件名.xz
常用选项
-c <目录>
:将压缩文件解压到指定目录。-d
:解压缩文件。-k
:保留源文件,即压缩后不删除源文件。-q
:静默模式,只显示错误信息。-v
:显示详细信息。-L, –lzma1
:使用LZMA1算法进行压缩和解压缩(默认)。-0, –lzma
:使用LZMA2算法进行压缩和解压缩。-t, –test
:测试压缩文件是否正确,不进行解压缩操作。-T, –threads=num
:指定使用的CPU线程数。-C, –check=type
:指定检查压缩文件完整性的方式。
使用示例
1.压缩文件
xz file.txt
2.解压缩文件
xz -d file.txt.xz
3.保留原始文件并压缩
xz -k file.txt
4.测试压缩文件的完整性
xz -t file.txt.xz
5.使用多个CPU线程进行压缩
xz -T 4 file.txt
6.使用SHA256算法检查压缩文件完整性
xz -C sha256 file.txt.xz
3.7.5.2 unxz
基本介绍
定义:unxz是一个用于解压.xz文件的命令行工具。它通常是xz工具包的一部分,或者可以单独安装。unxz是用来解压由xz命令压缩的文件,等价于xz -d
功能:unxz的主要功能是将.xz格式的压缩文件解压为其原始形式。它支持多线程解压,并且可以根据需要设置最大内存使用量以提高解压效率。
使用:使用unxz解压文件的基本命令是
unxz file.xz
,这将解压file.xz并生成原始文件。安装:与xz类似,如果系统上没有预装unxz工具,也可以通过包管理器进行安装。在某些Linux发行版中,unxz可能作为xz-utils包的一部分提供
基本语法
unxz [-c] 文件名.xz
常用选项
-c <目录>
:将压缩文件解压到指定目录。-d
:解压缩文件。-k
:保留源文件,即压缩后不删除源文件。-q
:静默模式,只显示错误信息。-v
:显示详细信息。-L, –lzma1
:使用LZMA1算法进行压缩和解压缩(默认)。-0, –lzma
:使用LZMA2算法进行压缩和解压缩。-t, –test
:测试压缩文件是否正确,不进行解压缩操作。-T, –threads=num
:指定使用的CPU线程数。-C, –check=type
:指定检查压缩文件完整性的方式。
使用示例
1.解压缩文件
unxz file.txt.xz
相关资源
原稿下载地址
原稿其他方式获取-帖子评论区
shell脚本 从入门到精通
[ DOS 命令基础 ] DOS 命令详解-大集合
[ DOS 命令基础 1 ] DOS 命令命令详解-系统查询相关命令
[ DOS 命令基础 2 ] DOS 命令命令详解-网络相关命令
[ DOS 命令基础 3 ] DOS 命令命令详解-文件操作相关命令
[ DOS 命令基础 4 ] DOS 命令命令详解-端口进程相关命令
[ Linux 命令基础 ] Linux 命令详解-大集合
[ Linux 命令基础 1 ] Linux 命令详解-linux 命令前置知识
[ Linux 命令基础 2 ] Linux 命令详解-系统管理命令
[ Linux 命令基础 3 ] Linux 命令详解-文件和目录管理命令
[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令
[ Linux 命令基础 5 ] Linux 命令详解-网络管理命令
[ Linux 命令基础 6 ] Linux 命令详解-权限和用户管理命令
[ Linux 命令基础 7 ] Linux 命令详解-磁盘管理相关命令