一、线上查询及帮助命令
1.1 man
1.1.1 介绍
man 命令用于显示命令手册页面(manual pages),提供了关于命令、函数、系统调用等的详细文档和使用说明
1.1.2 使用方法
man [选项] [命令或函数或系统调用]
1.1.3 参数详解
-f
:显示与指定关键字相关的手册页的简短描述。-K
:搜索所有手册页中的关键字并显示相关的手册页。-S
:指定要查看的手册页的章节。-w
:显示手册页的位置(文件路径)而不是显示内容。
1.1.4 常见使用案例
1.1.4.1 查看命令的手册页
man ls
这会显示关于 ls
命令的手册页,包括用法、选项、参数等信息
1.1.4.2 查看系统调用的手册页
man 2 open
这会显示关于 open
系统调用的手册页
1.1.4.3 搜索所有手册页中的关键字
man -K keyword
这会搜索所有手册页中包含指定关键字的条目,并显示相关的手册页
1.1.4.4 指定要查看的手册页的章节
man -S 3 printf
这会显示关于 printf
函数的手册页,但只在第 3 章节中搜索
1.1.4.5 显示手册页的位置(文件路径)
man -w ls
这会显示 ls
命令手册页的文件路径,而不是显示内容
1.2 help
1.2.1 介绍
help
命令是 Bash shell 的内置命令,用于显示 shell 内置命令的简要帮助信息
1.2.2 使用方法
help [内置命令]
1.2.3 参数详解
[内置命令]
:可选参数,用于指定要显示帮助信息的内置命令的名称
1.2.4 常见使用案例
1.2.4.1 显示所有内置命令的帮助信息
help
这会显示所有可用的内置命令,并提供简要的说明
1.2.4.2 显示特定内置命令的帮助信息
help cd
这会显示关于 cd
内置命令的帮助信息,包括命令的用法和说明
1.2.4.3 查看 help
命令自身的帮助信息
help help
这会显示关于如何使用 help
命令的帮助信息
1.2.4.4 使用管道和grep过滤命令列表
help | grep -E "true"
这会列出所有内置命令,并使用 grep 工具过滤出包含指定模式的命令
二、文件压缩及解压缩命令
2.1 tar
2.1.1 介绍
tar命令是Linux中用于压缩和解压文件或目录的命令
2.1.2 使用方法
tar [选项] 文件与目录
2.1.3 参数详解
-c
:创建一个新的打包文件。-x
:从打包文件中提取文件。-t
:列出打包文件中的内容。-z
:通过gzip进行压缩或解压,生成.tar.gz文件。-j
:通过bzip2进行压缩或解压,生成.tar.bz2文件。-v
:在压缩或解压过程中显示详细信息。-f
:指定打包文件的名称。需要注意的是,在-f
之后应紧接着指定文件名,不要再加其他参数。-p
:保持原文件的属性(如权限、时间戳等)。-P
:使用绝对路径进行压缩或解压。-N
:设定日期(yyyy/mm/dd),只有比指定日期更新的文件才会被打包或解压。--exclude FILE
:在打包过程中排除指定文件。
2.1.4 常见使用案例
2.1.4.1 创建一个新的打包文件
tar -cvf archive.tar directory_or_file
这将把指定的目录或文件打包成一个名为archive.tar
的打包文件
2.1.4.2 从打包文件中提取文件
tar -xvf archive.tar
这将把archive.tar
打包文件中的内容提取到当前工作目录下,并保留原有的目录结构
2.1.4.3 查看打包文件的内容
tar -tvf archive.tar
这将列出archive.tar
打包文件中的所有文件和目录
2.1.4.4 使用gzip进行压缩
tar -czvf archive.tar.gz directory_or_file
这将把指定的目录或文件打包并压缩成一个名为archive.tar.gz
的gzip压缩文件
2.1.4.5 使用bzip2进行压缩
tar -cjvf archive.tar.bz2 directory_or_file
这将把指定的目录或文件打包并压缩成一个名为archive.tar.bz2
的bzip2压缩文件
2.2 unzip
2.2.1 介绍
unzip
命令是用于解压 .zip
压缩文件的常用工具
2.2.2 使用方法
unzip [选项] zip_file [file_to_extract]
2.2.3 参数详解
-d 目录
:指定解压的目标目录。-o
:覆盖已存在的文件,不提示用户确认。-j
:只解压文件,不创建目录结构。-l
:列出压缩文件中的文件列表,而不解压。-o
:如果目标文件存在并且无法打开,则覆盖它。-q
:安静模式,不显示解压过程中的信息。-P 密码
:如果压缩文件有密码,使用这个选项来提供密码。-u
:只解压比目标目录中已存在的文件更新或更老的文件。
2.2.4 常见使用案例
2.2.4.1 解压 .zip
文件到当前目录
unzip archive.zip
2.2.4.2 解压 .zip
文件到指定目录
unzip archive.zip -d /path/to/directory
2.2.4.3 只列出 .zip
文件中的文件列表,不解压
unzip -l archive.zip
2.2.4.4 覆盖已存在的文件并解压
unzip -o archive.zip
2.2.4.5 解压 .zip
文件中的特定文件
unzip archive.zip file_to_extract
2.2.4.6 解压带有密码的 .zip
文件
unzip -P password archive.zip
2.3 gzip
2.3.1 介绍
gzip
是一个用于文件压缩和解压缩的工具,它使用 Lempel-Ziv 77 (LZ77) 算法和 Huffman 编码
2.3.2 使用方法
2.3.2.1 压缩文件
gzip [选项] 文件名
2.3.2.2 解压缩文件
gzip -d [选项] 压缩文件名
或者,使用 gunzip
命令来解压缩,它是 gzip
的解压缩版本
gunzip [选项] 压缩文件名
2.3.3 参数详解
-c
:将压缩或解压缩后的内容输出到标准输出(stdout),而不是替换原始文件。-d
:解压缩文件。与gunzip
功能相同。-f
:强制压缩或解压缩,即使目标文件已经存在。-k
:保留原始文件,即使压缩或解压缩成功。-l
:列出压缩文件的信息,而不是实际进行压缩或解压缩。-n
:不压缩已经压缩过的文件(即,如果文件已经是.gz
格式,则不执行任何操作)。-q
:安静模式,不显示任何警告或错误信息。-r
:递归地压缩或解压缩目录中的所有文件。-t
:测试压缩文件的完整性,但不解压缩。-v
:详细模式,显示压缩或解压缩过程中的文件信息。-#
:指定压缩级别,其中1
表示最快但压缩率最低,9
表示最慢但压缩率最高。默认是6
。
2.3.4 常见使用案例
2.3.4.1 压缩文件
gzip file.txt
这会将 file.txt
压缩为 file.txt.gz
2.3.4.2 解压缩文件
gunzip file.txt.gz
或者,使用 gzip
的 -d
选项
gzip -d file.txt.gz
这会将 file.txt.gz
解压缩为 file.txt
2.3.4.3 压缩多个文件
gzip *.txt
这会将当前目录下所有 .txt
结尾的文件压缩为对应的 .gz
文件
2.3.4.4 查看压缩文件的信息而不解压
gzip -l file.txt.gz
2.3.4.5 强制压缩已经存在的 .gz
文件(通常不推荐)
gzip -n file.txt.gz
2.3.4.6 递归压缩目录中的所有文件
gzip -r directory/
这会将 directory/
目录下的所有文件(递归地)压缩为 .gz
文件
2.4 zip
2.4.1 介绍
zip
是一个用于创建和管理 .zip
格式压缩文件的命令行工具
2.4.2 使用方法
zip [选项] 压缩文件名 文件或目录列表
2.4.3 参数详解
-r
:递归地压缩目录及其内容。-q
:安静模式,不显示压缩过程中的信息。-9
:使用最大压缩比进行压缩,这可能需要更多的时间和计算资源。-0
到-8
:设置压缩级别,-0
表示不压缩(存储),-8
表示较快但压缩率较低的压缩,-9
是最高压缩率。-j
:只压缩文件,不压缩目录。-m
:将文件压缩为 ZIP 归档后,删除原始文件。-u
:只更新已经存在的文件在 ZIP 归档中,比归档中现有文件更新的文件。-l
:将文件压缩到 ZIP 归档中,如果文件已经存在,则保留原文件。-o
:覆盖现有的 ZIP 归档文件,而不提示确认。-x
:排除指定的文件或目录。-@
:从标准输入(stdin)读取要添加到 ZIP 归档中的文件列表。-A
:调整可执行的自动解压缩文件。-F
:尝试修复损坏的 ZIP 归档。-T
:检查归档文件的日期,以确定是否需要更新。
2.4.4 常见使用案例
2.4.4.1 压缩单个文件
zip archive.zip file.txt
2.4.4.2 压缩多个文件
zip archive.zip file1.txt file2.txt file3.txt
2.4.4.3 递归压缩目录及其内容
zip -r archive.zip directory/
2.4.4.4 使用最大压缩比压缩文件
zip -9 archive.zip file.txt
2.4.4.5 压缩文件并删除原始文件
zip -m archive.zip file.txt
2.4.4.6 排除某些文件或目录进行压缩
zip archive.zip * -x '*.log'
2.4.4.7 从文件列表中读取要压缩的文件
echo "file1.txt" > filelist.txt
echo "file2.txt" >> filelist.txt
zip archive.zip @filelist.txt
三、搜索文件命令
3.1 which
3.1.1 介绍
which
是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令,用于在系统的 PATH 变量所列出的目录中搜索某个特定的可执行文件
3.1.2 使用方法
which [命令名]
3.1.3 参数详解
[命令名]
:你想要查找的可执行文件的名称
3.1.4 使用案例
3.1.4.1 查找 ls
命令的位置
which ls
这个命令会输出 ls
命令的完整路径,通常是 /bin/ls
3.1.4.2 查找 python
命令的位置
which python
这个命令会输出 python
可执行文件的路径,这取决于你的系统中 Python 的安装方式和版本
3.1.5 注意点:
which
命令只能用来查找可执行文件,并且它只会查找 PATH 环境变量中列出的目录。如果一个命令是通过别名的方式定义的(例如一个 shell 函数或者一个别名),which
命令将不会显示这个命令。- 对于一些由包管理器(如
apt
、yum
、dnf
、pacman
等)安装的软件,其可执行文件可能位于非标准路径中,但仍然会被包含在 PATH 中。 - 如果你想要查找一个命令的所有可能位置,包括别名、函数和可执行文件,你可以使用
type
命令(在bash
中)或者command -v
命令(在 POSIX 兼容的 shell 中)
3.2 find
3.2.1 介绍
find
是一个强大的命令行工具,用于在文件系统中搜索文件和目录
3.2.2 使用方法
find [路径] [表达式]
3.2.3 参数详解
[路径]
:指定在哪个目录及其子目录中搜索。如果省略,则默认在当前目录及其子目录中搜索。[表达式]
:定义搜索条件。可以是多个条件的组合,使用逻辑运算符(-and
,-or
,-not
)来组合它们
3.2.4 常见选项和表达式
-name
:按文件名搜索。-type
:按文件类型搜索(如f
表示普通文件,d
表示目录)。-size
:按文件大小搜索。-mtime
:按文件的修改时间搜索。-exec
:对找到的每个文件执行指定的命令。-print
:打印找到的文件名(默认操作)。
3.2.5 使用案例
3.2.5.1 在当前目录及其子目录中查找名为 example.txt
的文件
find . -name "example.txt"
3.2.5.2 查找当前目录及其子目录中所有的目录
find . -type d
3.2.5.3 查找当前目录及其子目录中大于 1MB 的文件
find . -type f -size +1M
3.2.5.4 查找最后 7 天内修改过的文件
find . -type f -mtime -7
3.2.5.5 查找名为 *.log
的文件并删除它们
find . -name "*.log" -exec rm {} \;
3.2.5.6 查找所有的 .txt
文件,并打印它们的路径
find . -name "*.txt" -print
3.2.6 注意事项:
find
命令非常强大,因此在使用时要小心,特别是当使用-exec
选项执行命令时。确保你完全理解你正在做什么,以防止意外删除或修改文件。- 在使用
-exec
选项时,{}
是一个占位符,它会被替换为当前找到的文件名。\;
表示-exec
选项的结束。 - 为了提高搜索效率,你可以尽量缩小搜索范围,比如指定具体的目录路径,而不是从根目录开始搜索整个文件系统。
3.3 whereis
3.3.1 介绍
whereis
是一个在 Unix 和类 Unix 系统(如 Linux)中用于定位可执行文件、源代码和 man 页面位置的命令
3.3.2 使用方法
whereis [命令名或文件名]
3.3.3 参数详解
[命令名或文件名]
:你想要查找的可执行文件、源代码或 man 页面的名称
3.3.4 使用案例
3.3.4.1 查找 ls
命令的位置
whereis ls
这个命令通常会返回 ls
可执行文件的位置,以及与之关联的源代码和 man 手册页的位置(如果存在的话)
3.3.4.2 查找 gcc
的相关信息
whereis gcc
这将显示 gcc
可执行文件、源代码和 man 手册页的位置
3.3.5 注意事项:
whereis
命令主要用于查找标准安装的软件包。对于非标准路径安装的软件或用户自定义的程序,whereis
可能无法找到。- 如果只关心可执行文件的位置,可以使用
which
命令。 - 如果想要查找包含特定文本的文件,可以使用
grep
命令结合其他命令(如find
)。 - 对于一些软件包,源代码和 man 页面可能并不总是可用,因此
whereis
的输出可能只包含可执行文件的位置。
3.4 locate
3.4.1 介绍
locate
命令用于快速查找文件系统中的文件,它使用一个预先构建的数据库来执行搜索,而不是实时搜索整个文件系统
3.4.2 使用方法
locate [选项] [模式]
3.4.3 参数详解
[选项]
:控制locate
命令的行为,比如指定数据库路径、限制搜索范围等。[模式]
:搜索时要匹配的文件名模式。
3.4.4 常见选项
-i
:忽略大小写。-r
:使用正则表达式进行匹配。-n
:限制输出的结果数量。-d
:指定数据库文件的路径。-e
:启用额外的搜索路径。
3.4.5 常见使用案例
3.4.5.1 查找所有以 .txt
结尾的文件
locate .txt
3.4.5.2 忽略大小写,查找所有包含 example
的文件
locate -i example
3.4.5.3 使用正则表达式查找所有以 file
开头,以 .log
结尾的文件
locate -r '^file.*\.log$'
3.4.6 注意事项:
locate
命令依赖于一个预先构建的数据库。如果文件系统中添加、删除或重命名了文件,需要定期运行updatedb
命令来更新数据库。- 由于
locate
使用的是数据库,它可能无法找到最近创建或移动的文件,除非数据库已经更新。 - 在某些系统中,
locate
命令可能默认禁用,因为它可能会暴露敏感信息。在这种情况下,你可能需要手动安装和配置locate