一、Shell:用户与内核的桥梁
1. 什么是 ShellShell 是一个命令解释器,它接收用户输入的命令,翻译后交给操作系统内核执行,并将结果返回给用户。从操作系统角度看,Shell 是用户态程序,通过系统调用来请求内核服务,这恰好体现了 OS 的接口设计。
2. 常见的 Shell
3. 命令提示符与格式
user@hostname:~/folder$ command -option argument |
4. 基本操作技巧
Tab 键:命令和路径自动补全
Ctrl+C:终止当前前台程序(发送 SIGINT 信号)
Ctrl+D:表示输入结束(EOF),可退出 Shell
Ctrl+Z:将当前程序挂起到后台
history:查看历史命令;!编号 可重复执行
↑/↓ 箭头:浏览历史命令
man command:查看命令的手册页(非常常用)
二、文件名与目录结构
1. 一切皆文件Linux 中,普通文件、目录、设备(如硬盘 /dev/sda)、进程信息等都是以文件的形式暴露的。这种统一的虚拟文件系统(VFS) 抽象是 OS 设计的精髓。
2. 目录树结构文件系统从根 / 开始,形成一棵倒置的树,没有 Windows 的盘符概念。重要目录:
/:根目录,整个系统的起点
/home:普通用户家目录,例如 /home/alice
/root:root 用户的家目录
/etc:系统配置文件(如 passwd、fstab)
/bin, /sbin:基本系统命令(现在多是 /usr/bin 的链接)
/usr:大部分用户程序和数据
/var:经常变动的数据(日志、缓存等)
/tmp:临时文件,重启可能清空
/dev:设备文件
/proc:内存中的内核和进程信息,是了解 OS 进程模型的直接窗口
3. 文件命名规则
三、文件权限与所有权
Linux 是多用户系统,文件权限是实现保护与安全的核心机制。
1. 用户分组每个文件都有一个所有者(user)和一个所属组(group),权限分别针对三类人:
u(user):文件所有者
g(group):同组用户
o(others):其他人
使用 ls -l 可查看详细信息:
-rwxr-xr-- 1 alice staff 1024 Apr 26 10:30 script.sh |
第一列 -rwxr-xr-- 分别表示:
2. 修改权限 - chmod
数字法(八进制):chmod 754 fileowner=rwx(7), group=r-x(5), others=r--(4)
符号法:chmod u+x file(给所有者加执行权),chmod go-w file(去掉组和其他人的写权)
对目录而言,x 权限意味着可以 cd 进入该目录。
3. 修改所有者与组
4. 特殊权限(了解)
SUID(4):可执行文件具有所有者的权限(如 passwd 命令)
SGID(2):文件执行时具有组的权限;对目录,新建文件会自动继承目录的组
Sticky bit(1):在目录上设置后,只有文件所有者才能删除自己文件(如 /tmp)
四、常用命令分类详解
1. 目录与文件操作
2. 文件查看与编辑
3. 文件搜索与过滤
4. 系统信息与进程管理
这是理解操作系统运行状态的直接手段。
5. 用户与权限相关
6. 网络与远程
7. 命令行进阶:管道、重定向与组合
以上这些操作不仅是日常使用 Linux 的基础,更是深入操作系统原理的实验入口:
用 ps、top、kill 来感受进程调度和信号机制;
在 /proc 目录下查看内核数据结构,理解进程控制块;
用 chmod 实践文件保护模型;
通过 Shell 的管道和重定向体会 进程通信与 I/O 重定向;
观察 fork()、exec() 写的小程序如何在 Shell 中运行,直接对应进程创建。
建议自己安装一个 Linux 发行版(虚拟机或 WSL 均可),跟随命令动手敲一遍,并养成 man 查手册的习惯。敲得越多,对操作系统的抽象就会理解越深,也会更直观和容易。