1. 项目概述凡人修云传这个系列记录了一个普通开发者从零开始学习云计算技术的完整历程。作为系列的第二篇本文将聚焦Linux操作系统的入门学习。不同于市面上常见的Linux教程这里没有晦涩的理论堆砌而是从一个真实开发者的视角分享我初次接触Linux时最实用的知识点和踩过的坑。记得第一次打开Linux终端时面对黑底白字的命令行界面那种既兴奋又忐忑的心情至今难忘。这篇文章就是写给当年那个小白的自己也是写给所有准备踏上Linux学习之路的朋友们。我们将从最基础的目录结构开始逐步掌握文件操作、权限管理、软件安装等核心技能最后完成一个简单的Shell脚本实战。2. Linux环境准备2.1 选择适合的Linux发行版对于初学者来说Ubuntu无疑是最友好的选择。它拥有完善的社区支持遇到问题容易找到解决方案丰富的软件仓库apt包管理器使用简单稳定的长期支持版本LTS版本维护周期长达5年我在本地虚拟机安装的是Ubuntu 22.04 LTS使用VirtualBox作为虚拟化工具。安装过程仅需注意分配至少20GB磁盘空间内存建议2GB以上启用虚拟化加速VT-x/AMD-V提示如果电脑配置较低可以考虑轻量级的Lubuntu或Xubuntu。云服务器用户可以直接选择各大云平台提供的Ubuntu镜像。2.2 终端基础配置安装完成后第一件事就是优化终端体验# 更新软件源 sudo apt update sudo apt upgrade -y # 安装常用工具 sudo apt install -y git curl wget tree htop我习惯使用Zsh替代默认的Bash# 安装Zsh sudo apt install -y zsh # 安装oh-my-zsh框架 sh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) # 选择agnoster主题 sed -i s/ZSH_THEMErobbyrussell/ZSH_THEMEagnoster/ ~/.zshrc3. Linux核心概念解析3.1 文件系统结构Linux最让初学者困惑的就是其独特的目录结构。与Windows不同Linux一切皆文件目录结构遵循FHS标准目录用途类比Windows/bin基础命令C:\Windows\System32/etc配置文件注册表和ProgramData/home用户目录C:\Users/var可变数据日志和缓存文件/usr用户程序Program Files重要技巧使用tree -L 1 /查看一级目录结构cd -可以快速返回上一个工作目录pushd和popd实现目录栈跳转3.2 权限管理机制Linux严格的权限系统是安全基石。通过ls -l可以看到类似这样的输出-rw-r--r-- 1 user group 1024 Jun 1 10:00 file.txt drwxr-xr-x 2 user group 4096 Jun 1 10:00 dir/权限分为三组所有者(user)所属组(group)其他人(other)每种身份有三种权限r (read)w (write)x (execute)修改权限的两种方式# 数字法 chmod 755 file.sh # rwxr-xr-x # 符号法 chmod ux,g-w,or file.sh警告永远不要使用chmod 777这是极其危险的操作4. 基础命令实战4.1 文件操作四件套查找文件# 按名称查找 find / -name *.log -type f # 按大小查找大于10MB find . -size 10M查看内容# 实时查看日志 tail -f /var/log/syslog # 显示行号 cat -n file.txt # 分页查看 less large_file.log处理文本# 统计行数 wc -l access.log # 提取特定列 awk {print $1,$4} data.csv # 替换文本 sed s/foo/bar/g file.txt压缩解压# 创建tar.gz包 tar -czvf archive.tar.gz dir/ # 解压zip文件 unzip archive.zip -d target_dir/4.2 进程管理技巧查看系统状态# 综合监控 htop # 磁盘使用 df -h # 内存占用 free -m进程操作# 查找进程 ps aux | grep nginx # 优雅停止 kill -15 PID # 强制终止 kill -9 PID # 后台运行 nohup command log.out 5. Shell脚本入门5.1 第一个脚本创建hello.sh#!/bin/bash # 这是我的第一个Shell脚本 echo Hello $(whoami)! Today is $(date)赋予执行权限并运行chmod x hello.sh ./hello.sh5.2 实用脚本示例备份脚本#!/bin/bash # 定义变量 BACKUP_DIR/backups LOG_FILE/var/log/backup.log # 创建备份目录 [ -d $BACKUP_DIR ] || mkdir -p $BACKUP_DIR # 记录开始时间 echo [$(date)] Backup started $LOG_FILE # 执行备份 tar -czf $BACKUP_DIR/backup_$(date %Y%m%d).tar.gz \ --exclude*.tmp \ /home /etc 2 $LOG_FILE # 检查结果 if [ $? -eq 0 ]; then echo [$(date)] Backup succeeded $LOG_FILE else echo [$(date)] Backup failed! $LOG_FILE exit 1 fi定时任务# 编辑crontab crontab -e # 每天凌晨3点执行备份 0 3 * * * /path/to/backup.sh6. 常见问题排查6.1 权限被拒绝# 错误bash: ./script.sh: Permission denied # 解决方案 chmod x script.sh6.2 命令未找到# 错误command not found # 可能原因 # 1. 拼写错误 # 2. 未安装软件 # 3. 不在PATH中 # 检查PATH echo $PATH # 查找命令位置 which command || whereis command6.3 磁盘空间不足# 查看磁盘使用 df -h # 查找大文件 find / -type f -size 100M -exec ls -lh {} \; # 清理日志 sudo journalctl --vacuum-size100M7. 学习路线建议初级阶段掌握50个常用命令理解权限和用户组能编写简单Shell脚本中级阶段熟悉正则表达式掌握sed/awk高级用法理解系统启动过程高级阶段内核参数调优性能监控与优化安全加固实践推荐资源在线练习https://overthewire.org/wargames/bandit/交互教程https://linuxjourney.com/命令大全https://explainshell.com/学习Linux就像习武需要日积月累的练习。我至今记得第一次成功写出自动化部署脚本时的成就感。建议从今天开始坚持每天用Linux完成一件日常工作三个月后你会惊讶于自己的进步。
