百度Linux教程:从入门到进阶的系统指南

百度Linux教程:从入门到进阶的系统指南

一、Linux系统基础与环境搭建

1.1 发行版选择与安装

Linux发行版的选择直接影响开发效率。对于初学者,推荐基于Debian系的Ubuntu或CentOS(现主流替代为Rocky Linux/AlmaLinux),它们拥有完善的文档社区和包管理工具。安装时需注意:

  • 磁盘分区方案:建议采用/(根分区)、/home(用户数据)、swap(交换分区)三分区模式,其中swap大小建议为物理内存的1-2倍(内存≥16GB时可降低至1倍)。
  • 双系统安装:使用gparted调整Windows分区后,通过grub2引导器实现双系统启动,需确保UEFI/Legacy模式与原系统一致。

1.2 开发环境初始化

安装完成后需配置基础开发工具链:

  1. # Debian/Ubuntu系
  2. sudo apt update && sudo apt install -y \
  3. build-essential \ # 编译工具链
  4. git \ # 版本控制
  5. curl wget \ # 网络工具
  6. vim tmux \ # 终端效率工具
  7. net-tools # ifconfig等网络命令
  8. # RHEL/CentOS系
  9. sudo yum groupinstall -y "Development Tools"
  10. sudo yum install -y git curl wget vim tmux net-tools

二、命令行核心技能

2.1 文件系统操作

掌握findgreprsync等命令可提升10倍操作效率:

  1. # 递归查找7天内修改的.py文件并统计行数
  2. find /path -name "*.py" -mtime -7 -exec wc -l {} \;
  3. # 同步目录时排除.git和node_modules
  4. rsync -avz --exclude='.git' --exclude='node_modules' /src/ /dst/

2.2 管道与重定向

通过管道组合实现复杂操作:

  1. # 统计nginx日志中状态码≥400的请求占比
  2. awk '{print $9}' access.log | grep -E '4[0-9]{2}|5[0-9]{2}' | wc -l | \
  3. xargs -I {} echo "scale=2; {}/$(wc -l < access.log)*100" | bc

2.3 进程管理

使用systemd管理服务时需注意:

  1. # 查看服务依赖树
  2. systemctl list-dependencies nginx.service
  3. # 调试服务启动失败
  4. journalctl -u nginx.service -b --no-pager

三、系统调优与安全

3.1 性能监控

  • CPU瓶颈定位
    1. top -o %CPU # 按CPU使用率排序
    2. mpstat -P ALL 1 # 查看各核使用情况
  • 内存泄漏检测
    1. sudo vmstat 1 10 # 观察内存变化趋势
    2. sudo pmap -x $(pidof java) | tail -n 1 # 查看进程内存分布

3.2 安全加固

  • SSH防护
    1. # 修改默认端口
    2. Port 2222
    3. # 禁用密码认证
    4. PasswordAuthentication no
    5. # 限制登录用户
    6. AllowUsers admin
  • 防火墙规则
    1. sudo ufw allow 2222/tcp # Ubuntu
    2. sudo firewall-cmd --add-port=2222/tcp --permanent # CentOS

四、百度智能云环境适配

4.1 云服务器初始化

通过百度智能云控制台创建实例后,建议执行:

  1. # 安装云监控Agent
  2. wget https://agent.bce.baidu.com/scripts/install_monitor_agent.sh
  3. sudo bash install_monitor_agent.sh
  4. # 配置BCCS(百度云命令行工具)
  5. echo "source /opt/bccs/bin/bccs_env.sh" >> ~/.bashrc

4.2 对象存储操作

使用bs命令行工具管理BOS:

  1. # 上传文件并设置ACL
  2. bs cp local.txt bos:/my-bucket/ --acl public-read
  3. # 生成预签名URL
  4. bs sign bos:/my-bucket/object.txt --expire 3600

五、进阶技能树

5.1 Shell脚本编程

  1. #!/bin/bash
  2. # 批量重命名.jpg为.png
  3. for file in *.jpg; do
  4. mv "$file" "${file%.jpg}.png"
  5. done
  6. # 带错误处理的备份脚本
  7. backup() {
  8. local src=$1 dst=$2
  9. rsync -avz "$src" "$dst" || {
  10. echo "Backup failed at $(date)" >> /var/log/backup.log
  11. exit 1
  12. }
  13. }

5.2 容器化基础

  1. # 运行Nginx容器
  2. docker run -d --name web -p 80:80 nginx
  3. # 构建自定义镜像
  4. FROM ubuntu:22.04
  5. RUN apt update && apt install -y python3
  6. COPY app.py /
  7. CMD ["python3", "/app.py"]

六、常见问题解决方案

  1. sudo权限问题

    • 使用visudo编辑配置,避免直接修改/etc/sudoers
    • 示例:允许用户dev重启服务
      1. dev ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
  2. 磁盘满处理

    1. # 查找大文件
    2. du -h / | sort -rh | head -20
    3. # 清理docker无用数据
    4. docker system prune -af
  3. 网络故障排查

    1. # 测试域名解析
    2. dig +short example.com
    3. # 跟踪路由
    4. mtr -rw example.com

七、学习资源推荐

  1. 官方文档

    • Linux man-pages项目
    • 百度智能云文档中心
  2. 交互式学习

    • Linux Journey(免费)
    • OverTheWire Bandit(实战练习)
  3. 社区支持

    • Stack Overflow Linux标签
    • 百度智能云开发者社区

通过系统学习与实践,开发者可在3-6个月内掌握Linux系统管理核心技能。建议从实际项目需求出发,例如在百度智能云上部署Web应用时,同步学习负载均衡配置、日志分析等关联技术,形成完整的知识体系。