
🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》 《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受!
🎬 博主简介:

Linux 基础指令学到收尾阶段,不少人会卡在 “只会用但不懂原理” 的瓶颈 —— 明明能敲指令完成操作,却不知道指令是怎么被系统接收、执行的。本文正好解决这个问题:一方面帮你梳理基础指令的核心用法与高频场景,把零散的知识点串成实用框架,夯实操作基础;另一方面拆解
Shell作为 “中间桥梁”,如何把指令传递给内核、内核又如何响应的关键逻辑。不用复杂术语,让你轻松从 “会敲指令” 进阶到 “懂指令背后的系统逻辑”。
功能:打包/解包,不打开它,直接看内容 参数组合:(这里需要注意 -f后不能再加别的参数)
tar -czf:静默打包并压缩目录,适合脚本中后台执行(不输出过程信息)tar -xzf:静默解压 .tar.gz 格式的压缩包,快速恢复文件tar -xzf -C:指定解压目录,避免文件散落在当前目录(-C 后接目标路径)tar -cvzf:带详细输出的打包压缩(-v 参数显示每个处理的文件)tar -xvzf:带详细输出的解压(适合确认解压内容是否正确)实际案例:
#===============================================
# 示例 1: 使用 tar -czf 打包并压缩目录(不显示过程)
#===============================================
# 创建测试目录和文件
[root@VM-4-4-centos lesson5]# mkdir -p test_dir
[root@VM-4-4-centos lesson5]# echo "测试文件1" > test_dir/file1.txt
[root@VM-4-4-centos lesson5]# echo "测试文件2" > test_dir/file2.txt
[root@VM-4-4-centos lesson5]# ls ./test_dir
file1.txt file2.txt
# 打包并压缩 test_dir 目录为 archive.tgz(-c:创建 -z:gzip压缩 -f:指定文件名)
[root@VM-4-4-centos lesson5]# tar -czf archive.tgz test_dir
[root@VM-4-4-centos lesson5]# ls
archive.tar.gz test_dir
#==========================================
# 示例 2: 使用 tar -xzf 解压压缩包(不显示过程)
#==========================================
# 先删除原目录
[root@VM-4-4-centos lesson5]# rm -rf test_dir
[root@VM-4-4-centos lesson5]# ls
archive.tgz
# 解压 archive.tgz(-x:解压 -z:识别gzip压缩 -f:指定压缩包)
[root@VM-4-4-centos lesson5]# tar -xzf archive.tgz
[root@VM-4-4-centos lesson5]# ls
archive.tgz test_dir
[root@VM-4-4-centos lesson5]# ls -l test_dir
total 8
-rw-r--r-- 1 root root 14 Oct 16 10:28 file1.txt
-rw-r--r-- 1 root root 14 Oct 16 10:28 file2.txt
#=======================================
# 示例 3: 使用 tar -xzf -C 解压到指定目录
#=======================================
# 创建目标目录
[root@VM-4-4-centos lesson5]# mkdir -p target_dir
[root@VM-4-4-centos lesson5]# ls
archive.tgz target_dir test_dir
# 解压到指定目录 target_dir(-C:指定解压路径)
[root@VM-4-4-centos lesson5]# tar -xzf archive.tgz -C target_dir
[root@VM-4-4-centos lesson5]# ls ./target_dir
test_dir
# ======================================
# 示例 4: 使用 tar -cvzf 打包压缩并显示过程
# ======================================
# -v:显示详细过程(verbose)
[root@VM-4-4-centos lesson5]# tar -cvzf visible__archive.tgz test_dir
test_dir/
test_dir/file2.txt
test_dir/file1.txt
[root@VM-4-4-centos lesson5]# ls
archive.tgz target_dir test_dir visible__archive.tgz
# ===================================
# 示例 5: 使用 tar -xvzf 解压并显示过程
# ===================================
# 清理已经存在的测试文件
[root@VM-4-4-centos lesson5]# rm -rf test_dir
# -v:显示解压的每个文件
[root@VM-4-4-centos lesson5]# tar -xvzf visible__archive.tgz
test_dir/
test_dir/file2.txt
test_dir/file1.txt
[root@VM-4-4-centos lesson5]# ls
archive.tgz target_dir test_dir visible__archive.tgz
#====================================
#补充:在任意 tar 命令末尾加 &,例如:
#====================================
tar -czf big_archive.tar.gz /path/to/large_dir & # 后台打包
tar -xzf big_archive.tar.gz -C /target & # 后台解压
# 所以我们大部分时候也可以不用v功能:scp 基于 SSH 协议实现远程文件拷贝,无需手动登录即可传输,适合服务器间文件同步
scp local_file user@remote_ip:/remote/path,如 scp test.txt Lotso@192.168.1.1:/home/(将本地 test.txt 传到远程 /home 目录)。scp user@remote_ip:/remote/file local_path,如 scp root@192.168.1.1:/etc/hosts ./(将远程 hosts 文件下载到当前目录)。-r 参数递归传输,scp -r local_dir user@remote_ip:/remote/path。细节优势:密码不回显,且本地到远程时要输入的密码是要传给的目标机器的密码。
功能:bc 解决了 Linux 终端默认不支持浮点运算的问题,是简单计算的高效工具
bc 进入交互模式,支持 + - * / 运算,如 2+5 回车返回 7;输入 quit 退出。echo "1+2+3+4+5"|bc 直接返回结果15实际案例:
# 基础使用
[root@VM-4-4-centos lesson5]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2+5
7
2*5
10
5/2
2
5-3
2
quit
#结合管道
[root@VM-4-4-centos lesson5]# echo "1+2+3+4+5"|bc
15面试题:
1.你的计算机体系结构是什么?
2.如何查看你的 Linux 版本?
3.如何查看你的具体系统发行版?
三个问题的答案都在下图中,我用紫色方框框起来了。

热键组合 | 功能描述 |
|---|---|
Ctrl+C | 强制终止当前运行的程序或进程,常用于中断终端中正在执行的命令(如 ping 测试、长时间运行的脚本等)。 |
Ctrl+R | 快速搜索历史指令,输入关键字后会匹配最近执行过的含该关键字的指令,方便快速重复执行或编辑历史命令。 |
Ctrl+D | 等效于 exit 命令,可用于退出当前 Shell 会话(如远程登录后退出服务器),也可在输入模式中表示“输入结束”(如 cat 命令中输入内容后按此键结束输入)。 |
Tab | 自动补全指令或路径,输入指令前几个字符或路径前几个部分时,按此键会自动补全为完整的指令或路径,减少拼写错误,提升操作效率。 |

补充一个关机指令,了解即可:

以下命令作为扩展:
Linux严格意义上说的是⼀个操作系统,我们称之为 “核心(kernel)“ ,但我们⼀般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度:shell的最简单定义,命令行解释器主要包含:
以目前的知识储备,我们可能无法很好的理解,那么接下来博主将通过一个故事带大家感性理解一下先。
故事阶段一:在一个村子里,老王是村长,他的儿子小王事业有成回到家乡。老王催小王找对象,但小王不擅长与女孩交流。于是,老王请来村里有名的媒婆——王婆。王婆到小王家询问他的心意,小王说:“我喜欢隔壁的如花。”王婆便去如花家说媒。如花表示不认识小王,王婆提醒:“他是你小学同学呀。”如花想了想,还是拒绝了。王婆只好回去告诉小王。
阶段一理解:
故事阶段二:小王不死心,请王婆再去争取。王婆走到如花家附近,看见如花正和隔壁的小帅及家人一起吃饭,顿时明白如花已有对象。王婆直接返回,告诉小王此事不可为。
阶段二理解:
故事阶段三:小王仍不放弃,王婆本要拒绝,却遇见老王,碍于情面只好答应。但她担心事情办不成会砸招牌,于是想出一个办法:成立“王婆婚介公司”,招聘实习生去执行任务。成功了是王婆指导有方,失败了也无妨,换一个实习生再去试试就是。
阶段三理解:
✅ 整体总结:
王婆是Bash,媒婆是Shell——Shell是命令行界面的统称,Bash是其中一种具体实现。
通过这个故事,我们形象地理解了 用户-Shell-内核之间 的关系:Shell作为桥梁,既传递指令,也提供保护,还能通过子进程机制增强系统稳定性。内核才是真正的力量中心,而Shell只是我们与它对话的窗口。
阶段一:正常命令执行流程
┌─────────┐ 请求 ┌─────────┐ 传递 ┌─────────┐
│ 小王 │ ────────> │ 王婆 │ ────────> │ 如花 │
│ (用户) │ │ (Shell) │ │ (内核) │
└─────────┘ └─────────┘ └─────────┘
│ │ │
│ "喜欢如花" │ 解析命令 │ 处理请求
│ │ │
│ │ │
│ ←──────────────── ──────────────────── │
│ 反馈结果(拒绝) │关键理解:用户不直接操作内核,需要通过Shell中介
阶段二:Shell拦截非法请求
┌─────────┐ 再次请求 ┌─────────┐
│ 小王 │ ────────> │ 王婆 │
│ (用户) │ │ (Shell) │
└─────────┘ └─────────┘
│
│ 检测到异常情况
│ (如花已有对象)
│
┌─────┴─────┐
│ 拒绝执行 │
│ 保护内核 │
└─────┬─────┘
│
│ ←────────────────── │
│ 直接返回拒绝 │关键理解:Shell能在传递前拦截危险请求,保护系统
阶段三:创建子进程执行任务
┌─────────┐ 坚持请求 ┌─────────┐
│ 小王 │ ────────> │ 王婆 │
│ (用户) │ │ (Shell) │
└─────────┘ └─────────┘
│
│ 创建子进程
┌───────────┴───────────┐
│ │
┌─────┐ ┌─────┐
│实习生│ │实习生│
│(子进│ │(子进│
│ 程) │ │ 程) │
└─────┘ └─────┘
│ │
│ 尝试执行 │ 备份方案
│ │
┌───┴───┐ ┌───┴───┐
│成功/失败│ │成功/失败│
└───┬───┘ └───┬───┘
└─────────┬─────────────┘
│
│ ←────────────── │
│ 汇总结果 │关键理解:通过子进程机制,Shell本身不会崩溃
整体架构对比
现实世界比喻: Linux系统对应:
┌─────────────────┐ ┌─────────────────┐
│ 小王 │ │ 用户 │
│ (不擅长直接交流) │ │ (不直接操作内核) │
└────────┬────────┘ └────────┬────────┘
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ 王婆 │ │ Shell │
│ (沟通中介) │ │ (命令解释器) │
└────────┬────────┘ └────────┬────────┘
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ 如花 │ │ 内核 │
│ (最终决策者) │ │ (核心资源管理) │
└─────────────────┘ └─────────────────┘🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点:
👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长
❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量
⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用
💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑
🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解
技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标!结语:基础指令收尾不是学习的结束,而是带着原理认知深入 Linux 的开始。本文总结的指令要点,能帮你后续用指令时更精准高效;拆解的 Shell 与内核交互逻辑,也让你不再对 “指令生效” 一知半解。后续操作 Linux 时,试着结合这些认知去选择指令、排查问题,不仅能少踩很多误区,还能更快找到优化方向,让 Linux 技能稳步提升。
✨把这些内容吃透超牛的!放松下吧✨ ʕ˘ᴥ˘ʔ づきらど