Ubuntu 16.04系统管理核心命令大全 1. Ubuntu 16.04 系统管理核心命令作为长期使用Ubuntu的开发者我整理了16.04 LTS版本中最实用的系统管理命令。这些命令经过多年实践验证能解决90%的日常运维需求。1.1 硬件信息查询查看完整的硬件配置信息lshw -short这个命令会以简洁格式列出CPU、内存、存储、网络等硬件信息。我习惯加上-short参数让输出更易读。如果需要详细信息可以去掉该参数。查看CPU具体信息cat /proc/cpuinfo | grep model name | uniq查看内存使用情况free -h-h参数会自动转换单位GB/MB比直接看字节数直观多了。工作中发现很多新人会忽略这个实用参数。1.2 磁盘空间管理查看各分区使用情况df -hT这里-T会显示文件系统类型帮助识别NTFS等特殊分区。当磁盘快满时可以用以下命令找出大文件sudo du -sh /* | sort -rh | head -10这个组合命令会按大小排序显示根目录下占用空间最多的前10个目录。有一次我用这个方法发现是/var/log下的日志文件占用了30GB空间。1.3 进程管理查看系统进程top -o %MEM按内存占用排序显示进程对排查内存泄漏特别有用。如果要结束进程kill -9 进程PID强制终止无响应的进程时-9信号是最后手段。建议先用普通kill尝试正常终止。2. 网络配置与故障排查2.1 基础网络配置查看IP地址和网卡信息ip addr show比传统的ifconfig命令显示更详细的信息。配置静态IP需要编辑sudo nano /etc/network/interfaces典型静态IP配置示例auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8修改后需要重启网络服务sudo systemctl restart networking2.2 网络诊断工具测试网络连通性ping -c 4 google.com-c参数指定发送次数避免无限ping。检查端口是否开放nc -zv 目标IP 端口号这个命令比telnet更简洁。查看路由表ip route show当网络出现问题时我通常会按以下顺序排查ping网关ping外部DNS(如8.8.8.8)检查路由表确认防火墙设置3. 软件包管理技巧3.1 APT基础操作更新软件源sudo apt update升级已安装的包sudo apt upgrade查找软件包apt search 关键词安装软件sudo apt install 包名3.2 高级包管理查看软件包信息apt show 包名列出已安装的包apt list --installed清理无用包sudo apt autoremove这个命令会自动移除那些作为依赖安装但现在不再需要的包。建议在定期维护时执行。4. 文件与权限管理4.1 文件操作命令递归复制目录cp -r 源目录 目标目录安全删除覆盖后删除shred -u -z -n 3 文件名这个命令会先覆盖文件3次再用0填充最后删除适合敏感数据。查找文件find / -name *.log -type f -mtime 30 -size 10M这个复杂查找会搜索大于10MB且30天前的日志文件。4.2 权限管理修改文件所有者sudo chown user:group 文件名设置权限chmod 755 脚本名.sh这里7rwx(所有者)5r-x(组和其他)。对于敏感文件建议chmod 600 私钥文件5. 系统服务管理5.1 systemd基础查看服务状态systemctl status 服务名启动/停止服务sudo systemctl start 服务名 sudo systemctl stop 服务名设置开机启动sudo systemctl enable 服务名5.2 日志查看查看系统日志journalctl -xe查看特定服务日志journalctl -u 服务名 -f-f参数可以实时跟踪日志输出调试服务时非常有用。6. 定时任务管理设置用户级定时任务crontab -e典型格式* * * * * 命令 | | | | | | | | | ----- 星期几 (0 - 6) (周日0) | | | ------- 月份 (1 - 12) | | --------- 日 (1 - 31) | ----------- 小时 (0 - 23) ------------- 分钟 (0 - 59)例如每天凌晨备份0 3 * * * /home/user/backup.sh查看当前用户的定时任务crontab -l7. 用户与组管理添加用户sudo adduser 新用户名设置密码passwd 用户名添加到sudo组sudo usermod -aG sudo 用户名锁定用户sudo passwd -l 用户名8. 防火墙配置查看防火墙状态sudo ufw status允许端口sudo ufw allow 22/tcp启用防火墙sudo ufw enable9. 性能监控实时监控htop比top更直观需要先安装sudo apt install htop磁盘I/O监控iotop网络流量监控nload10. 备份与恢复创建完整系统备份sudo tar -cvpzf backup.tar.gz --exclude/backup.tar.gz --exclude/proc --exclude/lostfound --exclude/sys --exclude/mnt --exclude/media --exclude/run /这个命令会排除临时文件和备份文件本身。恢复时sudo tar -xvpzf backup.tar.gz -C /11. 常见问题解决11.1 磁盘空间不足首先找出大文件sudo du -ahx / | sort -rh | head -20然后清理旧内核sudo apt autoremove --purge11.2 网络连接问题检查DNS解析nslookup google.com查看路由traceroute google.com11.3 服务无法启动查看错误日志journalctl -xe检查端口占用sudo netstat -tulnp | grep 端口号12. 实用小技巧快速计算文件夹大小du -sh 目录名查看命令历史history | grep 关键词创建临时文件mktemp这个命令会返回一个唯一的临时文件名。13. 安全加固建议禁用root SSH登录sudo nano /etc/ssh/sshd_config找到PermitRootLogin改为no然后重启SSH服务。定期更新sudo apt update sudo apt upgrade -y检查异常登录last14. 开发环境配置安装编译工具sudo apt install build-essential安装Python环境sudo apt install python3 python3-pip python3-venv创建虚拟环境python3 -m venv myenv source myenv/bin/activate15. 远程管理SSH密钥登录ssh-keygen -t rsa -b 4096 ssh-copy-id userremote_hostSCP传输文件scp 本地文件 userremote_host:远程路径16. 系统更新与维护升级到新版本sudo do-release-upgrade清理旧内核sudo apt autoremove --purge定期维护脚本sudo apt update sudo apt upgrade -y sudo apt autoremove -y sudo apt clean17. 性能调优调整swappinessecho vm.swappiness10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p这个值(0-100)控制系统使用swap的倾向建议设为10。优化文件系统sudo tune2fs -o journal_data_writeback /dev/sda1仅适用于ext4文件系统。18. 容器与虚拟化安装Dockersudo apt install docker.io sudo systemctl enable --now docker sudo usermod -aG docker $USER管理容器docker ps -a docker start 容器ID docker stop 容器ID19. 桌面环境优化安装常用工具sudo apt install gnome-tweaks调整工作区gsettings set org.gnome.desktop.wm.preferences num-workspaces 420. 系统监控仪表盘安装netdatabash (curl -Ss https://my-netdata.io/kickstart.sh)访问http://localhost:19999 查看实时监控。21. 日志管理安装logrotatesudo apt install logrotate配置示例(/etc/logrotate.d/myapp)/var/log/myapp/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 root adm sharedscripts postrotate systemctl reload myapp /dev/null endscript }22. 自动化脚本基础bash脚本模板#!/bin/bash set -euo pipefail IFS$\n\t # 脚本说明 usage() { echo 用法: $0 [选项] 参数 exit 1 } # 主函数 main() { local input while getopts :i:h opt; do case $opt in i) input$OPTARG ;; h) usage ;; *) usage ;; esac done [[ -z $input ]] usage echo 处理输入: $input } main $23. 系统救援从Live CD恢复启动到Live环境挂载原系统分区sudo mount /dev/sda1 /mntchroot到原系统sudo chroot /mnt修复GRUBsudo grub-install /dev/sda sudo update-grub24. 内核管理查看已安装内核dpkg --list | grep linux-image删除旧内核sudo apt purge linux-image-版本号25. 系统信息汇总一键获取系统概况echo 系统信息 uname -a echo -e \n 内存使用 free -h echo -e \n 磁盘空间 df -h echo -e \n 运行时间 uptime echo -e \n 登录用户 who这个组合命令可以快速了解系统状态我经常在远程支持时使用。