
1. Ubuntu常用命令概述作为一名Linux系统管理员我每天的工作都离不开Ubuntu命令行操作。掌握常用命令不仅能提高工作效率还能在服务器维护、故障排查等场景中游刃有余。本文将分享我在实际工作中总结的Ubuntu命令使用经验涵盖文件管理、系统监控、网络配置等核心场景。2. 文件与目录操作2.1 基础文件管理最常用的文件操作命令当属ls和cdls -alh # 显示所有文件(包括隐藏文件)的详细信息并以人类可读格式显示大小 cd ~/Documents # 切换到用户文档目录创建和删除目录时要注意权限问题mkdir -p project/{src,test} # 递归创建多级目录结构 rm -ri old_dir # 交互式删除目录(会提示确认)经验使用rm删除文件时建议先执行ls确认文件列表再替换为rm命令避免误删重要文件。2.2 文件查找与处理find命令是文件搜索的瑞士军刀find /var/log -name *.log -size 10M -exec ls -lh {} \; # 查找大于10MB的日志文件文本处理三剑客grep/awk/sed的典型用法grep -rn error /var/log/ # 递归搜索日志中的错误信息 df -h | awk $5 80 {print $6} # 找出磁盘使用率超过80%的分区 sed -i s/old/new/g config.txt # 批量替换文件内容3. 系统管理与监控3.1 进程管理查看系统进程的几种方式top -o %MEM # 按内存使用排序显示进程 htop # 更友好的交互式进程查看器(需安装) ps aux --sort-%cpu | head # 显示CPU占用最高的进程服务管理的标准操作systemctl status nginx # 查看服务状态 sudo service apache2 restart # 传统方式重启服务 kill -9 $(pgrep -f python script.py) # 强制结束指定进程3.2 硬件信息查看快速获取系统硬件信息lscpu # CPU信息 lsblk # 块设备列表 lspci -nnk | grep -i vga # 显卡信息 free -h # 内存使用情况磁盘空间监控技巧df -hT / # 查看根分区使用情况 du -sh * | sort -h # 排序显示当前目录各文件大小 ncdu # 交互式磁盘空间分析工具(需安装)4. 网络配置与诊断4.1 网络接口管理Ubuntu网络配置通常修改/etc/netplan/下的yaml文件network: version: 2 renderer: networkd ethernets: eth0: addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]应用配置并检查sudo netplan apply ip addr show eth04.2 网络诊断工具常用网络测试命令ping -c 4 google.com # 基本连通性测试 traceroute -n 8.8.8.8 # 路由追踪 mtr -w 8.8.8.8 # 实时路由诊断(需安装) ss -tulnp # 查看端口监听情况(替代netstat)下载文件测试带宽wget --output-document/dev/null http://speedtest.tele2.net/100MB.zip curl -o /dev/null -s -w %{speed_download}\n http://example.com/file5. 软件包管理5.1 APT基础操作更新软件源和升级系统的正确姿势sudo apt update # 只更新软件包列表 sudo apt upgrade # 升级所有可升级包 sudo apt full-upgrade # 处理依赖关系变更软件包管理常用命令apt search ^nginx$ # 精确搜索包 apt show nginx # 显示包详细信息 sudo apt install --only-upgrade package # 仅升级指定包5.2 高级包管理技巧清理无用包和缓存sudo apt autoremove # 删除自动安装且不再需要的包 sudo apt clean # 清理下载的.deb文件处理依赖问题sudo apt --fix-broken install # 修复损坏的依赖 sudo dpkg --configure -a # 配置未完成的安装6. 用户与权限管理6.1 用户账户操作用户管理标准流程sudo adduser newuser --disabled-password # 创建无密码用户 sudo usermod -aG sudo newuser # 添加sudo权限 sudo passwd -l olduser # 锁定用户账号查看用户信息id username # 显示用户ID和组信息 lastlog # 显示用户最后登录时间 who -a # 显示当前登录用户6.2 文件权限控制权限管理最佳实践chmod 750 script.sh # 设置文件权限(rwxr-x---) chown user:group file # 修改文件所有者和组 setfacl -m u:user:rwx dir # 设置ACL权限特殊权限设置chmod s /usr/bin/program # 设置SUID位 chmod t /tmp/shared # 设置粘滞位(仅所有者可删除)7. 系统维护与故障排查7.1 日志分析技巧查看系统日志的几种方式journalctl -xe -u nginx # 查看指定服务的日志 tail -f /var/log/syslog # 实时查看系统日志 grep -i error /var/log/* 2/dev/null # 搜索所有日志中的错误日志轮转配置示例(/etc/logrotate.d/custom)/var/log/myapp/*.log { daily missingok rotate 7 compress delaycompress notifempty create 640 root adm }7.2 系统备份策略关键目录备份示例sudo tar -cvpzf backup-$(date %F).tar.gz \ --exclude/backup-*.tar.gz \ --exclude/proc \ --exclude/tmp \ --exclude/mnt \ --exclude/dev \ --exclude/sys \ /数据库备份最佳实践mysqldump -u root -p --all-databases | gzip db_backup.sql.gz pg_dumpall -U postgres | gzip pg_backup.sql.gz8. 实用工具与技巧8.1 终端效率工具提高效率的shell技巧ctrlr # 搜索历史命令 !! # 重复上条命令 !$ # 上条命令的最后一个参数 alias llls -alF # 创建常用命令别名推荐安装的生产力工具sudo apt install tmux tree jq ncdu ranger8.2 系统优化配置调整swappiness值减少交换echo vm.swappiness10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p修改文件打开数限制echo * soft nofile 65535 | sudo tee -a /etc/security/limits.conf echo * hard nofile 65535 | sudo tee -a /etc/security/limits.conf9. 安全加固措施9.1 SSH安全配置/etc/ssh/sshd_config推荐设置PermitRootLogin no PasswordAuthentication no AllowUsers adminuser Port 2222密钥对认证设置ssh-keygen -t ed25519 # 生成更安全的密钥 ssh-copy-id -i ~/.ssh/id_ed25519.pub userhost9.2 防火墙配置UFW基本用法sudo ufw allow 22/tcp sudo ufw limit 22/tcp # 限制连接频率 sudo ufw enable查看防火墙状态sudo ufw status numbered sudo iptables -L -n -v # 查看详细规则10. 容器与虚拟化10.1 Docker基础操作Docker常用命令速查docker ps -a # 查看所有容器 docker images # 列出镜像 docker stats # 显示容器资源使用情况 docker system prune # 清理无用对象容器网络配置示例docker network create --subnet172.20.0.0/16 mynet docker run --net mynet --ip 172.20.0.2 -d nginx10.2 LXC容器管理LXC基本操作lxc-ls --fancy # 列出容器 lxc-attach -n container # 进入容器 lxc-copy -n template -N newcontainer # 复制容器容器资源限制配置lxc config set container limits.cpu 2 lxc config set container limits.memory 512MB