Ubuntu 16.04核心命令与系统管理实战指南
📅 2026/7/17 6:30:26
👁️ 阅读次数
📝 编程学习
1. Ubuntu 16.04 基础命令速查手册
作为一款经典的Linux发行版,Ubuntu 16.04 LTS(Xenial 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测试(Ctrl+C停止) 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] Description=My Python Application After=network.target [Service] User=appuser WorkingDirectory=/opt/myapp ExecStart=/usr/bin/python3 app.py Restart=on-failure [Install] WantedBy=multi-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瓶颈检测(%util>80%说明磁盘饱和) iostat -x 1 # 网络流量监控(按流量排序) nethogs # 内存泄漏检测(观察RSS增长) watch -n 1 'ps -eo pid,comm,rss --sort -rss | head -n 10'9. 实用技巧合集
9.1 终端生产力提升
让命令行工作更高效:
# 快速返回之前目录 cd - # 创建并进入目录 mkcd() { mkdir -p "$1" && cd "$1"; } # 显示命令执行时间 time ls -R /usr # 搜索历史命令(Ctrl+R反向搜索) 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 user@backup-server "cat > backup_$(date +%F).tar.gz.enc"10. 系统维护备忘录
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
编程学习
技术分享
实战经验