目录
3. 文件系统结构(Filesystem Hierarchy Standard, FHS)
五、第一个 Linux 程序:Hello World Shell 脚本
一、什么是 Linux?
简介
Linux 是一个开源的类 Unix 操作系统内核,最初由 Linus Torvalds 在 1991 年开发。它是一个多用户、多任务、支持多线程的操作系统,广泛应用于服务器、嵌入式设备、超级计算机和桌面系统。
Linux 不仅是操作系统内核,还与 GNU 工具链结合形成了完整的操作系统(通常称为 Linux 发行版)。
核心特点:
- 开源免费:源代码公开,任何人都可以自由使用、修改和分发。
- 多用户多任务:支持多个用户同时登录并运行多个程序。
- 可移植性强:可在多种硬件平台上运行(x86、ARM、MIPS 等)。
- 稳定性与安全性高:适合长期运行的服务端环境。
- 丰富的开发工具:提供 GCC、GDB、Make、Shell 脚本等强大的开发工具。
二、Linux 的基本组成结构
1. 内核(Kernel)
Linux 内核负责管理系统的资源,包括进程调度、内存管理、文件系统、网络通信、设备驱动等。
示例:查看当前内核版本
uname -r
输出示例:
5.15.0-72-generic
2. Shell 命令解释器
Shell 是用户与 Linux 内核之间的接口,常见的 Shell 有 bash
, zsh
, fish
等。
示例:查看当前使用的 Shell
echo $SHELL
输出示例:
/bin/bash
3. 文件系统结构(Filesystem Hierarchy Standard, FHS)
Linux 使用统一的树状文件结构,根目录为 /
。
常见目录及其用途:
目录 | 描述 |
---|---|
/ |
根目录,整个文件系统的起点 |
/bin |
存放常用命令(如 ls、cp) |
/sbin |
系统管理员使用的命令(如 ifconfig) |
/etc |
配置文件存放地 |
/home |
用户主目录 |
/root |
系统管理员 root 的家目录 |
/tmp |
临时文件目录 |
/usr |
用户程序和数据(类似 Windows 的 Program Files) |
/var |
可变数据目录(日志、缓存等) |
/dev |
设备文件 |
/proc |
运行时信息(虚拟文件系统) |
/sys |
硬件相关的信息(也是虚拟文件系统) |
示例:查看目录结构
ls -F /
4. 用户与权限管理
Linux 是一个多用户的操作系统,每个用户都有自己的账户和权限。
用户类型:
- 普通用户
- 超级用户(root)
权限分类:
- 读(r)
- 写(w)
- 执行(x)
示例:查看文件权限
ls -l /etc/passwd
输出示例:
-rw-r--r-- 1 root root 2554 Jul 1 10:00 /etc/passwd
含义:
-rw-r--r--
:权限1
:链接数root
:属主root
:属组2554
:文件大小(字节)Jul 1 10:00
:最后修改时间/etc/passwd
:文件名
三、Linux 启动流程概述
启动流程简图(知识树状流程图):
+------------------------+
| BIOS/UEFI |
+------------------------+
|
v
+------------------------+
| Bootloader (GRUB) |
+------------------------+
|
v
+------------------------+
| Linux Kernel |
+------------------------+
|
v
+------------------------+
| Init System (systemd or SysVinit) |
+------------------------+
|
v
+------------------------+
| Runlevel/Target |
+------------------------+
|
v
+------------------------+
| User Login Prompt |
+------------------------+
流程详解:
BIOS/UEFI 加电自检(POST)
- 初始化硬件,检查内存、硬盘等设备是否正常。
Bootloader(引导加载程序)
- GRUB(Grand Unified Bootloader)是最常用的 bootloader。
- 选择启动哪个内核或操作系统。
Linux 内核启动
- 加载内核镜像(vmlinuz),初始化硬件驱动,挂载根文件系统。
Init System 启动
- systemd 或 SysVinit 是系统和服务的初始化管理系统。
- systemd 是现代 Linux 的主流 init 系统。
进入运行级别(Runlevel)或目标(Target)
- 多用户模式(带图形界面或不带)。
显示登录提示符
- 用户输入用户名和密码进行登录。
四、终端与命令行基础
1. 终端(Terminal)
终端是用户与 Linux 系统交互的文本界面。你可以通过 Ctrl+Alt+T 打开终端。
2. 常用命令示例
查看当前路径:
pwd
列出目录内容:
ls -la
创建目录:
mkdir mydir
切换目录:
cd mydir
显示文件内容:
cat /etc/os-release
清屏:
clear
五、第一个 Linux 程序:Hello World Shell 脚本
1. 编写脚本
创建一个名为 hello.sh
的脚本文件:
nano hello.sh
输入以下内容:
#!/bin/bash
echo "Hello, Linux System Programming!"
2. 添加执行权限
chmod +x hello.sh
3. 执行脚本
./hello.sh
输出结果:
Hello, Linux System Programming!
六、总结知识点图解(知识树状图)
Linux 操作系统简介
│
├── 什么是 Linux?
│ ├── 开源、多用户、多任务
│ └── 用于服务器、嵌入式、桌面等
│
├── 基本组成结构
│ ├── 内核(Kernel)
│ ├── Shell 命令解释器
│ ├── 文件系统结构(FHS)
│ └── 用户与权限管理
│
├── 启动流程
│ ├── BIOS/UEFI
│ ├── Bootloader (GRUB)
│ ├── 内核加载
│ ├── systemd/SysVinit
│ ├── 运行级别
│ └── 登录提示
│
├── 终端与命令行基础
│ ├── pwd, ls, cd, cat 等命令
│ └── Shell 脚本执行
│
└── 第一个程序:Hello World Shell 脚本
├── #!/bin/bash
├── echo 输出语句
└── chmod +x 设置执行权限
七、课后练习建议
- 尝试在终端中运行
uname -a
,看看能获得哪些系统信息。 - 使用
ls -R /
查看整个文件系统的递归结构。 - 创建一个新的用户,并为其设置密码。
- 编写一个 Shell 脚本,输出你的姓名、当前日期和当前工作目录。