一、操作系统概述1. 什么是操作系统操作系统是一款专门进行软硬件资源 “管理”的软件系统它通过对下层硬件资源的高效管理和调度为上层应用程序提供稳定、统一的运行环境。操作系统本质上是一个管理者负责协调和管理计算机系统中的所有硬件和软件资源。2. 操作系统在计算机体系中的位置与贯穿作用在计算机软硬件层次结构中操作系统处于承上启下的关键位置贯穿整个计算栈代码语言javascriptAI代码解释应用软件 (MS Office、VS Code、浏览器等) ↓ ← 系统调用接口贯穿点 操作系统 (Windows、Linux、macOS) ← 核心管理者 ↓ ← 设备驱动接口贯穿点 设备驱动 (网卡、声卡、显卡驱动) ↓ ← 硬件抽象层贯穿点 硬件 (CPU、内存、硬盘、外设)几乎我们所有的软件行为最终都与操作系统直接或间接相关因为资源访问必须通过操作系统应用程序不能直接访问硬件系统调用是唯一入口所有硬件操作都需要通过系统调用接口操作系统提供抽象隐藏硬件细节提供统一的编程接口操作系统确保安全防止恶意程序破坏系统或其他程序3. 操作系统的必要性早期计算机直接通过硬件电路控制随着硬件功能不断完善和结构复杂化需要专门的软件来协助硬件控制和管理操作系统应运而生。它通过设备驱动实现模块化的硬件管理。二、操作系统类比理解企业架构类比应用软件各部门员工完成具体工作任务操作系统公司总经理统筹规划分配资源设备驱动部门经理将总经理指令转化为具体任务硬件基层员工实际执行具体操作优秀操作系统的衡量标准稳定性能够长时间持续运行不崩溃高效性资源利用率高响应速度快安全性提供良好的安全保护和隔离机制三、Linux 操作系统特点1. 交互方式命令行界面 (CLI)Linux 的主要交互方式高效且灵活图形化界面 (GUI)可选组件如 GNOME、KDE 等无论是图形化界面还是命令行界面其本质上都是一样的 → 而命令行操作更加贴近操作系统2. 设计哲学一切皆文件硬件设备、进程等都以文件形式呈现**比如**显示器、键盘、普通文件……小型、单一目的的程序每个程序只做好一件事通过管道连接程序组合简单程序完成复杂任务凡是能被读写的都可以认为是文件四、Linux 基础命令详解理解Linux指令的本质指令就是可执行程序Linux是由C语言编写的指令是在系统中特定路径下存在的可执行文件指令的执行过程系统会在预定路径如/usr/bin/中查找对应指令自定义指令将自己写的可执行程序放入系统搜索目录就可以直接通过文件名运行查看指令路径使用which [指令]查找指令所在路径指令别名使用alias [name][指令]可以临时重命名指令ls -l ll的原因ll通常是ls -l的预设别名alias用于简化操作。可以使用alias命令查看系统中的所有指令别名。1. 文件目录操作命令ls - 列出目录内容代码语言javascriptAI代码解释ls [选项] [目录或文件]选项-l详细列表显示可简写为ll-a显示所有文件包括隐藏文件-d显示目录本身而非内容-F在每个文件名后附上一个字符说明文件类型组合使用ls -la显示所有文件的详细信息指令是可以携带选项的→ 通过选项获得更加详细的输出通配符的使用*匹配任意字符[文件名].*匹配指定名称的任何扩展名文件*.[文件后缀]匹配指定后缀的任何文件案例代码语言javascriptAI代码解释ls * # 列出所有文件 ls test.* # 列出所有名为test的文件 ls *.c # 列出所有.c后缀的文件文件类型标识d目录文件-普通文件.隐藏文件以点开头的文件*可执行的普通文件使用ls -F时显示/目录使用ls -F时显示l符号链接文件b块设备文件c字符设备文件2. 目录导航命令pwd - 显示当前目录代码语言javascriptAI代码解释pwd # 打印当前工作目录cd - 切换目录代码语言javascriptAI代码解释cd [目录路径]常用路径cd ..返回上级目录cd ~返回用户家目录cd -返回上一个访问的目录cd /返回根目录路径概念绝对路径从根目录(/)开始的完整路径具有唯一性相对路径从当前目录开始的路径随工作目录变化选择原则配置文件、脚本中建议使用绝对路径命令行操作常用相对路径提高效率案例代码语言javascriptAI代码解释cd .. # 返回上级目录相对路径 cd /home/user/linux/ # 使用绝对路径切换 cd ../day02/ # 使用相对路径切换3. 文件操作命令touch - 创建空文件代码语言javascriptAI代码解释touch filename.txt # 创建新文件或更新文件时间戳mkdir - 创建目录代码语言javascriptAI代码解释mkdir [选项] [dirname]选项-p递归创建多级目录案例代码语言javascriptAI代码解释mkdir dirname # 创建单个目录 mkdir -p a/b/c/d # 递归创建多级目录rmdir - 删除空目录代码语言javascriptAI代码解释rmdir [选项] [dirname]选项-p递归删除多级空目录案例代码语言javascriptAI代码解释rmdir dirname # 删除空目录 rmdir -p a/b/c # 递归删除空目录链rm - 删除文件或目录代码语言javascriptAI代码解释rm [选项] [filename/dirname]选项-r递归删除删除目录及其下所有文件-f强制删除不提示-i删除前逐一询问确认案例代码语言javascriptAI代码解释rm filename # 删除文件 rm -r dirname # 递归删除目录及其内容 rm -f filename # 强制删除不提示 rm -i filename # 删除前询问确认注意rm是一个危险命令Linux中没有回收站机制删除后难以恢复4. 文件拷贝与移动命令cp - 拷贝文件/目录 → 目标文件/目录代码语言javascriptAI代码解释cp [选项] [源文件或目录] [目标文件或目录]目标目录下不能有重名文件选项-f强制复制覆盖已存在文件-i覆盖前询问用户-r或-R递归复制目录及其内容可以发现它和rm的选项几乎一模一样案例代码语言javascriptAI代码解释cp file1.txt file2.txt # 拷贝单个文件 cp -r dir1/ dir2/ # 递归拷贝目录 cp file1.txt file2.txt /home/user/dest/ # 拷贝多个文件到目录 cp file1.txt /nonexistent_dir/ # 错误目标目录不存在补充说明当使用cp命令同时指定多个源文件/目录时最后一个参数必须是已存在的目标目录系统会将所有指定的源文件/目录复制到该目标目录中如果最后一个参数不是目录或目录不存在命令将执行失败并报错mv - 剪切并重命名文件或目录代码语言javascriptAI代码解释mv [选项] 源文件或目录 目标文件或目录选项-f强制移动覆盖已存在文件-i覆盖前询问用户案例代码语言javascriptAI代码解释mv file.txt /path/to/destination/ #移动文件 mv oldname.txt newname.txt #重命名文件 mv file.txt /path/to/newname.txt #移动并重命名所有的 mv 操作都可以统一视为**“剪切并重命名”** 重命名文件 → 将该文件剪切并重命名于当前目录mv oldname.txt newname.txt→mv oldname.txt ./newname.txt/5. 文件查看与编辑命令cat - 查看目标文件内容代码语言javascriptAI代码解释cat [选项] [文件名]选项-n给所有行编号-b给非空行编号-s不输出连续空行适用场景适合查看小文件内容案例代码语言javascriptAI代码解释cat # 键盘输入 1则显示器输出 1 cat filename.txt # 查看文件内容当 cat 后面无目标时则默认从输入设备读取数据nano - 简单文本编辑器代码语言javascriptAI代码解释nano filename # 使用nano编辑器快捷键CtrlX退出Y保存N不保存Enter确定输入/输出重定向命令cat - 输入重定向输入重定向从指定文件读取数据代码语言javascriptAI代码解释cat [文件名] # 读取文件内容 cat file.txt # 从文件读取现阶段我们可以近似认为cat filename cat filenameecho - 输出重定向输出重定向清空目标文件后写入新内容追加重定向在目标文件末尾追加内容代码语言javascriptAI代码解释echo [字符串] ( [文件名]) # 打印字符串或写入文件 echo hello file.txt # 覆盖写入 echo world file.txt # 追加写入 //也可以用 printf -- 默认不带 换行符使用输出重定向时 若目标文件不存在则会自动创建一个**类touch 功能**功能输出字符串到标准输出或文件特点默认带 换行符与printf不同echo之后的内容统一当字符串处理 (echo hello→echo hello)所以echo指令默认将信息输向显示器这个文件重定向就是改变其目标文件 —Linux 中一切皆文件指令操作路径的通用性许多指令除了可以用选项修饰外还可以直接操作指定路径下的文件代码语言javascriptAI代码解释# 使用ls查看指定路径的文件 ls [目录]/[文件名] # 查看指定路径下的文件 ls ../[文件名] # 查看上级目录中的文件 # 使用rm删除指定路径的文件 rm [目录]/[文件名] # 删除指定路径下的文件 rm ../[文件名] # 删除上级目录中的文件 # 其他命令同样适用 cat /path/to/file # 查看指定路径文件内容 mkdir /path/to/dir # 在指定路径创建目录more - 分页查看文件代码语言javascriptAI代码解释more [选项] [文件]和cat功能类似但more更适合用于查看大文本文件支持分页显示选项-n对输出的所有行编号操作按回车逐行下翻**不支持上翻**按q退出less - 高级分页查看代码语言javascriptAI代码解释less [参数] [文件]比more更强大支持上下翻页和搜索选项-i忽略搜索时的大小写-N显示每行的行号操作/字符串向下搜索?字符串向上搜索n重复前一个搜索N反向重复前一个搜索q退出head - 查看文件开头代码语言javascriptAI代码解释head [参数] [文件]显示文件开头部分默认显示前10行选项-n行数指定显示的行数tail - 查看文件末尾代码语言javascriptAI代码解释tail [参数] [文件]显示文件末尾部分默认显示后10行选项-n行数指定显示的行数-f循环读取实时监控文件变化常用于查看日志组合使用案例代码语言javascriptAI代码解释# 获取文件的第50行内容 seq 1 100 test # 生成1到100的序列装入test //不用 less 搜索如何获取文件中间部分内容? # 方法1使用临时文件 head -50 test tmp tail -1 tmp # 方法2使用管道 |是 head -50 test | tail -1管道也可以看成一个临时文件用于传输数据 —右侧 → 左侧支持流水线工作6. 文件搜索命令find - 在指定路径下查找文件代码语言javascriptAI代码解释find [目录] [选项] [操作]find命令功能强大提供了相当多的查找条件 ---- 只要有访问权限就能查常用选项-name按照文件名查找文件特点即使系统中含有网络文件系统(NFS)find命令在该文件系统中同样有效遍历大的文件系统可能会花费很长时间建议放在后台执行功能强大支持多种复杂的查找条件组合案例代码语言javascriptAI代码解释// 按文件名匹配 find ~ -name test.c # 从 /home 目录开始查找名为 test.c 的文件 // 按文件后缀匹配 find ~ -name *.c # 从 /home 目录开始查找文件后缀为 .c 的文件 // 在其他路径查找 find /usr/bin -name ls # 从 /usr/bin 目录开始查找名为 ls 的文件注意find命令可能访问磁盘消耗资源较多which - 在指令路径下查找例如/usr/bin……代码语言javascriptAI代码解释which [选项] [命令名]which命令用于查找可执行文件的绝对路径常用选项-a显示所有匹配的路径而不仅仅是第一个特点专门用于查找可执行文件命令只在PATH环境变量指定的路径中查找查找速度快资源消耗少案例代码语言javascriptAI代码解释which ls # 查找ls命令的路径 which grep # 查找grep命令的路径 which -a python # 查找所有名为python的可执行文件路径 which git # 查找git命令的路径whereis - 在系统特定路径下查找代码语言javascriptAI代码解释whereis [选项] [文件名]whereis命令用于查找程序的二进制文件、源代码文件和手册页常用选项-b只查找二进制文件-m只查找手册页文件-s只查找源代码文件特点功能介于which和find之间在标准系统目录中查找如/bin, /usr/bin, /usr/local/bin等可以同时查找二进制文件、源代码和手册页查找速度较快案例代码语言javascriptAI代码解释whereis ls # 查找ls相关的所有文件 whereis -b gcc # 只查找gcc的二进制文件 whereis -m printf # 查找printf的手册页 whereis python # 查找python相关的所有文件总结对比find功能最强大可在任意指定路径深度搜索支持复杂条件which专门用于查找可执行命令只在PATH路径中搜索whereis在系统标准目录中查找程序的二进制、源码和手册页grep - 文本搜索指令代码语言javascriptAI代码解释grep [选项] [目标字符串] [目标文件]grep命令是强大的文本搜索工具在文本文件中搜索字符串并将匹配行打印出来常用选项-i忽略大小写的不同所以大小写视为相同-n顺便输出行号-v反向选择亦即显示出没有’搜寻字符串’内容的那一行案例代码语言javascriptAI代码解释grep hello file.txt # 在file.txt中搜索包含hello的行 grep -i error logfile.log # 忽略大小写搜索error grep -n function script.js # 显示匹配行及行号 grep -v debug config.conf # 显示不包含debug的行7. 压缩与解压命令zip/unzip - ZIP格式压缩解压代码语言javascriptAI代码解释# 压缩 zip 压缩文件.zip 目录或文件 # 解压 unzip 压缩文件.zip [-d 目标目录]常用选项-r递归处理将指定目录下的所有文件和子目录一并处理案例代码语言javascriptAI代码解释zip test2.zip test2/* # 将test2目录压缩 unzip test2.zip -d /tmp # 解压到tmp目录tar - 打包/解包命令代码语言javascriptAI代码解释tar [-cxtzjvf] 文件与目录... [参数]参数-c建立一个压缩文件的参数指令(create的意思)-x解开一个压缩文件的参数指令-t查看tarfile里面的文件-z是否同时具有gzip的属性亦即是否需要用gzip压缩-j是否同时具有bzip2的属性亦即是否需要用bzip2压缩-v压缩的过程中显示文件-f使用档名在f之后要立即接档名-C解压到指定目录
Linux 基本指令详解
一、操作系统概述1. 什么是操作系统操作系统是一款专门进行软硬件资源 “管理”的软件系统它通过对下层硬件资源的高效管理和调度为上层应用程序提供稳定、统一的运行环境。操作系统本质上是一个管理者负责协调和管理计算机系统中的所有硬件和软件资源。2. 操作系统在计算机体系中的位置与贯穿作用在计算机软硬件层次结构中操作系统处于承上启下的关键位置贯穿整个计算栈代码语言javascriptAI代码解释应用软件 (MS Office、VS Code、浏览器等) ↓ ← 系统调用接口贯穿点 操作系统 (Windows、Linux、macOS) ← 核心管理者 ↓ ← 设备驱动接口贯穿点 设备驱动 (网卡、声卡、显卡驱动) ↓ ← 硬件抽象层贯穿点 硬件 (CPU、内存、硬盘、外设)几乎我们所有的软件行为最终都与操作系统直接或间接相关因为资源访问必须通过操作系统应用程序不能直接访问硬件系统调用是唯一入口所有硬件操作都需要通过系统调用接口操作系统提供抽象隐藏硬件细节提供统一的编程接口操作系统确保安全防止恶意程序破坏系统或其他程序3. 操作系统的必要性早期计算机直接通过硬件电路控制随着硬件功能不断完善和结构复杂化需要专门的软件来协助硬件控制和管理操作系统应运而生。它通过设备驱动实现模块化的硬件管理。二、操作系统类比理解企业架构类比应用软件各部门员工完成具体工作任务操作系统公司总经理统筹规划分配资源设备驱动部门经理将总经理指令转化为具体任务硬件基层员工实际执行具体操作优秀操作系统的衡量标准稳定性能够长时间持续运行不崩溃高效性资源利用率高响应速度快安全性提供良好的安全保护和隔离机制三、Linux 操作系统特点1. 交互方式命令行界面 (CLI)Linux 的主要交互方式高效且灵活图形化界面 (GUI)可选组件如 GNOME、KDE 等无论是图形化界面还是命令行界面其本质上都是一样的 → 而命令行操作更加贴近操作系统2. 设计哲学一切皆文件硬件设备、进程等都以文件形式呈现**比如**显示器、键盘、普通文件……小型、单一目的的程序每个程序只做好一件事通过管道连接程序组合简单程序完成复杂任务凡是能被读写的都可以认为是文件四、Linux 基础命令详解理解Linux指令的本质指令就是可执行程序Linux是由C语言编写的指令是在系统中特定路径下存在的可执行文件指令的执行过程系统会在预定路径如/usr/bin/中查找对应指令自定义指令将自己写的可执行程序放入系统搜索目录就可以直接通过文件名运行查看指令路径使用which [指令]查找指令所在路径指令别名使用alias [name][指令]可以临时重命名指令ls -l ll的原因ll通常是ls -l的预设别名alias用于简化操作。可以使用alias命令查看系统中的所有指令别名。1. 文件目录操作命令ls - 列出目录内容代码语言javascriptAI代码解释ls [选项] [目录或文件]选项-l详细列表显示可简写为ll-a显示所有文件包括隐藏文件-d显示目录本身而非内容-F在每个文件名后附上一个字符说明文件类型组合使用ls -la显示所有文件的详细信息指令是可以携带选项的→ 通过选项获得更加详细的输出通配符的使用*匹配任意字符[文件名].*匹配指定名称的任何扩展名文件*.[文件后缀]匹配指定后缀的任何文件案例代码语言javascriptAI代码解释ls * # 列出所有文件 ls test.* # 列出所有名为test的文件 ls *.c # 列出所有.c后缀的文件文件类型标识d目录文件-普通文件.隐藏文件以点开头的文件*可执行的普通文件使用ls -F时显示/目录使用ls -F时显示l符号链接文件b块设备文件c字符设备文件2. 目录导航命令pwd - 显示当前目录代码语言javascriptAI代码解释pwd # 打印当前工作目录cd - 切换目录代码语言javascriptAI代码解释cd [目录路径]常用路径cd ..返回上级目录cd ~返回用户家目录cd -返回上一个访问的目录cd /返回根目录路径概念绝对路径从根目录(/)开始的完整路径具有唯一性相对路径从当前目录开始的路径随工作目录变化选择原则配置文件、脚本中建议使用绝对路径命令行操作常用相对路径提高效率案例代码语言javascriptAI代码解释cd .. # 返回上级目录相对路径 cd /home/user/linux/ # 使用绝对路径切换 cd ../day02/ # 使用相对路径切换3. 文件操作命令touch - 创建空文件代码语言javascriptAI代码解释touch filename.txt # 创建新文件或更新文件时间戳mkdir - 创建目录代码语言javascriptAI代码解释mkdir [选项] [dirname]选项-p递归创建多级目录案例代码语言javascriptAI代码解释mkdir dirname # 创建单个目录 mkdir -p a/b/c/d # 递归创建多级目录rmdir - 删除空目录代码语言javascriptAI代码解释rmdir [选项] [dirname]选项-p递归删除多级空目录案例代码语言javascriptAI代码解释rmdir dirname # 删除空目录 rmdir -p a/b/c # 递归删除空目录链rm - 删除文件或目录代码语言javascriptAI代码解释rm [选项] [filename/dirname]选项-r递归删除删除目录及其下所有文件-f强制删除不提示-i删除前逐一询问确认案例代码语言javascriptAI代码解释rm filename # 删除文件 rm -r dirname # 递归删除目录及其内容 rm -f filename # 强制删除不提示 rm -i filename # 删除前询问确认注意rm是一个危险命令Linux中没有回收站机制删除后难以恢复4. 文件拷贝与移动命令cp - 拷贝文件/目录 → 目标文件/目录代码语言javascriptAI代码解释cp [选项] [源文件或目录] [目标文件或目录]目标目录下不能有重名文件选项-f强制复制覆盖已存在文件-i覆盖前询问用户-r或-R递归复制目录及其内容可以发现它和rm的选项几乎一模一样案例代码语言javascriptAI代码解释cp file1.txt file2.txt # 拷贝单个文件 cp -r dir1/ dir2/ # 递归拷贝目录 cp file1.txt file2.txt /home/user/dest/ # 拷贝多个文件到目录 cp file1.txt /nonexistent_dir/ # 错误目标目录不存在补充说明当使用cp命令同时指定多个源文件/目录时最后一个参数必须是已存在的目标目录系统会将所有指定的源文件/目录复制到该目标目录中如果最后一个参数不是目录或目录不存在命令将执行失败并报错mv - 剪切并重命名文件或目录代码语言javascriptAI代码解释mv [选项] 源文件或目录 目标文件或目录选项-f强制移动覆盖已存在文件-i覆盖前询问用户案例代码语言javascriptAI代码解释mv file.txt /path/to/destination/ #移动文件 mv oldname.txt newname.txt #重命名文件 mv file.txt /path/to/newname.txt #移动并重命名所有的 mv 操作都可以统一视为**“剪切并重命名”** 重命名文件 → 将该文件剪切并重命名于当前目录mv oldname.txt newname.txt→mv oldname.txt ./newname.txt/5. 文件查看与编辑命令cat - 查看目标文件内容代码语言javascriptAI代码解释cat [选项] [文件名]选项-n给所有行编号-b给非空行编号-s不输出连续空行适用场景适合查看小文件内容案例代码语言javascriptAI代码解释cat # 键盘输入 1则显示器输出 1 cat filename.txt # 查看文件内容当 cat 后面无目标时则默认从输入设备读取数据nano - 简单文本编辑器代码语言javascriptAI代码解释nano filename # 使用nano编辑器快捷键CtrlX退出Y保存N不保存Enter确定输入/输出重定向命令cat - 输入重定向输入重定向从指定文件读取数据代码语言javascriptAI代码解释cat [文件名] # 读取文件内容 cat file.txt # 从文件读取现阶段我们可以近似认为cat filename cat filenameecho - 输出重定向输出重定向清空目标文件后写入新内容追加重定向在目标文件末尾追加内容代码语言javascriptAI代码解释echo [字符串] ( [文件名]) # 打印字符串或写入文件 echo hello file.txt # 覆盖写入 echo world file.txt # 追加写入 //也可以用 printf -- 默认不带 换行符使用输出重定向时 若目标文件不存在则会自动创建一个**类touch 功能**功能输出字符串到标准输出或文件特点默认带 换行符与printf不同echo之后的内容统一当字符串处理 (echo hello→echo hello)所以echo指令默认将信息输向显示器这个文件重定向就是改变其目标文件 —Linux 中一切皆文件指令操作路径的通用性许多指令除了可以用选项修饰外还可以直接操作指定路径下的文件代码语言javascriptAI代码解释# 使用ls查看指定路径的文件 ls [目录]/[文件名] # 查看指定路径下的文件 ls ../[文件名] # 查看上级目录中的文件 # 使用rm删除指定路径的文件 rm [目录]/[文件名] # 删除指定路径下的文件 rm ../[文件名] # 删除上级目录中的文件 # 其他命令同样适用 cat /path/to/file # 查看指定路径文件内容 mkdir /path/to/dir # 在指定路径创建目录more - 分页查看文件代码语言javascriptAI代码解释more [选项] [文件]和cat功能类似但more更适合用于查看大文本文件支持分页显示选项-n对输出的所有行编号操作按回车逐行下翻**不支持上翻**按q退出less - 高级分页查看代码语言javascriptAI代码解释less [参数] [文件]比more更强大支持上下翻页和搜索选项-i忽略搜索时的大小写-N显示每行的行号操作/字符串向下搜索?字符串向上搜索n重复前一个搜索N反向重复前一个搜索q退出head - 查看文件开头代码语言javascriptAI代码解释head [参数] [文件]显示文件开头部分默认显示前10行选项-n行数指定显示的行数tail - 查看文件末尾代码语言javascriptAI代码解释tail [参数] [文件]显示文件末尾部分默认显示后10行选项-n行数指定显示的行数-f循环读取实时监控文件变化常用于查看日志组合使用案例代码语言javascriptAI代码解释# 获取文件的第50行内容 seq 1 100 test # 生成1到100的序列装入test //不用 less 搜索如何获取文件中间部分内容? # 方法1使用临时文件 head -50 test tmp tail -1 tmp # 方法2使用管道 |是 head -50 test | tail -1管道也可以看成一个临时文件用于传输数据 —右侧 → 左侧支持流水线工作6. 文件搜索命令find - 在指定路径下查找文件代码语言javascriptAI代码解释find [目录] [选项] [操作]find命令功能强大提供了相当多的查找条件 ---- 只要有访问权限就能查常用选项-name按照文件名查找文件特点即使系统中含有网络文件系统(NFS)find命令在该文件系统中同样有效遍历大的文件系统可能会花费很长时间建议放在后台执行功能强大支持多种复杂的查找条件组合案例代码语言javascriptAI代码解释// 按文件名匹配 find ~ -name test.c # 从 /home 目录开始查找名为 test.c 的文件 // 按文件后缀匹配 find ~ -name *.c # 从 /home 目录开始查找文件后缀为 .c 的文件 // 在其他路径查找 find /usr/bin -name ls # 从 /usr/bin 目录开始查找名为 ls 的文件注意find命令可能访问磁盘消耗资源较多which - 在指令路径下查找例如/usr/bin……代码语言javascriptAI代码解释which [选项] [命令名]which命令用于查找可执行文件的绝对路径常用选项-a显示所有匹配的路径而不仅仅是第一个特点专门用于查找可执行文件命令只在PATH环境变量指定的路径中查找查找速度快资源消耗少案例代码语言javascriptAI代码解释which ls # 查找ls命令的路径 which grep # 查找grep命令的路径 which -a python # 查找所有名为python的可执行文件路径 which git # 查找git命令的路径whereis - 在系统特定路径下查找代码语言javascriptAI代码解释whereis [选项] [文件名]whereis命令用于查找程序的二进制文件、源代码文件和手册页常用选项-b只查找二进制文件-m只查找手册页文件-s只查找源代码文件特点功能介于which和find之间在标准系统目录中查找如/bin, /usr/bin, /usr/local/bin等可以同时查找二进制文件、源代码和手册页查找速度较快案例代码语言javascriptAI代码解释whereis ls # 查找ls相关的所有文件 whereis -b gcc # 只查找gcc的二进制文件 whereis -m printf # 查找printf的手册页 whereis python # 查找python相关的所有文件总结对比find功能最强大可在任意指定路径深度搜索支持复杂条件which专门用于查找可执行命令只在PATH路径中搜索whereis在系统标准目录中查找程序的二进制、源码和手册页grep - 文本搜索指令代码语言javascriptAI代码解释grep [选项] [目标字符串] [目标文件]grep命令是强大的文本搜索工具在文本文件中搜索字符串并将匹配行打印出来常用选项-i忽略大小写的不同所以大小写视为相同-n顺便输出行号-v反向选择亦即显示出没有’搜寻字符串’内容的那一行案例代码语言javascriptAI代码解释grep hello file.txt # 在file.txt中搜索包含hello的行 grep -i error logfile.log # 忽略大小写搜索error grep -n function script.js # 显示匹配行及行号 grep -v debug config.conf # 显示不包含debug的行7. 压缩与解压命令zip/unzip - ZIP格式压缩解压代码语言javascriptAI代码解释# 压缩 zip 压缩文件.zip 目录或文件 # 解压 unzip 压缩文件.zip [-d 目标目录]常用选项-r递归处理将指定目录下的所有文件和子目录一并处理案例代码语言javascriptAI代码解释zip test2.zip test2/* # 将test2目录压缩 unzip test2.zip -d /tmp # 解压到tmp目录tar - 打包/解包命令代码语言javascriptAI代码解释tar [-cxtzjvf] 文件与目录... [参数]参数-c建立一个压缩文件的参数指令(create的意思)-x解开一个压缩文件的参数指令-t查看tarfile里面的文件-z是否同时具有gzip的属性亦即是否需要用gzip压缩-j是否同时具有bzip2的属性亦即是否需要用bzip2压缩-v压缩的过程中显示文件-f使用档名在f之后要立即接档名-C解压到指定目录