Linux基础入门:Linux操作系统简介
Linux基础入门:Linux操作系统简介
什么是Linux
Linux是一个开源的类Unix操作系统内核,由芬兰大学生Linus Torvalds于1991年首次发布。如今Linux已经发展成为一个完整的操作系统生态,广泛应用于服务器、嵌入式设备、超级计算机和移动设备(Android基于Linux内核)。
Linux的核心特性
1. 开源免费
Linux遵循GPL(GNU General Public License)协议,任何人都可以自由使用、修改和分发源代码。这使得Linux拥有庞大的开发者社区和丰富的软件生态。
2. 多用户多任务
Linux支持多个用户同时登录并运行各自的程序,每个用户都有独立的工作环境和权限设置。
3. 稳定性和安全性
Linux系统以其出色的稳定性著称,很多服务器可以连续运行数年而无需重启。其权限管理机制也提供了良好的安全性。
4. 强大的命令行
Linux的Shell提供了强大的命令行接口,可以通过脚本实现复杂的自动化任务。
Linux发行版
Linux内核本身只是一个操作系统的核心组件,需要配合各种工具和软件才能成为一个完整的操作系统。这些组合被称为"发行版"(Distribution):
| 发行版 | 特点 | 适用场景 |
|---|---|---|
| Ubuntu | 易用,社区活跃 | 桌面、开发环境 |
| CentOS/RHEL | 企业级,稳定 | 生产服务器 |
| Debian | 严谨,软件丰富 | 服务器 |
| Alpine | 轻量级 | 容器环境 |
实践:安装Ubuntu虚拟机
# 下载Ubuntu Server ISO
# 使用VirtualBox或VMware创建虚拟机
# 分配资源:2CPU, 4GB内存, 20GB磁盘
# 按照安装向导完成安装
常用Linux命令速查
掌握基本命令是在Linux环境中工作的第一步:
文件与目录操作
# 基本操作
ls -la # 列出所有文件(含隐藏文件)和详细信息
mkdir -p dir1/dir2 # 创建多级目录
cp -r src/ dest/ # 递归复制目录
mv old new # 移动或重命名
rm -rf dir/ # 强制递归删除(谨慎使用!)
pwd # 显示当前目录
cd ~ # 回到用户家目录
cd - # 回到上一个目录
文本处理
grep "error" /var/log/syslog # 搜索日志中的error
head -n 20 file.log # 查看文件前20行
tail -f /var/log/app.log # 实时跟踪日志(DevOps常用)
wc -l file.txt # 统计行数
sort | uniq -c | sort -rn # 去重并排序
cut -d',' -f1 data.csv # 按逗号分割取第一列
系统监控
top / htop # 进程监控(htop更友好)
df -h # 磁盘使用情况
free -h # 内存使用情况
ss -tuln # 监听端口
journalctl -u nginx # 查看服务日志
uptime # 系统运行时间
Linux文件系统结构
理解Linux目录结构是高效使用系统的关键:
/ # 根目录
├── bin/ # 基本命令(ls, cp, mv等)
├── etc/ # 配置文件
├── home/ # 用户家目录
├── var/ # 可变数据(日志、邮件等)
│ └── log/ # 系统日志
├── tmp/ # 临时文件
├── usr/ # 用户程序
│ ├── bin/ # 用户命令
│ └── lib/ # 共享库
├── opt/ # 可选软件包
├── srv/ # 服务数据
└── proc/ # 进程和系统信息(虚拟文件系统)
现代Linux发行版选择指南
服务器场景
| 发行版 | 特点 | 推荐度 |
|---|---|---|
| Ubuntu Server LTS | 社区大、文档多、6年支持 | 首选 |
| Rocky Linux | RHEL完美替代,CentOS精神续作 | 企业稳定首选 |
| AlmaLinux | 同样作为RHEL替代,Red Hat赞助 | 企业稳定首选 |
| Debian Stable | 极度稳定,软件略旧 | 追求稳定 |
| Amazon Linux 2023 | AWS原生,适合云上部署 | AWS用户 |
为什么不再推荐CentOS?
CentOS 8于2021年底提前结束支持,转向CentOS Stream(滚动发布版)。这导致大量企业寻找替代方案:
- Rocky Linux:由CentOS创始人发起,1:1兼容RHEL
- AlmaLinux:由CloudLinux赞助,同样1:1兼容RHEL
- Ubuntu Server:适合需要更新软件包的场景
Linux权限管理
# 查看文件权限
ls -l /etc/passwd
# 输出: -rw-r--r-- 1 root root 2048 Jan 1 12:00 /etc/passwd
# ^^^^^ 权限位
# 第1位: - 表示普通文件(d=目录,l=链接)
# 2-4位: rw- 文件所有者权限(读写)
# 5-7位: r-- 所属组权限(只读)
# 8-10位: r-- 其他用户权限(只读)
# 修改权限
chmod 755 script.sh # 所有者可读写执行,组和其他人可读执行
chmod u+x script.sh # 给所有者添加执行权限
chmod -R 644 conf/ # 递归修改目录权限
# 修改所有者
chown user:group file # 更改文件和组的拥有者
权限数字对照
| 数字 | 权限 | 含义 |
|---|---|---|
| 0 | --- | 无权限 |
| 1 | --x | 仅执行 |
| 2 | -w- | 仅写入 |
| 3 | -wx | 写入+执行 |
| 4 | r-- | 仅读取 |
| 5 | r-x | 读取+执行 |
| 6 | rw- | 读取+写入 |
| 7 | rwx | 读取+写入+执行 |
Linux在DevOps中的地位
Linux是现代DevOps的基石:
开发环境 → 测试环境 → 生产环境
↓ ↓ ↓
macOS/Win Docker Linux服务器
(WSL2) 容器镜像 (Ubuntu/AlmaLinux)
↓
Kubernetes集群(全部基于Linux)
- 云服务器:AWS EC2、阿里云ECS等90%以上运行Linux
- 容器技术:Docker/Kubernetes底层依赖Linux内核特性(cgroups、namespaces)
- CI/CD:Jenkins、GitHub Actions Runner默认运行在Linux上
- 基础设施即代码:Terraform、Ansible等工具管理的主要是Linux服务器
总结
Linux是DevOps工程师必须掌握的基础技能。理解Linux的基本概念、命令、权限管理和文件系统结构,将为后续学习容器、编排、自动化运维等内容奠定坚实基础。建议在学习过程中多动手实践,可以通过虚拟机或WSL2(Windows Subsystem for Linux)来体验Linux环境。