Ubuntu常用命令大全:从基础到高级的系统管理指南
1. Ubuntu常用命令概述
作为一名Linux系统管理员,我每天的工作都离不开Ubuntu命令行操作。掌握常用命令不仅能提高工作效率,还能在服务器维护、故障排查等场景中游刃有余。本文将分享我在实际工作中总结的Ubuntu命令使用经验,涵盖文件管理、系统监控、网络配置等核心场景。
2. 文件与目录操作
2.1 基础文件管理
最常用的文件操作命令当属ls和cd:
ls -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技巧:
ctrl+r # 搜索历史命令 !! # 重复上条命令 !$ # 上条命令的最后一个参数 alias ll='ls -alF' # 创建常用命令别名推荐安装的生产力工具:
sudo apt install tmux tree jq ncdu ranger8.2 系统优化配置
调整swappiness值减少交换:
echo 'vm.swappiness=10' | 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 user@host9.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 --subnet=172.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