适用人群: 操作系统小白、刚装好 Ubuntu 想探索的用户
核心理念: 操作系统是硬件的大管家,而你是管家的老板。
🟢 第一阶段:基本生存技能 (GUI & 命令行)
在 Linux 里,你有两种活法:一种像用 Windows 一样点鼠标,一种像黑客一样敲代码。
1. 必背快捷键
-
打开终端 (Terminal):
Ctrl+Alt+T(这是你的魔法入口,记住它!) -
粘贴命令: 在终端里通常是
Ctrl+Shift+V(而不是 Ctrl+V)。
2. 走路与看路 (文件操作)
把终端想象成一个漆黑的房间,你需要用命令来照亮和移动。
| 你的动作 | 对应的命令 | 记忆口诀/解释 |
|---|---|---|
| 我在哪? | pwd |
P rint W orking Directory (打印当前位置) |
| 有什么? | ls |
L is t (列出清单)。想看详细信息?用 ls -l。 |
| 进房间 | cd <文件夹名> |
C hange Directory (改变目录)。 |
| 回家 | cd |
不带参数直接回你的家目录 (/home/你的名字)。 |
| 回上一级 | cd .. |
.. 代表上一级(父目录)。 |
| 建新房 | mkdir <名字> |
M ak e Directory (制造目录)。 |
| 造文件 | touch <名字> |
摸一下(Touch),无中生有变出一个空文件。 |
3. 进货 (安装软件)
Ubuntu 有个巨大的仓库(软件源),你只需要告诉管家(APT)去拿什么。
-
第一步(必须做):更新购物清单
sudo apt update
(告诉系统去看看网上最新的软件列表,不然它找不到最新的软件)
-
第二步:安装软件
sudo apt install <软件名>
(例如:sudo apt install htop)
-
遇到锁 (Lock) 怎么办?
如果提示 /var/lib/dpkg/lock 被锁,说明后台正在自动更新。去喝口水等一分钟,或者重启电脑,通常就能解决。
🟡 第二阶段:掌控权力的游戏 (权限系统)
Linux 最看重安全。每个文件都有个"身份证",决定了谁能看、谁能改。
1. 读懂 ls -l 的咒语
当你输入 ls -l,你会看到类似 -rwxr-xr-- 的东西:
-
r (Read 读): 值为 4。能看文件内容 / 能看文件夹里有什么。
-
w (Write 写): 值为 2。能修改文件 / 能在文件夹里删改文件。
-
x (Execute 执行): 值为 1。
-
对文件: 是个程序,可以运行。
-
对文件夹: 是把钥匙,可以进入 (
cd) 这个文件夹。
-
2. 夺回权限 (chmod)
你是老板,你可以修改身份证。我们通常用数字加法来控制。
-
公式:
r(4) + w(2) + x(1) = 7(满血权限) -
命令:
chmod <数字> <文件名> -
常用场景:
-
chmod 700 my_script.sh-> 只有我能用 (rwx),别人无权。 -
chmod 777 my_file-> 危险! 所有人都能随便改(慎用)。 -
chmod +x my_script.sh-> 快速赋予"执行"权限,让脚本能跑起来。
-
🔴 第三阶段:硬核内核原理 (进程与线程)
这是你作为"未来的操作系统专家"必须要懂的,也是解决你之前困惑的关键。
1. 影分身之术:fork() 与 进程
当你在代码里写 pid_t pid = fork(); 时:
-
发生了什么? 操作系统把当前的程序(父进程)完全克隆了一份(子进程)。
-
怎么区分?
-
父进程手里拿到的
pid是 孩子的身份证号(正整数)。 -
子进程手里拿到的
pid是 0。
-
-
同步 (
wait):- 为了不让孩子变成"孤儿",父进程通常会用
wait()或waitpid()停下来,等待子进程干完活再一起收工。这叫同步。
- 为了不让孩子变成"孤儿",父进程通常会用
2. 盘丝洞之术:线程与并发
当你使用 pthread_create 创建线程时:
-
发生了什么? 并没有克隆整个房间,而是多请了几个人(线程)在这个房间里一起干活。他们共用内存。
-
为什么打印顺序是乱的?(你的困惑点)
-
并发 (Concurrency): CPU 就像一个千手观音,轮流处理不同的线程,速度快到让你觉得它们是同时在做。
-
调度器 (Scheduler): 操作系统决定下一毫秒谁干活。它可能刚让主线程"创建"完老三,马上就切过去让老二"说话"。
-
缓冲 (Buffering):
printf打印的内容可能会先暂存在缓冲区里,像排队打印一样。 -
结论: 在多线程世界里,"代码写的顺序"不等于"屏幕显示的顺序" 。除非你用
join强制排队,否则它们就是自由奔跑的。
-
💡 最后的生存锦囊
-
忘记命令了怎么办?
在命令后面加 --help,例如 ls --help,系统会把说明书拍在你脸上。
-
只有一行代码能拯救卡死的终端:
Ctrl + C。这是"停止当前程序"的通用指令。
-
不要害怕犯错:
除了 sudo rm -rf /(强制删除根目录,千万别试)之外,大部分错误都是可以修复的。
现在,去终端里敲下你的第一个 ls,开始探索吧!祝你在 Linux 的世界里玩得开心! 🚀