手把手教你 Linux 学习:从零到架构师的实操指南

一、为什么架构师必须懂 Linux?

  • 90% 以上的服务器运行在 Linux 系统上(尤其是云环境)
  • 容器(Docker)、Kubernetes、微服务等现代架构底层依赖 Linux
  • 故障排查、性能调优、安全加固都离不开命令行操作
  • 架构设计需理解操作系统资源调度、网络、存储等底层机制

结论:不懂 Linux 的架构师,就像不会开车的司机。


二、学习环境准备(实操第一步)

安装本地虚拟机

三、第一次登录 Linux(SSH 连接)

假设服务器IP 是 192.168.218.128,用户名是 uustop

bash 复制代码
# 从你的 Mac/Linux/WSL 终端执行
ssh uustop@192.168.218.128

# 第一次会提示是否信任,输入 yes
# 然后输入密码(或使用密钥登录)

✅ 成功登录后,你会看到类似:

bash 复制代码
uustop@uustop-vm:~$

四、核心命令实操

1:文件与目录操作

bash 复制代码
# 查看当前目录
pwd

# 查看文件列表
ls -la

# 创建目录
mkdir myproject

# 进入目录
cd myproject

# 创建文件
touch hello.txt

# 编辑文件(使用 nano,简单易用)
nano hello.txt
# 输入 "Hello, I'm learning Linux!",Ctrl+O 保存,Ctrl+X 退出

# 查看文件内容
cat hello.txt

# 复制、移动、删除
cp hello.txt hello_backup.txt
mv hello.txt ../hello_moved.txt
rm hello_backup.txt

💡 架构师提示:-a 参数显示隐藏文件(如 .bashrc),对排查环境变量问题很有用。


2:用户与权限管理

bash 复制代码
# 查看当前用户
whoami

# 查看所有用户(读取 /etc/passwd)
cat /etc/passwd | grep uustop

# 创建新用户
sudo adduser devuser

# 切换用户
su - devuser

# 回到 uustop 用户
exit

# 修改文件权限:让 hello_moved.txt 可执行
chmod +x hello_moved.txt
ls -l hello.txt  # 显示 -rwxrwxr-x 

🔐 安全原则:最小权限原则。架构师设计系统时,服务应以非 root 用户运行。


3:软件包管理

Ubuntu/Debian 系统:

bash 复制代码
# 更新软件包列表
sudo apt update

# 安装 nginx
sudo apt install nginx -y

# 查看是否运行
systemctl status nginx

# 开机自启
sudo systemctl enable nginx

CentOS/RHEL 系统:

bash 复制代码
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

🌐 浏览器访问 http://你的IP,看到 Nginx 欢迎页,成功!


4:文本处理三剑客

bash 复制代码
# 创建测试日志
echo "2025-09-02 10:00:00 ERROR User login failed" > app.log
echo "2025-09-02 10:01:00 INFO User logged in" >> app.log
echo "2025-09-02 10:02:00 ERROR Database connection timeout" >> app.log

# grep:查找错误日志
grep "ERROR" app.log

# awk:提取第二列(时间)
awk '{print $2}' app.log

# sed:替换文本
sed 's/ERROR/WARNING/' app.log

🛠 架构师用途:日志分析、自动化脚本、CI/CD 中文本替换。


5:进程与系统监控

bash 复制代码
# 查看所有进程
ps aux | head -10

# 实时监控(按 q 退出)
top

# 查看内存使用
free -h

# 查看磁盘使用
df -h

# 查看网络连接
netstat -tuln
如果报错请执行
sudo apt install net-tools
# 或使用 ss
ss -tuln

📈 架构师关注:top 中看 CPU、内存占用;df -h 防止磁盘写满导致服务崩溃。


6:网络与防火墙

bash 复制代码
# 测试网络连通性
ping baidu.com

# 查看本机 IP
ip addr show

# 查看路由
ip route

# Ubuntu 防火墙(ufw)
sudo ufw allow 80
sudo ufw enable

# CentOS 防火墙(firewalld)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

🔒 安全建议:关闭不必要的端口,最小化攻击面。


7:Shell 脚本入门

创建一个自动备份脚本:

bash 复制代码
nano backup_script.sh

内容如下:

bash 复制代码
#!/bin/bash
# 自动备份脚本

BACKUP_DIR="/home/uustop/backups"
SOURCE_DIR="/home/uustop/myproject"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR

echo "Backup completed: $BACKUP_DIR/backup_$DATE.tar.gz"

赋予权限并运行:

bash 复制代码
chmod +x backup_script.sh
./backup_script.sh

🤖 架构师思维:自动化是高可用系统的基石,脚本可集成到定时任务(crontab)。


五、进阶技能(架构师必备)

1. 使用 systemd 管理服务

bash 复制代码
# 查看所有服务
systemctl list-units --type=service

# 自定义服务(如部署一个 Node.js 应用)
sudo nano /etc/systemd/system/myapp.service

内容示例:

ini 复制代码
[Unit]
Description=My Awesome App
After=network.target

[Service]
ExecStart=/usr/bin/node /home/ubuntu/myapp/app.js
Restart=always
User=ubuntu

[Install]
WantedBy=multi-user.target
bash 复制代码
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

🤖 小提示:在部署minio集群的时候,注册成系统服务很方便。

2. 磁盘挂载与 LVM

bash 复制代码
# 查看磁盘
lsblk

# 格式化新磁盘(假设是 /dev/vdb)
sudo mkfs.ext4 /dev/vdb

# 挂载
sudo mkdir /data
sudo mount /dev/vdb /data

# 写入 fstab 实现开机自动挂载
echo '/dev/vdb /data ext4 defaults 0 0' | sudo tee -a /etc/fstab

六、学习建议与资源

📚 推荐书籍:

  • 《鸟哥的 Linux 私房菜》(经典入门)

🧪 实践平台:

🎯 学习路线:

复制代码
基础命令 → 用户权限 → 软件管理 → 文本处理 → 进程网络 → Shell 脚本 → 服务管理 → 故障排查

七、总结

作为架构师,我始终认为:

"真正的掌控力,来自于对底层的理解。"

Linux 不只是工具,它是你设计高可用、高性能、高安全系统的基石。

你已经迈出了成为优秀架构师的第一步。坚持下去,未来可期!

------ 架构师 · 与你共勉


相关推荐
唧唧麻布6 小时前
IPC 进程间通信 interprocess communicate
linux·运维·网络
羚羊角uou6 小时前
【Linux】模拟实现Shell(下)
linux·运维·服务器
倔强的石头_6 小时前
【Linux指南】Linux调试利器gdb入门:从编译到基础命令实战
linux
CZZDg6 小时前
kubectl-etcd
linux·数据库·etcd
倔强的石头_6 小时前
【Linux指南】gdb进阶技巧:断点高级玩法与变量跟踪实战
linux
半桔7 小时前
【Linux手册】Unix/Linux 信号:原理、触发与响应机制实战
linux·运维·unix·信号处理
半梦半醒*7 小时前
ansible常用命令的简单练习
linux·运维·服务器·ansible·运维开发
小晶晶京京7 小时前
day42-Ansible
linux·运维·服务器·ansible
正在努力的小河7 小时前
Linux按键输入实验
linux·运维·服务器