1. Ubuntu 16.04 基础命令速查手册作为一款经典的Linux发行版Ubuntu 16.04 LTSXenial Xerus至今仍在许多生产环境中使用。掌握其核心命令是每位系统管理员和开发者的必修课。以下命令经过实战筛选覆盖90%的日常操作场景。1.1 文件与目录操作在终端中操作文件就像在GUI中拖拽图标一样简单 - 前提是你得知道这些魔法咒语# 列出目录内容人类可读格式 ls -lh # 显示隐藏文件配置文件多为隐藏文件 ls -a # 创建多级目录结构 mkdir -p project/{src,doc,backup} # 安全删除需确认 rm -i important_file.txt # 强制递归删除目录 rm -rf obsolete_dir/经验之谈使用rm时养成加-i参数的习惯特别是执行递归删除前先用ls确认目标路径是否正确。我曾亲眼见过有人把/var/log打成/var/lib...1.2 文本文件处理三剑客查看日志、分析数据时这些命令能救命# 实时监控日志增长 tail -f /var/log/syslog # 显示文件第5-10行 sed -n 5,10p access.log # 统计不同IP访问次数 grep -oP \d\.\d\.\d\.\d access.log | sort | uniq -c | sort -nr # 查找代码中的TODO注释 find . -name *.py -exec grep -Hn TODO {} \;2. 系统管理核心命令2.1 进程与资源监控当系统变慢时这些命令帮你快速定位瓶颈# 动态查看资源占用按CPU排序按F6 htop # 查看磁盘空间人性化显示 df -hT /dev/sda1 # 监控内存使用注意cache/buffer与真实占用区别 free -m # 找出CPU占用最高的进程 ps -eo pid,ppid,cmd,%mem,%cpu --sort-%cpu | head # 杀进程的优雅方式先尝试SIGTERM pkill -15 process_name2.2 网络配置与排错网络问题排查的黄金命令组合# 显示所有网卡信息注意RX/TX错误包 ip -s link # 持续ping测试CtrlC停止 ping -c 4 ubuntu.com # 查看路由表比route更现代 ip route show # 检查端口监听状态 ss -tulnp # 追踪网络路径需安装traceroute traceroute 8.8.8.83. 软件包管理艺术3.1 APT高级用法超越apt-get install的进阶技巧# 搜索包含snap关键字的包 apt-cache search snap | grep -i docker # 查看软件包详细信息 apt show nginx # 下载但不安装用于离线安装 apt download python3-pip # 清理旧版本缓存 apt autoclean # 彻底移除软件包包括配置文件 apt purge --auto-remove package_name3.2 第三方包管理处理非官方软件时的正确姿势# 添加PPA源示例为官方不支持的最新版软件 sudo add-apt-repository ppa:ondrej/php # 导入GPG密钥安全必备 wget -qO - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - # 安装.deb包并自动解决依赖 sudo gdebi google-chrome-stable_current_amd64.deb # 编译安装的通用流程 ./configure --prefix/usr/local make -j$(nproc) sudo make install4. 用户与权限管理4.1 用户账户控制多用户环境下的管理要点# 创建系统用户无home目录 sudo adduser --system service_account # 修改用户组影响文件访问权限 sudo usermod -aG docker $USER # 查看用户权限sudo组成员 groups username # 锁定/解锁账户 sudo passwd -l temp_user sudo passwd -u temp_user4.2 文件权限深度配置Linux权限系统的灵活运用# 递归修改目录权限用户可读写执行组可读执行其他无权限 chmod -R 750 /opt/app # 改变文件属主常用于web目录 sudo chown -R www-data:www-data /var/www # 设置粘滞位共享目录防删除 chmod t /shared_folder # ACL高级权限允许特定用户访问 setfacl -m u:guest:rx /confidential5. 自动化与脚本技巧5.1 Cron定时任务让系统自动为你打工# 编辑当前用户的cron任务 crontab -e # 示例每天3点备份注意命令使用绝对路径 0 3 * * * /usr/bin/rsync -a /home /backup # 查看运行日志排查失败任务 grep CRON /var/log/syslog5.2 Shell脚本最佳实践写出健壮的bash脚本#!/bin/bash # 严格模式错误退出/未定义变量检测 set -euo pipefail # 使用函数提高可读性 backup_files() { local timestamp$(date %Y%m%d_%H%M%S) tar -czf backup_$timestamp.tar.gz $ } # 主程序逻辑 if [ $# -eq 0 ]; then echo Usage: ${0##*/} [FILES...] 2 exit 1 fi backup_files $6. 系统服务管理6.1 Systemd实战现代Linux的服务管理方式# 查看失败的服务 systemctl --failed # 分析服务启动时间 systemd-analyze blame # 创建自定义服务示例为Python应用 sudo tee /etc/systemd/system/myapp.service EOF [Unit] DescriptionMy Python Application Afternetwork.target [Service] Userappuser WorkingDirectory/opt/myapp ExecStart/usr/bin/python3 app.py Restarton-failure [Install] WantedBymulti-user.target EOF # 重载配置 sudo systemctl daemon-reload7. 安全加固要点7.1 SSH安全配置远程访问的第一道防线# 禁用root登录修改后重启sshd sudo sed -i s/#PermitRootLogin yes/PermitRootLogin no/ /etc/ssh/sshd_config # 强制密钥认证 echo PasswordAuthentication no | sudo tee -a /etc/ssh/sshd_config # 限制登录IP需安装ufw sudo ufw allow from 192.168.1.0/24 to any port 227.2 防火墙设置简单高效的UFW防火墙# 查看规则带编号便于删除 sudo ufw status numbered # 允许特定端口范围适用于FTP被动模式 sudo ufw allow 49152:65535/tcp # 速率限制SSH防爆破 sudo ufw limit 22/tcp8. 故障排查工具箱8.1 日志分析技巧从海量日志中快速定位问题# 按时间范围过滤日志适用于journalctl journalctl --since 2023-01-01 --until 2023-01-02 # 高亮显示错误关键词 tail -f /var/log/nginx/error.log | grep --color -E error|fail|warning # 统计404错误次数 awk $9 404 {print $7} access.log | sort | uniq -c | sort -nr8.2 性能诊断命令系统卡顿时立即使用的诊断命令# IO瓶颈检测%util80%说明磁盘饱和 iostat -x 1 # 网络流量监控按流量排序 nethogs # 内存泄漏检测观察RSS增长 watch -n 1 ps -eo pid,comm,rss --sort -rss | head -n 109. 实用技巧合集9.1 终端生产力提升让命令行工作更高效# 快速返回之前目录 cd - # 创建并进入目录 mkcd() { mkdir -p $1 cd $1; } # 显示命令执行时间 time ls -R /usr # 搜索历史命令CtrlR反向搜索 history | grep apt9.2 数据备份策略可靠的备份方案示例# 增量备份基于硬链接节省空间 rsync -a --delete --link-dest/backup/prev /data/ /backup/$(date %Y%m%d) # 加密备份到远程需提前配置SSH密钥 tar -czf - /sensitive_data | openssl enc -aes-256-cbc | ssh userbackup-server cat backup_$(date %F).tar.gz.enc10. 系统维护备忘录10.1 定期维护任务保持系统健康的例行工作# 检查可用更新不自动安装 sudo apt update # 清理旧内核谨慎操作 sudo apt autoremove --purge # 检查文件系统错误需卸载分区 sudo fsck /dev/sda1 # 查找大文件超过100MB find / -type f -size 100M -exec ls -lh {} \;10.2 系统升级准备跨越版本升级前的检查清单# 查看当前版本信息 lsb_release -a # 检查可升级版本 sudo do-release-upgrade -c # 备份关键配置文件 tar -czf /backup/etc_backup_$(date %F).tar.gz /etc # 验证备份完整性 tar -tf /backup/etc_backup_*.tar.gz | wc -l