Ubuntu常用命令大全:从基础到高级的系统管理指南

📅 2026/7/17 11:47:52 👁️ 阅读次数 📝 编程学习
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 eth0

4.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/file

5. 软件包管理

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.gz

8. 实用工具与技巧

8.1 终端效率工具

提高效率的shell技巧:

ctrl+r # 搜索历史命令 !! # 重复上条命令 !$ # 上条命令的最后一个参数 alias ll='ls -alF' # 创建常用命令别名

推荐安装的生产力工具:

sudo apt install tmux tree jq ncdu ranger

8.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.conf

9. 安全加固措施

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@host

9.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 nginx

10.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