命令字典 :Linux (Ubuntu) 核心命令全景讲解

发布时间:2026/8/5 10:09:47
命令字典 :Linux (Ubuntu) 核心命令全景讲解 文章目录一、 文件与目录操作1. pwdPrint Working Directory - 打印当前工作目录2. cdChange Directory - 切换目录3. lsList - 列出目录内容4. touch创建空文件 / 更新时间戳5. mkdirMake Directory - 创建目录6. cpCopy - 复制文件或目录7. mvMove - 移动文件 / 重命名8. rmRemove - 删除文件或目录二、 文件查看与内容搜索1. catConcatenate - 查看与拼接文件2. less分页交互式查看文件3. head 与 tail查看文件头部与尾部4. grepGlobal Regular Expression Print - 文本内容过滤5. find查找文件或目录三、 权限与用户管理1. chmodChange Mode - 修改文件或目录权限2. chownChange Owner - 修改文件所有者3. sudoSuperuser Do - 以管理员身份执行命令4. suSwitch User - 切换用户四、 进程与系统状态监控1. top / htop系统资源实时监控2. psProcess Status - 进程状态快照3. kill / killall终止进程五、 磁盘与内存管理1. dfDisk Free - 查看整块磁盘空间使用情况2. duDisk Usage - 统计具体文件或文件夹的大小3. free查看内存使用情况六、 网络排查与下载1. ping测试网络连通性2. ip addr查看本机 IP 地址与网卡信息3. netstat / ss查看端口占用与连接状态4. curl命令行下的浏览器 / 发起网络请求5. wget从网络下载文件七、 归档与压缩1. tarTape Archive - 归档与解压缩2. zip / unzipZIP 格式压缩与解压一、 文件与目录操作在 Linux 中一切皆文件。对目录文件夹和文件的灵活操作是所有命令行使用的基本功。1.pwdPrint Working Directory - 打印当前工作目录当你刚登录系统或切了好几个文件夹懵掉的时候用它来确认自己“人在哪里”。pwd示例输出/home/ubuntu实用场景写配置文件或者写 Shell 脚本需要写死绝对路径时先用pwd查一下直接复制。2.cdChange Directory - 切换目录在不同的文件夹之间导航穿梭。cd /var/log/切到指定绝对路径。cd ..切到上一级目录。cd ../..连续切到上两级目录。cd ~或直接cd快速回到当前用户的家目录即/home/用户名。cd -切回上一次所在的目录经常在两个深层目录来回切换时极其高效。3.lsList - 列出目录内容用来查看文件夹里有什么文件以及这些文件的属性。ls只列出普通文件和文件夹的名字。ls -l以长格式Long显示文件的详细信息包括文件类型、权限、硬链接数、所有者、所属组、文件大小、最后修改时间、文件名。ls -a显示所有All文件包含以.开头的隐藏文件如.bashrc。ls -h配合-l使用把文件大小从字节转为人类易读Human-readable的格式比如4.0K、12M、2G。Ubuntu 必背高频组合ls-lah一口气把当前目录下的隐藏文件、常规文件及其权限大小一网打尽。4.touch创建空文件 / 更新时间戳用来快速创建一个干净的新文件。touch main.cpp如果main.cpp不存在直接创建一个 0 字节的空文件。touch a.txt b.txt c.txt一次性创建多个空文件。touch main.cpp如果main.cpp已经存在它不会清空文件而是更新这个文件的“最后修改时间”。5.mkdirMake Directory - 创建目录用来新建文件夹。mkdir my_project在当前目录下创建一个名为my_project的文件夹。mkdir -p src/core/network高频p代表 Parent。递归创建多层目录。即使src和core都不存在系统也会帮你把这一串子目录全部自动建好不会报错。6.cpCopy - 复制文件或目录用来把文件或文件夹备份/复制到别的地方。cp config.json config.json.bak复制当前文件并重命名到当前目录下常用于修改配置文件前做个备份。cp main.cpp ./src/把main.cpp复制到当前目录下的src文件夹中。cp -r project/ project_backup/高频r代表 Recursive递归。复制整个文件夹及其里面的所有子文件和子文件夹时必须加-r否则会报错提示“忽略目录”。7.mvMove - 移动文件 / 重命名Linux 里没有单独的“重命名”命令移动和重命名都靠mv。重命名在同一个目录下移动mvtest.txt demo.txt移动文件目标路径是一个文件夹mvdemo.txt /tmp/移动并重命名mvdemo.txt /tmp/new_demo.txt8.rmRemove - 删除文件或目录Linux 的命令行没有回收站一旦使用rm删除数据恢复极度困难必须谨慎。rm test.txt删除单个文件。rm -r my_dir/递归删除整个文件夹及其内部所有内容。rm -f test.txtf代表 Force强制。即使文件不存在或受保护也不再向用户弹出确认提示直接清掉。⚠️避坑警告rm-rfproject/这是开发中最常用的“强制清空整个文件夹”的命令但千万不要在根目录或带通配符路径时乱加空格如误写成rm -rf / project否则会导致系统瘫痪。二、 文件查看与内容搜索用于快速查看文本、查阅日志或者在大量代码文件中精准定位信息。1.catConcatenate - 查看与拼接文件当你需要快速查看短小的文本或者把几个文件拼到一起时使用。catconfig.json示例输出{server: 127.0.0.1, port: 3306}实用场景修改完项目的配置文件后快速扫一眼确认里面的参数改对了没有。详细效果把当前目录下的config.json文件里的所有文字内容一次性全部打印在终端屏幕上。cat -n main.cpp带选项-nNumber。详细效果把main.cpp的所有内容打印在屏幕上并在最左边自动加上行号方便你跟别人核对代码报错在第几行。cat a.txt b.txt c.txt带重定向符。详细效果把a.txt的内容和b.txt的内容按顺序拼在一起然后写入并覆盖当前目录下的c.txt文件。⚠️避坑警告千万不要用cat去看几百兆甚至上 G 的日志文件终端会瞬间被海量文字疯狂刷屏卡死。看大文件一定要用下面的less命令。2.less分页交互式查看文件查看大文件的首选工具。它不会一次性把整个文件加载进内存对系统性能非常友好。lessapp.log示例输出屏幕清屏进入全屏阅读模式显示文件开头内容左下角显示文件名或冒号实用场景C 服务程序崩溃了你需要去翻看巨大的运行日志文件排查段错误Segmentation fault原因。详细效果用全屏阅读器打开app.log日志文件。你可以按空格键向下翻一页按b向上翻一页输入/ERROR按回车查找“ERROR”关键字看完后按q退出阅读器回到普通的命令行界面。3.head与tail查看文件头部与尾部当你不想看整个文件只想看最前面几行或者最新产生的几行日志时使用。head -n 20 server.log带选项-n指定行数。详细效果只在屏幕上打印出server.log文件最开头从第1行到第20行的内容后面的内容全部忽略。tail -n 50 server.log同样带选项-n。详细效果只在屏幕上打印出server.log文件最末尾倒数第50行到最后1行的内容。Ubuntu 必背高频组合tail-fserver.log实用场景刚启动了后台服务想实时盯着看看有没有新的日志输出。详细效果选项-f代表 Follow。屏幕显示出日志最后几行后会卡在当前界面进入“实时监听”状态。只要后台服务程序向日志写入新数据屏幕就会实时滚动刷出最新内容直到你按Ctrl C强制终止。4.grepGlobal Regular Expression Print - 文本内容过滤Linux 下最强大的文本搜索工具专门在文件或输出结果里按关键字寻找“文字内容”。grep ERROR app.log基础过滤。详细效果把app.log文件里所有包含“ERROR”这几个字母的行整行抽取出来一条条打印在屏幕上不包含的行全部剔除。grep -i error app.log带选项-iIgnore case。详细效果忽略字母大小写把app.log里包含error、Error、ERROR等所有形态的行全部找出来打印。grep -v DEBUG app.log带选项-vInvert match。详细效果反向选择把app.log里所有不包含“DEBUG”的行全部打印出来排查问题时非常适合用来屏蔽满屏的无用调试信息。grep -rn main ./src/(高频)带选项-rRecursive 递归和-nNumber 行号。详细效果深入递归搜索src文件夹及其所有子文件夹把里面所有写了main的文件路径、具体所在的行号以及那一行的代码内容全部显示在屏幕上。Ubuntu 必背高频组合ps-ef|greppython实用场景检查某个 Python 测试脚本或者后台任务到底有没有在成功运行。详细效果把当前系统正在运行的所有进程列表通过管道符|交给grep进行二次过滤最后只在屏幕上显示出进程名字里带有“python”的那几条进程信息。5.find查找文件或目录根据文件名、文件大小、修改时间等“文件属性”在整个磁盘目录里翻找目标文件。与grep不同find找的是“文件本身”而不是文件里的“文字内容”。find /var/log -name *.log带选项-name按名字查找。详细效果从/var/log目录开始深度搜索把里面所有以.log结尾的文件的绝对路径全部列在屏幕上。find . -type f带选项-type按类型查找f代表普通文件。详细效果把当前目录以及所有子目录下的所有“普通文件”的路径全部找出来排除了文件夹、软链接等。find . -mtime -1带选项-mtime按修改时间。详细效果扫描当前目录及子目录把在最近 24 小时1 天内被修改过或写入过内容的所有文件路径全部筛选出来。Ubuntu 必背高频组合find.-size100M实用场景Linux 环境磁盘突然报警说空间快满了你需要快速揪出是哪些大文件比如遗留的 core dump 调试文件或庞大的数据库备份占用了空间。详细效果选项-size按大小查找。扫描当前目录及所有子目录把文件大小超过 100 兆100MB的所有文件路径全部找出来并打印在屏幕上。三、 权限与用户管理Linux 是一个多任务、多用户系统。通过严格的权限机制系统能够控制每个用户对文件和目录的读Read、写Write、执行Execute权限这是保障服务器数据安全的第一道防线。1.chmodChange Mode - 修改文件或目录权限当你编译完程序或者写完脚本发现运行不了屏幕上弹出“Permission denied权限拒绝”时使用。chmodx build.sh实用场景你在 GitHub 上 clone 了一套 C 项目源码准备跑里面的build.sh脚本来自动化编译链接系统却不让你运行。用这个命令给它“放行”。详细效果带选项xeXecute。给当前目录下的build.sh文件直接加上“可执行”权限让系统把它当成一个可以跑的程序而不是普通的死文本。chmod 755 server使用数字表示法。详细效果把编译出来的server核心程序权限设置为所有者拥有读、写、执行全部权限7421而同组用户和其他人只有读取和执行权限541防止别人乱改你的二进制文件。⚠️避坑警告chmod-R777my_project/详细效果带选项-RRecursive 递归。把整个文件夹及里面所有代码和数据的权限全部彻底开放任何人都能读、写、执行777。警告很多新手在遇到写入 SQLite 数据库报错或权限问题时喜欢无脑使用chmod -R 777。在本地自己做作业没关系但如果未来把项目部署在公网云服务器上这是极度危险的动作等于把家门完全敞开别人甚至可以轻易植入恶意脚本到你的代码库里。2.chownChange Owner - 修改文件所有者用来把文件或文件夹的所有权从一个系统用户转交给另一个用户。sudochownubuntu:ubuntu database.db实用场景你的 C 学生学术跟踪后台程序在使用 SQLite 引擎进行自动备份时发现无法写入目标文件。你用ls -l一看发现那个备份文件的所有者变成了root你需要把所有权拿回到你当前登录的ubuntu用户手里。详细效果把当前目录下database.db文件的“所有者”修改为ubuntu用户冒号后面的部分把“所属组”也一并改成了ubuntu组。Ubuntu 必背高频组合sudochown-Rubuntu:ubuntu ./src/详细效果带选项-RRecursive 递归。把当前src目录以及里面所有的子文件、子文件夹的所有者和所属组一口气全部转交给ubuntu用户专治各种大批量“文件改不动、存不进”的痛点。3.sudoSuperuser Do - 以管理员身份执行命令Ubuntu 系统的核心安全机制。系统默认不让你直接用神级账户 root 登录做事遇到需要修改系统配置的操作时让你“临时借用”一下管理员的身份。sudoaptupdate示例输出[sudo] password for ubuntu:注意此时在键盘上输入密码屏幕上是不会显示任何星号或字符的敲完直接回车即可实用场景刚开通一台云服务器准备搭建开发环境需要通过 apt 包管理器安装 MySQL 数据库服务端或者 gcc 编译器依赖时普通用户无权往系统级目录写入软件必须临时提权。详细效果以系统超级管理员root的身份运行软件源更新命令。执行前系统会强制要求你输入当前普通用户的密码验证通过后才临时放行这一条指令。sudo -i带选项-iinteractive 交互式。详细效果直接完整切换到超级管理员root用户的环境和 Shell 终端终端左侧的提示符会从普通的$变成霸气的#。在里面执行任何命令都不再受限也不用每次加sudo搞定配置后输入exit退回普通用户。4.suSwitch User - 切换用户用于在 Linux 系统的不同账户之间自由来回切换。su- test_user实用场景在开发时为了服务器安全你专门建了一个权限极低的test_user用户来跑沙箱里的测试代码。写完调度逻辑后你需要切到这个账户下看看能不能正常跑通。详细效果带选项-连同环境变量一起切换。从当前用户直接切换到名为test_user的系统账户下并且系统会把 PATH 路径等环境变量也完全切换成该账户的独立配置。⚠️避坑警告在 CentOS 等发行版中很多人习惯直接用su - root切换到超级管理员。但在 Ubuntu 系统中默认情况下是没有给 root 用户设置初始密码的所以直接敲su - root往往会一直提示“认证失败”。在 Ubuntu 下如果想长时间停留在 root 身份做事请务必习惯使用上面的sudo -i命令。四、 进程与系统状态监控当你感觉服务器变卡了或者需要排查你自己写的后台服务有没有在偷偷漏内存、死循环时这部分命令就是你的听诊器。1.top/htop系统资源实时监控动态显示系统中各个进程的资源占用情况就像是 Linux 里的“任务管理器”。htop示例输出进入一个动态刷新的全屏界面最上方是 CPU 各个核心和内存的彩色占用条下方是不断跳动的进程列表实用场景你在跑大批量测试数据或者压测你的一些模块时系统突然风扇狂转、打字卡顿。你用这个命令赶紧揪出是哪个核心被跑满了。详细效果打开一个彩色的实时系统监控界面。界面支持鼠标点击带有极其直观的资源占用进度条。你可以按键盘的上下键选中某个正在飙升的进程然后直接按快捷键F9把它杀掉排查完后按q退出。补充说明htop是进阶版如果提示找不到命令可以用sudo apt install htop安装。系统自带的top命令效果类似只是纯黑白且不支持鼠标交互。2.psProcess Status - 进程状态快照查看当前系统在某一瞬间正在运行的进程信息。如果说htop是录像那ps就是给系统拍个“快照”。psaux实用场景检查系统中到底跑了哪些后台程序或者看看某个进程是不是变成了占用资源的“僵尸”。详细效果带选项a所有终端的进程、u以用户为主的格式显示、x包含没有控制终端的后台进程。这三个选项组合在一起会一口气列出系统里所有用户、所有正在运行的全部进程详细信息包含每个进程的 PID 编号、CPU占用率、内存占用率、启动时间、执行的命令全拼等。Ubuntu 必背高频组合psaux|grepjudge_worker实用场景你在云端部署了多个判题工作节点想确认名字叫judge_worker的那个进程是不是还在正常活着或者有没有意外崩溃退出。详细效果先用ps aux给系统所有进程拍个全家福快照然后通过管道符|交给grep进行字符串过滤瞬间只把名字里带有“judge_worker”的那几条进程信息单独抽出来显示在屏幕上。3.kill/killall终止进程当程序卡死、陷入死循环或者你需要平滑停止某个后台服务时用来向指定的进程发送终止信号。kill1234实用场景你的网络 Socket 程序出现了死锁终端里按Ctrl C也退不出来。你在另一个窗口用ps aux查到了它的进程号PID是1234然后用这个命令把它关掉。详细效果优雅地通知进程 IDPID为1234的程序关闭。程序收到信号后通常会先按照你写的析构函数清理占用的内存和端口然后再体面地退出。Ubuntu 必背高频组合kill-91234详细效果带选项-9SIGKILL 强制终止信号。相当于直接拔电源对 PID 为1234的进程直接秒杀不管它在干什么操作系统会立刻强行收回它占用的所有资源并让它消失。⚠️避坑警告不要一上来就无脑用kill -9特别是涉及数据库写入的程序如果正在执行写操作时被-9强制杀死极有可能导致数据库文件直接损坏Database corruption。正确做法先用普通的kill给程序自己善后的机会实在卡死关不掉最后再上kill -9。如果有很多个同名进程比如跑了5个 python 脚本可以使用killall python3一次性按名字全部杀掉省去挨个查 PID 的麻烦。五、 磁盘与内存管理你的云服务器突然连不上数据库了或者后台程序莫名其妙被系统强制杀掉很多时候不是代码出了 Bug而是服务器的磁盘被日志撑爆了或者内存被吃光了OOM。这部分的命令能帮你快速给系统的硬件资源“查体”。1.dfDisk Free - 查看整块磁盘空间使用情况当你怀疑服务器硬盘是不是满了的时候用它来宏观查看系统的挂载硬盘还有多少剩余空间。df-h示例输出/dev/sda1 50G 45G 2.5G 95% /系统盘 50G已经用了 95%实用场景你的学生学术跟踪模块里的 SQLite 数据库突然报出写入失败的异常或者 C 编译时突然提示“设备上没有空间”。用这个命令一眼就能看出是不是磁盘容量见底了。详细效果带选项-hHuman-readable。以人类易读的格式如 GB、MB而不是一长串字节数字列出当前系统所有挂载硬盘的总容量、已用空间、可用空间和使用百分比。2.duDisk Usage - 统计具体文件或文件夹的大小用df发现磁盘快满了之后你需要像个侦探一样去各个目录里揪出到底是谁占用了这么大的空间这时候就要用到du。du-sh./project_backup/实用场景你想知道之前做的一个游戏项目备份文件夹到底有多大以评估把它打包下载到本地需要花多长时间。详细效果带选项-sSummarize 汇总和-hHuman-readable。它不会把你文件夹里成百上千个代码文件的大小全部刷屏列出来而是直接在屏幕上输出这个project_backup文件夹加起来的总大小例如2.4G ./project_backup/。Ubuntu 必背高频组合du-h--max-depth1/var/log/实用场景找“吃硬盘大户”。当/var/log目录占用过高时你想知道它下面到底是哪个子文件夹比如是 nginx 还是 mysql 的日志占用的空间最大。详细效果选项--max-depth1表示只向下深入一层目录。它会把/var/log目录下的所有第一级子文件夹的各自总大小清晰地列出来方便你顺藤摸瓜找到巨型文件。3.free查看内存使用情况排查系统卡顿、内存泄漏或者评估你的程序到底吃掉了多少物理内存。free-h示例输出total used free shared buff/cache available Mem: 7.8G 2.1G 1.5G 100M 4.2G 5.4G Swap: 2.0G 0B 2.0G实用场景你写的某个系统并发跑了几十个判题沙箱服务器突然变得奇卡无比。你需要看看是不是系统的物理内存被榨干了。详细效果带选项-hHuman-readable。直观地打印出系统当前的物理总内存total、已经被程序占用的内存used、完全空闲的内存free、用于提升磁盘读写速度的缓存区buff/cache以及你当前还能用的可用内存available。同时还会显示交换分区Swap即虚拟内存的使用情况。⚠️避坑警告很多同学看到free列的数值很少就惊呼“我的内存被吃光了”。注意在 Linux 系统中内存的设计哲学是“不用白不用”。系统会把大量空闲内存拿来做buff/cache文件缓存以加速磁盘读取。所以真正评估你还能不能开新程序的指标不是看 free而是看 available可用内存。只要 available 还很充足你的服务器就依然健康。六、 网络排查与下载当你的云服务器突然连不上外网或者你刚写的 C 网络服务启动时报错“端口已被占用”时这部分命令就是你排查网络通信问题的核心工具箱。1.ping测试网络连通性最基础的探测工具用来判断两台计算机之间的网络到底通不通以及延迟有多高。pingbaidu.com示例输出64 bytes from 39.156.66.10: icmp_seq1 ttl50 time12.5 ms实用场景你在云服务器上用apt安装新环境失败怀疑是服务器断网了。用这个命令向百度发个包看看能不能收到回应。详细效果向目标网址或 IP 持续发送 ICMP 探测数据包并在屏幕上实时打印出每次通信的延迟时间time和目标 IP。⚠️避坑警告在 Windows 系统的cmd里ping默认发 4 个包就会自动停下。但在 Ubuntu 下ping默认是无限发送的屏幕会一直疯狂滚动你必须按Ctrl C才能强制停止。如果你是在写自动化 Shell 脚本记得加上-c选项例如ping -c 4 baidu.com让它只发 4 次就自己结束。2.ip addr查看本机 IP 地址与网卡信息当你需要知道自己服务器的内网或外网 IP 地址时使用。ipaddr实用场景你在本地的 Ubuntu 虚拟机里跑起了你的宠物对战小游戏后端服务器现在想用 Windows 宿主机上的客户端连过去调试你需要查一下当前虚拟机分配到的局域网 IP 是多少。详细效果打印出系统所有网卡比如局域网网卡eth0或者本机环回网卡lo的详细物理信息和网络地址。你只需要去茫茫字符中寻找inet后面的那一串数字例如192.168.1.100那就是你要找的 IP 地址。补充说明老教程里常教大家用ifconfig但在较新的 Ubuntu 系统中ifconfig默认已不自带官方推荐使用更底层强大的ip addr或者简写为ip a。3.netstat/ss查看端口占用与连接状态排查端口冲突的终极杀器。sudonetstat-tulnp实用场景你用 C 写了一个监听8080端口的判题服务器程序一运行就崩溃并报错 “Bind failed: Address already in use”端口被占用。你需要揪出到底是哪个“内鬼”程序已经提前霸占了你的8080端口。详细效果带选项-t(TCP协议)、-u(UDP协议)、-l(Listening 监听状态)、-n(Numeric 显示数字端口号而不是服务名)、-p(Program 显示对应的进程号 PID 和程序名)。它会将当前系统所有正在静静等待连接的网络端口以及背后占用它的那个程序全列在一张表里。Ubuntu 必背高频组合sudonetstat-tulnp|grep8080详细效果把所有网络端口状态交给grep过滤瞬间揪出占用8080端口的进程号PID。找到 PID 后你就可以果断用上一节学到的kill -9把这个冲突的进程干掉然后再重新启动你自己的程序。注如果系统提示找不到netstat可以用更现代的命令sudo ss -tulnp效果和参数一模一样且速度更快。4.curl命令行下的浏览器 / 发起网络请求程序员用来测试 API 接口的神器不需要打开真正的浏览器就能发 HTTP 请求。curlhttp://127.0.0.1:8080/api/status实用场景你的后端服务刚写好跑起来但前端的 Mockplus 原型页面还没对接上。你想快速测一下自己写的这个接口能不能正常返回 JSON 数据。详细效果在命令行里直接模拟浏览器的行为向指定的 URL 发起 GET 请求并把对方服务器返回的网页源码或 JSON 数据直接打印在终端屏幕上。5.wget从网络下载文件服务器环境下的核心下载工具。wgethttps://example.com/source_code.tar.gz实用场景你准备在云服务器上部署某个开源的中间件环境需要把对方官网上的源码压缩包直接拉取到当前 Linux 目录里。详细效果直接从给定的 URL 网址下载文件原封不动地保存在你执行命令的当前目录下。屏幕底部会带有一个简易的进度条实时显示下载速度、已下载大小和预计剩余时间。Ubuntu 必背高频组合wget-Omy_app.tar.gz https://example.com/v1.2.3_release_final_linux_amd64.tar.gz详细效果带选项-O大写的 OOutput document。网上有的下载链接名字极其冗长复杂加上这个选项可以在下载的同时自动把文件重命名为你想要的简短名字如my_app.tar.gz方便后续解压操作。七、 归档与压缩在服务器上备份代码、跨平台传输项目或者安装开源的中间件环境时经常需要和各种压缩包打交道。掌握好打包与解包能让你在网络传输时省下大量的时间和带宽。1.tarTape Archive - 归档与解压缩Linux 世界里的“解压缩”绝对主力。你在网上下载的绝大多数开源 Linux 程序源代码基本全都是.tar.gz格式。tar-czvfproject_backup.tar.gz ./src/示例输出屏幕上会飞速滚动列出./src/目录下被打包进去的每一个子文件夹和代码文件。实用场景你的项目核心调度模块终于调通了第一版准备把整个工程文件夹完整打包备份下来防止后续改代码时把环境搞崩。详细效果带选项-c(Create 创建新归档)、-z(通过 gzip 算法压缩减小体积)、-v(Verbose 啰嗦模式让你看到压缩过程)、-f(File 指定输出的文件名)。它会把当前目录下的src文件夹里所有的源码和目录结构全部打包并压缩成一个体积更小的project_backup.tar.gz文件。Ubuntu 必背高频组合tar-xzvfsource_code.tar.gz-C/opt/实用场景你在系统里下载了一个编译环境的压缩包准备解压出来正式使用。详细效果带选项-x(eXtract 解压) 和大写的-C(Change directory 指定解压路径)。把source_code.tar.gz压缩包里的所有文件原封不动地解压出来并且直接扔到/opt/这个目录里而不是解压在当前所在的文件夹。⚠️避坑警告-f选项必须放在所有选项的最后一位且它后面必须紧跟着你压缩包的名字千万别写成tar -cvfz archive.tar.gz系统会把z当成你要创建的文件名而报错。拿到一个来历不明的.tar.gz解压前最好先用tar -tzvf xxx.tar.gz-t表示只查看不解压看一眼它的内部结构。如果打包的人没有把文件装在一个顶层文件夹里你一解压成百上千个代码文件会直接散落在你当前的目录引发难以清理的“灾难”。2.zip/unzipZIP 格式压缩与解压全世界最通用、最跨平台的文件压缩格式。如果你需要在你的 Windows 宿主机和 Ubuntu 服务器之间频繁互传文件用 ZIP 格式最省心。unzipresources.zip实用场景为了备战六级考试你在 Windows 本地整理了一包“英语六级核心词汇.zip”笔记或者打包了一批你在做宠物对战小游戏时的美术贴图传到服务器上后你需要把它解开供程序读取。详细效果自动把当前目录下的resources.zip解压到当前文件夹下。如果当前目录已经有同名文件它会逐一停下来询问你是否要覆盖Replace。Ubuntu 必背高频组合zip-rmy_code.zip ./core_module/实用场景把云服务器上跑在 CentOS 或 Ubuntu 里的最新代码打包准备下载回 Windows 本地对照着 Mockplus 里的产品交互原型图继续修改逻辑。详细效果带选项-r(Recursive 递归)。把整个core_module文件夹连同里面的所有深层子文件一并压缩成跨平台完美兼容的my_code.zip。⚠️避坑警告很多 Ubuntu 系统默认没有预装 ZIP 相关的工具。如果你输入命令后提示Command unzip not found不要慌按照大纲第三部分学过的方法直接执行sudo apt install zip unzip安装一下即可。