1. 为什么选择自学Linux?
三周前我工位对面的同事突然开始用黑底绿字的终端操作电脑,手指在键盘上飞舞的样子像极了电影里的黑客。那一刻我才意识到,自己作为所谓的"IT从业者",居然连最基本的Linux命令都不熟悉。于是第二天就买了本《鸟哥的Linux私房菜》,开始了这段自学之旅。
今天是我系统学习Linux的第三天,已经能明显感受到这个系统的魅力所在。与Windows不同,Linux更像是一套精密的机械装置——每个命令都是特定的工具,组合起来就能完成各种复杂的操作。比如用grep过滤日志时,那种精准定位问题的快感,是在图形界面里永远体验不到的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 第三天学习内容规划
2.1 文件系统深入探索
昨天已经掌握了基本的ls、cd、pwd等命令,今天要重点攻克文件权限和用户管理。Linux最让我惊讶的是它对权限的精细控制——每个文件都有明确的归属和操作权限。通过chmod修改权限时,数字模式(755)和符号模式(u+x)的转换一度让我困惑,直到我画了张权限位对应表:
| 权限位 | 数字值 | 说明 |
|---|---|---|
| r | 4 | 读 |
| w | 2 | 写 |
| x | 1 | 执行 |
提示:记住"421"这个数字序列,它对应着rwx三种权限的基础数值,相加就能得到常见的权限组合。
2.2 用户与组管理实操
创建新用户时,useradd和adduser的区别让我踩了第一个坑。前者是底层工具需要手动配置更多参数,后者则是更友好的交互式命令。在Ubuntu上测试时,我记录了完整的操作流程:
bash复制# 创建新用户并设置家目录
sudo adduser newbie
# 查看用户信息
id newbie
# 将用户加入sudo组
sudo usermod -aG sudo newbie
这个过程让我理解了/etc/passwd和/etc/shadow文件的作用,特别是看到密码字段被替换为"x"时的恍然大悟——原来Linux早就考虑到了密码安全存储的问题。
3. 遇到的典型问题与解决
3.1 权限拒绝的排查过程
当我尝试用普通用户修改/etc下的配置文件时,遇到了经典的"Permission denied"错误。通过以下步骤最终解决:
- 先用
ls -l查看文件当前权限 - 确认自己的用户ID和所属组
id - 临时切换到root
sudo -i - 修改文件权限
chmod o+w filename
这个过程中最大的收获是理解了Linux的权限继承机制——新建文件的默认权限由umask决定,而目录的x权限实际上代表"可进入"。
3.2 环境变量配置踩坑
在.bashrc中添加PATH时,我犯了个低级错误:
bash复制PATH=/opt/myapp/bin # 这样会覆盖原有PATH
PATH=$PATH:/opt/myapp/bin # 这才是正确做法
这个错误导致所有基本命令都找不到了,最终通过export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin临时恢复。教训就是:修改重要配置前一定要先备份!
4. 第三天学习成果检验
4.1 自制权限管理小实验
为了巩固知识,我设计了一个小练习:
- 创建testdir目录和内部的testfile
- 新建testuser用户
- 设置目录权限为750(rwxr-x---)
- 切换用户测试访问权限
这个简单的实验完美验证了用户-组-其他人的权限体系,特别是当testuser既不是所有者也不在所属组时,连cd进入目录都会被拒绝。
4.2 常用命令速查表整理
把今天学到的核心命令整理成了速查表:
| 命令 | 用途 | 常用选项示例 |
|---|---|---|
| chmod | 修改权限 | chmod 755 file |
| chown | 修改所有者 | chown user:group f |
| useradd | 添加用户 | useradd -m user |
| passwd | 修改密码 | passwd username |
| groups | 查看用户所属组 | groups |
| umask | 显示/设置默认权限掩码 | umask 022 |
5. 学习资源与工具推荐
经过三天实践,我发现这些工具特别适合Linux初学者:
- Terminator:可以分屏的终端模拟器,比默认终端好用得多
- tldr:简化版的man手册,直接给出命令常用示例
- explainshell.com:在线解析复杂命令的每个部分
- Linux Journey:交互式学习网站,概念讲解很直观
注意:刚开始不要同时使用多个发行版,建议Ubuntu或CentOS选一个坚持学下去。我在虚拟机上装了三个不同发行版,结果连包管理命令都记混了。
6. 明日学习计划
根据今天遇到的问题,明天准备重点学习:
- 软件包管理(apt/yum)
- 进程管理(ps/top/kill)
- 文本处理三剑客(grep/awk/sed)
特别想弄明白的是为什么Ubuntu用apt而CentOS用yum,这背后的历史渊源看起来很有意思。另外同事推荐的vimtutor也准备体验下,毕竟在服务器上编辑配置文件是绕不开的技能。
学习Linux就像在组装一台透明机箱的电脑,每个操作都能直接看到内部如何运转。第三天结束时的成就感是:终于能看懂那些"神秘"的运维脚本的前几行了。虽然距离熟练还有很长的路,但至少现在看到终端窗口不再感到畏惧,反而有点期待明天的新命令。
