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

一、线上查询及帮助命令

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 命令将不会显示这个命令。
  • 对于一些由包管理器(如 aptyumdnfpacman 等)安装的软件,其可执行文件可能位于非标准路径中,但仍然会被包含在 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

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

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

相关文章

Java面向对象总结 ( 知识点 | 代码详解 )

类和对象 什么是类? ● 概念:具有相同特征(同一类)事物的抽象描述,如人类,车类,学生类等。 类的结构: ● 变量: 事物属性的描述(名词) ● 方法: 事物的行为(可以做…

基于Flask的宠物领养系统的设计与实现

基于Flask的宠物领养系统的设计与实现 涉及技术:python3.10flaskmysql8.0 系统分为普通用户和管理员两种角色,普通用户可以浏览搜索宠物,申请领养宠物;管理员可以分布宠物信息,管理系统等。 采用ORM模型创建数据&am…

QT----云服务器部署Mysql,Navicat连接1698 -Access denied for user ‘root‘@‘‘

阿里云有活动,白嫖了一年的新加坡轻量级服务器,有点卡,有时候要开梯子 白嫖300元优惠券 目录 1 安装启动Mysql服务2 更改连接权限2.1 Navicat连接报错1698 -Access denied for user root 3 qt连接云服务器数据库 1 安装启动Mysql服务 我使用…

f5——>字符串三角

暴力破解,双层循环,注意复制到新列表用append,这样更不容易出错 格式还是“”.join(str)

eNSP(Enterprise Network Simulation Platform)详细介绍

一、引言 随着网络技术的快速发展,网络设备的种类和功能日益增多,网络拓扑结构也变得越来越复杂。这对于学习网络技术、设计网络方案以及进行网络设备的测试都提出了更高的要求。为了满足这些需求,华为推出了eNSP(Enterprise Net…

Grid网格布局的基本使用

文章目录 什么是网格布局属性display 属性grid-row-gap 属性, grid-column-gap 属性, grid-gap 属性grid-template-areas 属性grid-auto-flow 属性justify-items 属性 , align-items 属性, place-items 属性justify-content 属性 …

Java高频面试之集合篇

Java 中常用的容器有哪些? ArrayList 和 LinkedList 的区别? ArrayList 是基于数组实现的,LinkedList 是基于链表实现的. ArrayList实现了RandomAccess接口,可基于下标访问. LinkedList 实现了Deque /dek/,可以当做双端队列使用. 插入效率对比 如果从头部…

Unity的滑动控制相机跟随和第三人称视角三

Unity的相机跟随和第三人称视角三 第三人称相机优化介绍讲解拖动事件相机逻辑人物移动逻辑总结 第三人称相机优化 Unity第三人称相机视角一 Unity第三人称相机视角二 介绍 之前相机视角讲过了两篇文章了,但是都是自动旋转视角,今天来了新需求&#xf…

支部管理系统微信小程序(管理端+用户端)flask+vue+mysql+微信小程序

系统架构如图所示 高校D支部管理系统 由web端和微信小程序端组成,由web端负责管理,能够收缴费用、发布信息、发布问卷、发布通知等功能 部分功能页面如图所示 微信小程序端 包含所有源码和远程部署,可作为毕设课设

网络中UDP编程

网络 1.recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 功能: 从套接字中接收数据 参数: sockfd:套接字文件描述符 buf:存放数据空间首…

Java 数据结构之链表

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) return null;ListNode pA headA, pB headB;while (pA ! pB) {pA pA null ? headB : pA.next;pB pB null ? headA : pB.next;}return pA;} public ListNode rev…

Pytorch将数据(张量)写入视频

Pytorch将数据写入视频 1. 安装与报错解决2. torch.io程序3. cv2 img文件转视频参考资料 1. 安装与报错解决 安装 pip install PyAV报错问题1的解决 报错信息如下: ...tf2_py38\lib\site-packages\torchvision\io\video.py", line 41, in _check_av_availab…

解决Git中fatal: refusing to merge unrelated histories

我们在git新建项目的时候一般是先建一个远程仓库,然后本地与之关联,再将本地代码推到远程仓库就可以了,不过有可能返回以下错误: fatal: refusing to merge unrelated histories 这时需要在命令后增加以下命令即可 --allow-unr…

【Unity】【VR开发】如何避免按键冲突

【背景】 VR开发过程中,控制器按键冲突是常有的问题。比如握住手枪时发射子弹用的Trigger,瞬移用的也是Trigger,如何解决这种冲突呢? 【分析】 为了让同一个Trigger按键在不同场景下分别触发合适的动作,需增加判断逻辑来区分场景。具体到当前的问题,需要追加判断逻辑区…

数据库系列之:什么是 SAP HANA?

数据库系列之:什么是 SAP HANA? 一、什么是 SAP HANA?二、什么是内存数据库?三、SAP HANA 有多快?四、SAP HANA 的十大优势五、SAP HANA 架构六、数据库设计七、数据库管理八、应用开发九、高级分析十、数据虚拟化 一、…

通信(四)gRPC

gRPC 1. 简介2. C2.1 编译.proto生成.pb.h和.pb.cc服务器示例客户端示例 3. C#3.1 导入NuGet程序包编译.proto生成.cs和Grpc.cs示例 1. 简介 2. C 2.1 编译.proto生成.pb.h和.pb.cc grpc_cpp_plugin.exe生成编译时.proto自动生成 服务器示例 客户端示例 3. C# 3.1 导入N…

Linux添加虚拟卷

Linux添加虚拟卷 1.在服务器上安装lvm 使用LVM(Logical Volume Manager)来将多个物理磁盘挂载到同一个逻辑卷 2.创建 用pvcreate将设备初始化为物理卷 sudo pvcreate /dev/${目标设备} #例如 sudo pvcreate /dev/sdb sudo pvcreate /dev/sdc sudo p…

1-安装rabbitmq

rabbitmq官网: https://www.rabbitmq.com/docs/download 本机环境:mac,使用orbstack提供的docker 使用docker部署rabbitmq docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13-management 然后报错&#xf…

信息安全服务规范包括哪些方面

信息安全服务规范是确保信息系统安全稳定运行的重要指导原则和操作准则。在信息化高速发展的今天,信息安全已经成为国家、企业乃至个人不可忽视的重要议题。因此,制定和执行信息安全服务规范对于保障信息安全、维护社会秩序具有重要意义。 信息安全服务规…

[C/C++]_[初级]_[关于输出double浮点数精度的方法]

场景 在开发WTL/Win32程序时,绘制进度百分比,需要指定这个百分比包括小数点不超过5个字符,也就是除了小数点之外的数字个数最多只显示4个。已知可能出现的数值有1.1,1.1145,22.14… 用什么方式可以获取需要的字符串呢? 说明 绘…