Ubuntu常用命令大全:从基础到高级实战

📅 2026/8/13 8:08:13
Ubuntu常用命令大全:从基础到高级实战
1. Ubuntu常用命令概述作为一名Linux系统管理员我每天的工作都离不开Ubuntu命令行操作。掌握这些基础命令就像厨师熟悉自己的刀具一样重要。无论你是刚接触Ubuntu的新手还是需要快速查阅命令的老手这份经过实战检验的命令手册都能帮你提升工作效率。Ubuntu作为最流行的Linux发行版之一其命令行工具继承了Linux的强大功能。我整理的命令清单不仅包含基础操作还特别标注了实际工作中容易踩坑的细节。这些命令在Ubuntu 20.04/22.04 LTS版本上均测试通过部分命令在不同版本间可能存在细微差异。2. 文件与目录操作2.1 基础导航命令pwd命令是我最常用的起点命令它能显示当前工作目录的完整路径。新手常犯的错误是在不确认当前位置的情况下直接操作文件这可能导致误删重要数据。pwd # 输出示例/home/username/Documentsls命令的进阶用法值得关注ls -l # 长格式显示包含权限、所有者等信息 ls -a # 显示隐藏文件以.开头的文件 ls -lh # 人类可读的文件大小显示KB/MB/GB注意在脚本中使用ls时建议加上--colornever参数避免颜色控制字符影响文本处理。2.2 文件操作技巧cp命令的-R参数在复制目录时必不可少但有个细节很多人不知道cp -R source_dir/ dest_dir # 注意source_dir后的斜线这会影响复制行为mv命令除了移动文件还是重命名的标准方式。我遇到过不少新手试图用图形界面批量重命名大量文件其实命令行更高效mv old_filename new_filename # 单个文件重命名 for f in *.txt; do mv $f ${f%.txt}.text; done # 批量修改扩展名rm命令的危险性众所周知我强烈建议设置以下别名alias rmrm -i # 每次删除前询问确认3. 系统信息查询3.1 硬件信息查看lscpu命令比cat /proc/cpuinfo更友好能清晰显示CPU架构信息lscpu | grep -E Architecture|Model name|CPU(s) # 关键信息过滤显卡信息查询特别是NVIDIA显卡nvidia-smi # NVIDIA显卡状态 glxinfo | grep OpenGL renderer # 当前使用的显卡3.2 系统状态监控top命令的替代方案htop需要额外安装但交互性更好sudo apt install htop htop # 支持鼠标操作的颜色化进程监控内存使用情况快速查看free -h # 以GB/MB为单位显示 watch -n 1 free -h # 每秒刷新显示4. 软件包管理4.1 APT基础操作更新软件源时我习惯先备份sources.list文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo apt update安装软件时的常见问题排查sudo apt install package_name 21 | grep -i fail\|error # 过滤错误信息4.2 高级包管理技巧查询软件包内容apt list --installed | grep python # 查看已安装的python相关包 dpkg -L package_name # 列出包安装的文件解决依赖问题的终极方案sudo apt --fix-broken install # 修复损坏的依赖关系5. 网络配置与调试5.1 基础网络命令ip命令已经取代了老旧的ifconfigip a # 显示所有网络接口 ip route show # 显示路由表网络连通性测试组合拳ping -c 4 google.com # 基本连通性 traceroute google.com # 路由追踪 mtr google.com # 综合诊断工具5.2 防火墙管理UFW防火墙的实用配置sudo ufw allow 22/tcp # 开放SSH端口 sudo ufw enable # 启用防火墙 sudo ufw status numbered # 带编号的规则列表6. 用户与权限管理6.1 用户账户操作添加用户时的完整流程sudo adduser newuser # 交互式创建 sudo usermod -aG sudo newuser # 授予sudo权限密码策略检查sudo chage -l username # 查看账户过期信息6.2 文件权限控制权限设置的记忆技巧chmod 755 script.sh # 7rwx(owner),5r-x(group/others) chown user:group file # 同时修改所有者和组特殊权限标志的注意事项chmod s /path/to/binary # 设置SUID慎用 find / -perm -4000 2/dev/null # 查找所有SUID程序7. 进程管理7.1 进程监控与操作ps命令的实用组合ps aux | grep -v grep | grep process_name # 精确查找进程 ps -eo pid,ppid,cmd,%mem,%cpu --sort-%mem | head # 内存占用排序终止进程的多种方式kill -9 PID # 强制终止最后手段 pkill -f pattern # 按名称模式终止 killall process_name # 终止所有同名进程7.2 后台任务管理tmux或screen的使用比简单的nohup更强大tmux new -s session_name # 新建会话 Ctrlb d # 分离会话 tmux attach -t session_name # 重新连接8. 文本处理三剑客8.1 grep进阶用法排除特定目录的搜索grep -r pattern --exclude-dir{dir1,dir2} /path显示匹配前后的上下文grep -A 3 -B 2 error logfile # 显示匹配行前后内容8.2 sed实战技巧就地修改文件先备份sed -i.bak s/old/new/g file.txt条件性替换sed /pattern/ s/old/new/ file # 只在包含pattern的行替换8.3 awk数据处理提取特定列并计算awk {sum$3} END {print sum} data.txt # 对第三列求和条件过滤输出awk $1 100 {print $2} data.txt # 第一列大于100时打印第二列9. 压缩与归档9.1 常见压缩格式tar的常用组合tar -czvf archive.tar.gz dir/ # 创建gzip压缩包 tar -xzvf archive.tar.gz # 解压gzip包zip文件的处理zip -r archive.zip dir/ # 递归压缩 unzip -l archive.zip # 查看内容而不解压9.2 大文件分割传输分割文件并合并split -b 100M bigfile bigfile_part # 分割为100MB块 cat bigfile_part* bigfile_restored # 合并还原10. 系统维护与日志10.1 日志分析技巧查看最新系统日志journalctl -xe # 查看最近的系统日志 tail -f /var/log/syslog # 实时监控日志按时间过滤日志journalctl --since 2023-01-01 --until 2023-01-0210.2 磁盘空间管理查找大文件的快速方法du -h --max-depth1 / | sort -h # 根目录下各文件夹大小 find / -type f -size 100M -exec ls -lh {} # 查找大于100MB的文件清理apt缓存sudo apt clean # 清理所有缓存 sudo apt autoremove # 删除不需要的依赖11. 实用小技巧合集11.1 命令行效率提升历史命令的妙用!$ # 上条命令的最后一个参数 !ssh # 执行最近以ssh开头的命令别名设置示例alias llls -alF alias updatesudo apt update sudo apt upgrade11.2 终端多路复用tmux分屏操作Ctrlb % # 垂直分割 Ctrlb # 水平分割 Ctrlb 方向键 # 切换面板12. 版本控制基础12.1 Git常用操作仓库初始化与提交git init git add . git commit -m Initial commit分支管理git branch new_feature git checkout new_feature git merge main12.2 远程仓库操作克隆与推送git clone https://github.com/user/repo.git git push origin main冲突解决流程git fetch git merge origin/main # 手动解决冲突后 git add conflicted_file git commit13. 容器化操作13.1 Docker基础命令镜像管理docker pull ubuntu:22.04 docker images docker rmi old_image容器生命周期docker run -it --name my_container ubuntu:22.04 bash docker start/stop/restart my_container docker rm my_container13.2 容器调试技巧进入运行中的容器docker exec -it my_container bash查看容器日志docker logs -f my_container14. 性能调优命令14.1 系统瓶颈诊断IO性能测试iotop # 需要sudo权限 dd if/dev/zero oftestfile bs1G count1 oflagdirect # 测试磁盘写入CPU压力测试stress -c 4 # 在4个核心上产生负载14.2 内存分析工具检查内存泄漏valgrind --leak-checkyes ./my_program查看内存使用详情cat /proc/meminfo15. 安全相关命令15.1 SSH安全配置密钥对认证设置ssh-keygen -t ed25519 ssh-copy-id userremote_host安全加固建议sudo nano /etc/ssh/sshd_config # 修改以下参数 # PermitRootLogin no # PasswordAuthentication no15.2 文件完整性检查计算校验和sha256sum important_file md5sum important_file监控文件变更stat important_file # 查看文件属性 inotifywait -m -r /path/to/monitor # 实时监控文件变化16. 环境变量管理16.1 变量设置与查看永久环境变量设置echo export PATH$PATH:/new/path ~/.bashrc source ~/.bashrc查看所有环境变量printenv env16.2 特定环境配置Python虚拟环境python3 -m venv myenv source myenv/bin/activate临时环境变量VARvalue command_to_run17. 定时任务管理17.1 crontab使用指南编辑用户crontabcrontab -e常见时间格式示例* * * * * command # 每分钟 0 * * * * command # 每小时 30 3 * * * command # 每天3:3017.2 systemd定时器替代cron的现代方案systemctl list-timers sudo systemctl enable --now mytimer.timer18. 硬件设备管理18.1 USB设备操作列出USB设备lsusb usb-devices挂载外部存储sudo mount /dev/sdb1 /mnt/usb sudo umount /mnt/usb18.2 磁盘分区工具fdisk基础操作sudo fdisk -l sudo fdisk /dev/sdb文件系统创建sudo mkfs.ext4 /dev/sdb119. 系统服务管理19.1 systemctl基础服务生命周期管理sudo systemctl start service_name sudo systemctl enable service_name sudo systemctl status service_name查看所有服务systemctl list-unit-files --typeservice19.2 服务日志查询journalctl过滤技巧journalctl -u service_name -f # 实时查看特定服务日志 journalctl --since 1 hour ago20. 高级查找命令20.1 find命令大全按时间查找文件find / -mtime -7 # 7天内修改过的文件 find / -size 10M -size -100M # 10MB到100MB之间的文件并行处理找到的文件find . -name *.log -print0 | xargs -0 rm20.2 locate替代方案更新文件数据库sudo updatedb快速文件定位locate filename | grep -i pattern21. 终端快捷键与技巧21.1 Bash快捷键移动和编辑效率提升Ctrla # 行首 Ctrle # 行尾 Ctrlu # 删除到行首 Ctrlk # 删除到行尾21.2 命令历史操作历史命令搜索Ctrlr # 反向搜索历史 history | grep keyword # 查找特定命令重复执行历史命令!! # 上一条命令 !42 # 执行历史中第42条命令22. 远程文件传输22.1 SCP安全拷贝基本传输语法scp local_file userremote:/path/to/dest scp -r local_dir userremote:/path/to/dest限速传输避免占用带宽scp -l 1000 large_file userremote:/path # 限制1000Kbit/s22.2 rsync高级同步增量备份方案rsync -avz --delete /source/ userremote:/backup/断点续传功能rsync -avz --partial /large_file userremote:/path23. 环境问题排查23.1 依赖库检查查看动态库依赖ldd /path/to/binary查找缺失的库sudo apt-get install apt-file apt-file search missing_library.so23.2 环境变量调试查看命令搜索路径which command_name type -a command_name诊断环境问题strace -f -e tracefile command_name # 跟踪文件访问24. 系统备份与恢复24.1 关键数据备份重要目录打包备份sudo tar -cvpzf backup.tar.gz --exclude/backup.tar.gz --exclude/proc --exclude/lostfound --exclude/sys --exclude/mnt --exclude/media --exclude/run /增量备份策略rsync -a --link-dest/previous_backup /source/ /new_backup/24.2 系统克隆工具dd命令克隆磁盘sudo dd if/dev/sda of/dev/sdb bs64K statusprogress更安全的克隆方案sudo apt install clonezilla25. 多系统管理25.1 GRUB配置更新引导菜单sudo update-grub修改默认启动项sudo nano /etc/default/grub # 修改GRUB_DEFAULT sudo update-grub25.2 磁盘挂载管理/etc/fstab配置示例UUID1234-5678 /mnt/data ext4 defaults 0 2临时挂载选项sudo mount -o remount,rw / # 以读写方式重新挂载根分区26. 开发环境配置26.1 编译器工具链安装构建工具sudo apt install build-essential调试工具安装sudo apt install gdb valgrind26.2 语言环境管理Python多版本控制sudo apt install python3-venv python3-pip python3 -m pip install --user virtualenvwrapperNode.js版本管理curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash nvm install 1627. 桌面环境技巧27.1 GNOME快捷键窗口管理快捷方式SuperTab # 应用切换 Super方向键 # 窗口贴边自定义快捷键gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings [/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/]27.2 显示配置调整多显示器设置xrandr --output HDMI-1 --right-of eDP-1 --auto缩放比例调整gsettings set org.gnome.desktop.interface text-scaling-factor 1.2528. 电源管理28.1 电池状态监控查看电池健康upower -i /org/freedesktop/UPower/devices/battery_BAT0功耗分析工具sudo apt install powertop sudo powertop28.2 节能配置CPU频率控制sudo apt install cpufrequtils cpufreq-info挂起与休眠systemctl suspend systemctl hibernate29. 声音设备管理29.1 音频控制命令行音量调节amixer set Master 50% pactl set-sink-volume 0 10%音频设备切换pactl list short sinks # 列出设备 pactl set-default-sink 1 # 切换设备29.2 问题排查声音系统状态alsamixer sudo alsactl store # 保存设置脉冲音频调试pulseaudio -k # 重启音频服务30. 实用脚本示例30.1 系统监控脚本资源监控脚本#!/bin/bash while true; do clear echo CPU: $(top -bn1 | grep Cpu(s) | sed s/.*, *\([0-9.]*\)%* id.*/\1/ | awk {print 100 - $1})% echo Memory: $(free -m | awk /Mem:/ {printf %.1f%%, $3/$2*100}) echo Disk: $(df -h / | awk /\// {print $5}) sleep 2 done30.2 自动备份脚本增量备份方案#!/bin/bash BACKUP_DIR/backups SOURCE_DIR/important_data DATE$(date %Y-%m-%d_%H-%M-%S) rsync -a --delete --link-dest$BACKUP_DIR/latest $SOURCE_DIR $BACKUP_DIR/$DATE ln -sfn $BACKUP_DIR/$DATE $BACKUP_DIR/latest31. 终端美化与配置31.1 Bash提示符定制PS1个性化设置export PS1\[\e[32m\]\u\h \[\e[34m\]\w \[\e[31m\]\$ \[\e[0m\]添加git分支信息parse_git_branch() { git branch 2 /dev/null | sed -e /^[^*]/d -e s/* \(.*\)/ (\1)/ } export PS1\u\h \w\[\033[33m\]$(parse_git_branch)\[\033[00m\] \$ 31.2 颜色方案配置修改终端配色dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color rgb(0,0,0) dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/foreground-color rgb(255,255,255)32. 网络服务调试32.1 Web服务测试curl高级用法curl -v http://example.com # 详细输出 curl -o /dev/null -s -w %{http_code}\n http://example.com # 仅获取状态码HTTP基准测试sudo apt install apache2-utils ab -n 1000 -c 10 http://test.site/32.2 端口扫描工具安全扫描示例sudo apt install nmap nmap -sV -T4 target_ip # 服务版本探测本地端口检查ss -tulnp # 查看监听端口33. 数据库操作33.1 MySQL基础命令行登录mysql -u username -p常用管理命令SHOW DATABASES; USE database_name; SHOW TABLES;33.2 PostgreSQL操作psql基本使用sudo -u postgres psql备份与恢复pg_dump dbname backup.sql psql dbname backup.sql34. 时间同步管理34.1 NTP配置检查时间同步状态timedatectl status sudo timedatectl set-ntp true手动同步时间sudo ntpdate pool.ntp.org34.2 时区设置修改时区sudo timedatectl set-timezone Asia/Shanghai硬件时钟同步sudo hwclock --systohc35. 内核与模块管理35.1 内核信息查询查看当前内核uname -r cat /proc/version列出加载的模块lsmod35.2 模块操作加载与卸载模块sudo modprobe module_name sudo rmmod module_name模块参数查看modinfo module_name36. 系统启动管理36.1 启动项控制查看启动服务systemd-analyze blame # 分析启动时间 sudo systemctl disable service_name # 禁用服务36.2 救援模式进入恢复模式sudo systemctl rescue # 基本救援模式 sudo systemctl emergency # 紧急模式37. 虚拟化相关命令37.1 KVM管理虚拟机创建sudo apt install qemu-kvm libvirt-daemon-system virt-install --name vm1 --ram 2048 --disk path/var/lib/libvirt/images/vm1.qcow2,size20 --vcpus 2 --os-type linux --os-variant ubuntu22.04 --network bridgevirbr0 --graphics none --console pty,target_typeserial --location http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/ --extra-args consolettyS0,115200n8 serial37.2 虚拟机监控查看运行中的VMvirsh list --all控制虚拟机状态virsh start vm_name virsh shutdown vm_name38. 系统日志轮转38.1 logrotate配置自定义日志轮转sudo nano /etc/logrotate.d/myapp示例配置内容/var/log/myapp/*.log { daily missingok rotate 7 compress delaycompress notifempty create 640 root adm sharedscripts postrotate systemctl reload myapp /dev/null endscript }38.2 手动执行轮转测试配置并运行sudo logrotate -d /etc/logrotate.conf # 调试模式 sudo logrotate -f /etc/logrotate.conf # 强制执行39. 系统安全加固39.1 基础安全扫描漏洞检查工具sudo apt install lynis sudo lynis audit systemrootkit检测sudo apt install rkhunter sudo rkhunter --check39.2 登录安全查看登录记录last grep Failed password /var/log/auth.log限制SSH访问sudo nano /etc/ssh/sshd_config # 添加AllowUsers username1 username240. 高级调试技巧40.1 strace系统调用跟踪调试程序行为strace -f -e tracefile,process command性能瓶颈分析strace -c command # 统计系统调用40.2 gdb调试基础核心转储分析gdb /path/to/executable core bt # 查看调用栈实时调试gdb -p pid # 附加到运行中的进程41. 系统性能基准测试41.1 CPU性能测试使用sysbenchsudo apt install sysbench sysbench cpu --cpu-max-prime20000 run41.2 磁盘IO测试fio综合测试sudo apt install fio fio --namerandread --ioenginelibaio --iodepth16 --rwrandread --bs4k --direct1 --size1G --numjobs4 --runtime60 --group_reporting42. 系统快照管理42.1 LVM快照创建快照sudo lvcreate -s -n snap01 -L 5G /dev/vg00/lv_root恢复快照sudo umount /dev/vg00/lv_root sudo lvconvert --merge /dev/vg00/snap0142.2 Btrfs快照创建子卷快照sudo btrfs subvolume snapshot / /snapshots/$(date %Y-%m-%d)回滚快照sudo mv / /old_root sudo btrfs subvolume snapshot /snapshots/2023-01-01 /43. 系统升级与维护43.1 发行版升级Ubuntu版本升级sudo do-release-upgrade内核单独升级sudo apt install linux-generic-hwe-22.0443.2 清理旧内核安全移除旧内核sudo apt autoremove --purge手动选择保留内核sudo apt-mark hold linux-image-5.15.0-60-generic44. 多语言环境配置44.1 区域设置查看当前区域locale生成新区域sudo locale-gen zh_CN.UTF-8 sudo update-locale LANGzh_CN.UTF-844.2 输入法安装Fcitx配置sudo apt install fcitx fcitx-googlepinyin im-config -n fcitx重启输入法框架fcitx-autostart45. 系统日志分析45.1 结构化日志处理journalctl高级查询journalctl -p err -b # 本次启动的错误日志 journalctl --since 2023-01-01 --until 2023-01-02 _UID1000 # 按用户ID过滤45.2 日志可视化使用lnav工具sudo apt install lnav lnav /var/log/syslog46. 系统资源限制46.1 ulimit配置查看当前限制ulimit -a修改用户限制sudo nano /etc/security/limits.conf # 添加 # username hard nofile 1000046.2 cgroups控制创建控制组sudo cgcreate -g cpu,memory:/mygroup设置资源限制sudo cgset -r cpu.shares512 mygroup47. 系统备份恢复47.1 全盘备份方案使用ddrescuesudo apt install gddrescue sudo ddrescue /dev/sda /mnt/backup/sda.img /mnt/backup/sda.logfile47.2 文件级恢复从备份中提取文件tar -xzvf backup.tar.gz path/to/file使用extundeletesudo apt install extundelete sudo extundelete /dev/sda1 --restore-file /home/user/important.txt48. 系统性能调优48.1 内核参数优化临时修改参数sudo sysctl -w vm.swappiness10永久生效设置sudo nano /etc/sysctl.conf # 添加vm.swappiness10 sudo sysctl -p48.2 文件系统优化ext4挂载选项sudo nano /etc/fstab # 修改为defaults,noatime,nodiratime,commit6049. 网络性能优化49.1 TCP参数调整查看当前设置sysctl net.ipv4.tcp_*优化建议配置sudo nano /etc/sysctl.conf # 添加 # net.ipv4.tcp_window_scaling 1 # net.core.rmem_max 16777216 # net.core.wmem_max 1677721649.2 网卡调优查看网卡队列ethtool -l eth0调整RX/TX队列sudo ethtool -G eth0 rx 4096 tx 409650. 系统监控告警50.1 基础监控设置使用sysstatsudo apt install sysstat sudo nano /etc/default/sysstat # 修改ENABLEDtrue sudo systemctl enable sysstat50.2 自定义告警脚本磁盘空间监控示例#!/bin/bash THRESHOLD90 CURRENT$(df / | grep / | awk { print $5} | sed s/%//g) if [ $CURRENT -gt $THRESHOLD ]; then mail -s Disk Space Alert adminexample.com Root partition is ${CURRENT}% full fi