Linux 常用命令汇总(一):查询帮助 & 文件压缩及解压缩 & 搜索文件

简介: Linux 常用命令汇总(一):查询帮助 & 文件压缩及解压缩 & 搜索文件

一、线上查询及帮助命令

1.1 man

1.1.1 介绍

man 命令用于显示命令手册页面(manual pages),提供了关于命令、函数、系统调用等的详细文档和使用说明

.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


相关文章
|
1天前
|
算法 Linux
Linux:文件增删 & 文件压缩指令
Linux:文件增删 & 文件压缩指令
5 0
|
1天前
|
安全 Linux 测试技术
|
1天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍
|
2天前
|
缓存 关系型数据库 Linux
Linux目录结构:深入理解与命令创建指南
Linux目录结构:深入理解与命令创建指南
|
2天前
|
数据挖掘 Linux vr&ar
Linux命令实战:解决日常问题的利器
Linux命令实战:解决日常问题的利器
|
2天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
15 0
|
2天前
|
安全 Linux Shell
linux基础命令详解
linux基础命令详解
8 0
|
3天前
|
Linux
Linux常用命令2
Linux常用命令2
5 0
|
3天前
|
Linux
Linux常用命令1
Linux常用命令1
9 0