资讯动态

Ubuntu常用命令速查手册:从入门到精通

发布时间:2026/10/27 14:04:52 来源:尧图企业网站定制
1. 为什么需要Ubuntu命令速查表作为一个从Windows转向Ubuntu的新手最让我头疼的就是记不住那些看似简单却至关重要的命令行操作。记得第一次在Ubuntu上想查看IP地址时我本能地打开了图形界面四处寻找网络设置花了十分钟才意识到在Linux世界里ifconfig或者更现代的ip addr才是最高效的解决方案。这份速查表正是为了解决这类痛点而生。不同于网上那些动辄几百条命令的大全我精心筛选了20%最常用却能解决80%日常问题的核心命令。这些命令经过我五年Ubuntu使用经验的验证特别适合刚从Windows/Mac转来的开发者需要快速上手Ubuntu的云计算学习者临时需要使用Linux系统的IT支持人员准备技术面试需要突击Linux命令的求职者提示本文所有命令均在Ubuntu 22.04 LTS测试通过对于其他版本可能需要微调。命令前的$符号表示普通用户权限#表示需要root权限实际输入时不要带这些符号。2. 文件与目录操作从生疏到熟练2.1 基础导航命令刚接触终端时最大的困惑就是我现在在哪和怎么去那里这两个问题$ pwd # 打印当前工作目录Print Working Directory /home/username $ ls # 列出当前目录内容 Documents Downloads Music Pictures $ ls -l # 详细列表格式包含权限、所有者、大小等信息 total 32 drwxr-xr-x 2 username username 4096 Jun 10 10:00 Documents drwxr-xr-x 2 username username 4096 Jun 10 10:00 Downloads $ cd /path/to/directory # 切换目录Change Directory $ cd .. # 返回上级目录 $ cd ~ # 返回家目录 $ cd - # 返回上一个所在目录常见踩坑点路径区分大小写Documents和documents是两个不同目录使用Tab键自动补全路径能避免拼写错误空格需要用引号包裹或使用转义符cd My Documents或cd My\ Documents2.2 文件操作四件套创建、查看、复制、移动和删除文件是日常最高频操作$ touch filename.txt # 创建空文件 $ mkdir dirname # 创建目录 $ mkdir -p path/to/dir # 创建多级目录 $ cat filename # 查看文件全部内容 $ less filename # 分页查看可上下滚动 $ head -n 5 filename # 查看前5行 $ tail -n 5 filename # 查看最后5行 $ tail -f logfile # 实时追踪日志文件变化 $ cp file1 file2 # 复制文件 $ cp -r dir1 dir2 # 递归复制目录 $ mv file1 file2 # 移动/重命名文件 $ rm filename # 删除文件 $ rm -r dirname # 递归删除目录血泪教训rm -rf /是著名的删库跑路命令绝对不要尝试建议先安装trash-cli用trash-put替代rm文件会进入回收站复制大文件时可用rsync -avP替代cp支持断点续传2.3 权限管理精髓Linux的权限系统常让新手困惑其实掌握三个数字就够用了$ chmod 755 script.sh # 所有者rwx组和其他人rx $ chown user:group file # 修改所有者和所属组 $ sudo chown root:root /usr/local/bin/myapp # 需要root权限的操作权限数字含义4 读(r)2 写(w)1 执行(x)相加即可如7421(rwx)541(rx)3. 系统监控与进程管理3.1 实时掌握系统状态当系统变慢时这些命令能快速定位问题$ top # 经典任务管理器按q退出 $ htop # 增强版top需安装sudo apt install htop $ free -h # 查看内存使用-h人类可读格式 $ df -h # 查看磁盘空间 $ du -sh * # 查看当前目录各文件/文件夹大小 $ uptime # 查看系统运行时间和负载 $ neofetch # 显示炫酷的系统信息需安装实用技巧在top中按M按内存排序P按CPU排序df -i可以查看inode使用情况解决磁盘有空间但无法写入的问题watch -n 1 df -h每秒刷新一次磁盘使用情况3.2 进程管理三板斧$ ps aux | grep nginx # 查看nginx相关进程 $ kill -9 1234 # 强制杀死PID为1234的进程 $ pkill nginx # 杀死所有nginx进程 $ killall python # 杀死所有python进程 $ bg %1 # 将暂停的作业1放到后台运行 $ fg %1 # 将后台作业1调回前台 $ jobs # 查看当前会话的作业列表进阶用法nohup command 让命令在退出终端后继续运行systemctl是管理systemd服务的新标准后文会详细介绍strace -p PID可以跟踪进程的系统调用用于调试4. 网络相关从连接到排错4.1 网络配置与诊断$ ip addr show # 查看IP地址ifconfig的现代替代 $ ping google.com # 测试网络连通性 $ traceroute google.com # 跟踪路由路径 $ netstat -tulnp # 查看监听中的端口和对应程序 $ ss -tulnp # netstat的现代替代更快 $ curl ifconfig.me # 查看公网IP $ wget http://example.com/file.zip # 下载文件 $ scp file.txt userremote:/path/ # 安全复制到远程排错案例 如果遇到ssh: connect to host port 22: Connection refused检查服务是否运行sudo systemctl status ssh检查防火墙sudo ufw status检查端口监听ss -tulnp | grep 224.2 SSH连接最佳实践# 生成密钥对比密码更安全 $ ssh-keygen -t ed25519 # 将公钥复制到服务器 $ ssh-copy-id userremote_server # 使用密钥登录 $ ssh -i ~/.ssh/id_ed25519 userremote_server安全建议禁用root的SSH登录修改/etc/ssh/sshd_config中PermitRootLogin no更改默认SSH端口修改Port 2222并重启服务sudo systemctl restart sshd使用fail2ban防止暴力破解sudo apt install fail2ban5. 软件包管理apt的妙用5.1 基础软件操作$ sudo apt update # 更新软件包列表必须第一步 $ sudo apt upgrade # 升级所有可升级软件包 $ sudo apt install vim # 安装软件 $ sudo apt remove vim # 移除软件保留配置文件 $ sudo apt purge vim # 完全移除包括配置 $ sudo apt autoremove # 自动移除不再需要的依赖 $ apt search keyword # 搜索软件包 $ apt show package # 显示软件包详细信息国内用户必看更换国内源备份/etc/apt/sources.list后替换为阿里云/清华等镜像源特定软件可能需要添加PPA$ sudo add-apt-repository ppa:deadsnakes/ppa $ sudo apt update $ sudo apt install python3.115.2 处理依赖问题$ sudo apt --fix-broken install # 修复损坏的依赖 $ sudo dpkg --configure -a # 配置未完成的安装 $ sudo apt clean # 清理下载的.deb文件遇到无法定位软件包怎么办确认拼写正确运行sudo apt update检查是否在正确的Ubuntu版本中可用可能需要添加universe仓库sudo add-apt-repository universe6. 文本处理三剑客6.1 grep文本搜索利器$ grep error /var/log/syslog # 搜索包含error的行 $ grep -r function /path/to/code # 递归搜索目录 $ grep -i warning file.txt # 忽略大小写 $ grep -v debug file.txt # 反向匹配不包含debug的行 $ grep -A 3 -B 2 exception file.txt # 显示匹配行前后内容性能技巧大文件搜索用ag(the_silver_searcher)或rg(ripgrep)更快正则表达式用-E启用扩展模式grep -E error|warning6.2 sed流编辑器$ sed s/foo/bar/g file.txt # 替换所有foo为bar $ sed -i.bak s/old/new/g file # 直接修改文件保留.bak备份 $ sed /pattern/d file.txt # 删除匹配行 $ sed -n 5,10p file.txt # 打印5到10行实用案例 批量重命名文件$ for file in *.jpg; do mv $file $(echo $file | sed s/IMG/Photo/); done6.3 awk数据提取专家$ awk {print $1} file.txt # 打印每行第一个字段 $ awk -F: {print $1} /etc/passwd # 以冒号分隔打印用户名 $ awk $3 100 {print $0} data # 第三个字段大于100的行 $ awk NR 5 NR 10 file # 打印5到10行类似sed -n统计Nginx日志状态码$ awk {print $9} access.log | sort | uniq -c | sort -rn7. 系统服务管理systemd7.1 服务生命周期管理$ sudo systemctl start nginx # 启动 $ sudo systemctl stop nginx # 停止 $ sudo systemctl restart nginx # 重启 $ sudo systemctl reload nginx # 重载配置不中断服务 $ sudo systemctl enable nginx # 设置开机启动 $ sudo systemctl disable nginx # 取消开机启动 $ sudo systemctl status nginx # 查看状态 $ journalctl -u nginx -f # 查看日志-f实时跟踪排错技巧systemctl status会显示最近日志摘录journalctl -xe查看详细系统日志sudo systemctl daemon-reload在修改服务文件后必须执行7.2 创建自定义服务示例创建Python脚本作为服务创建服务文件/etc/systemd/system/myapp.service[Unit] DescriptionMy Python Application [Service] Userusername WorkingDirectory/path/to/app ExecStart/usr/bin/python3 app.py Restartalways [Install] WantedBymulti-user.target启用服务$ sudo systemctl daemon-reload $ sudo systemctl start myapp $ sudo systemctl enable myapp8. 磁盘与文件系统管理8.1 挂载与卸载$ lsblk # 列出块设备 $ mount /dev/sdb1 /mnt # 临时挂载 $ umount /mnt # 卸载 # 永久挂载需要编辑/etc/fstab $ sudo blkid # 查看UUID推荐在fstab中使用fstab示例UUID1234-5678 /mnt/data ext4 defaults 0 28.2 磁盘检查与修复$ fsck /dev/sda1 # 检查文件系统必须先卸载 $ badblocks -v /dev/sdb # 检查坏块 $ smartctl -a /dev/sda # SMART检查硬盘健康需安装smartmontools重要警告永远不要对已挂载的文件系统运行fsck重要操作前先备份数据使用-n参数先进行只读检查9. 用户与权限进阶9.1 用户管理$ sudo adduser newuser # 交互式创建用户 $ sudo useradd -m -s /bin/bash newuser # 非交互式 $ sudo passwd username # 修改密码 $ sudo deluser --remove-home username # 删除用户及家目录 $ sudo usermod -aG sudo username # 授予sudo权限 $ groups username # 查看用户所属组安全实践避免直接使用root用sudo替代定期检查/etc/passwd和/etc/shadow权限使用visudo安全编辑sudoers文件9.2 ACL精细权限控制当基础权限不够时ACL提供了更细粒度的控制$ setfacl -m u:username:rwx file # 为用户添加权限 $ setfacl -m g:groupname:rx dir # 为组添加权限 $ getfacl file # 查看ACL权限10. 实用小技巧合集10.1 终端快捷键CtrlC终止当前命令CtrlZ暂停当前作业可用fg恢复CtrlD发送EOF退出终端或结束输入CtrlR反向搜索命令历史CtrlA移动到行首CtrlE移动到行尾Alt.插入上一个命令的最后一个参数10.2 命令组合技# 统计当前目录文件数 $ find . -type f | wc -l # 查找并删除7天前的.log文件 $ find /var/log -name *.log -mtime 7 -delete # 查看最耗内存的5个进程 $ ps aux --sort-%mem | head -n 6 # 批量修改文件扩展名 $ rename s/\.txt$/.md/ *.txt10.3 环境变量管理$ echo $PATH # 查看PATH变量 $ export PATH$PATH:/new/path # 临时添加路径 # 永久生效需要写入~/.bashrc或/etc/profile $ source ~/.bashrc # 重新加载配置11. 遇到问题怎么办11.1 自助排错三步法查手册$ man ls # 查看命令手册 $ ls --help # 快速帮助 $ tldr ls # 简化版手册需安装tldr查日志$ sudo tail -f /var/log/syslog # 系统主日志 $ journalctl -xe # systemd日志 $ dmesg | tail -20 # 内核日志查网络Ubuntu官方文档Ask Ubuntu社区Stack Overflow技术问答11.2 常见错误解决方案Command not found检查拼写确认软件是否安装which command或type command可能需要添加PATHecho $PATHPermission denied尝试加sudo检查文件权限ls -l可能是SELinux导致Ubuntu默认不启用No space left on device但df显示有空间检查inodedf -i可能被删除的文件仍被进程占用$ lsof L1 # 查看已删除但仍被占用的文件 $ restart相关服务12. 我的终端环境配置建议12.1 必装终端工具$ sudo apt install -y \ htop \ # 增强版top ncdu \ # 磁盘使用分析器 tmux \ # 终端复用器 zsh \ # 更强大的shell git \ # 版本控制 tree \ # 树状显示目录 ripgrep \ # 更快的grep替代 jq \ # JSON处理器 bat \ # 带语法高亮的cat fd-find # 更快的find替代12.2 美化终端安装Oh My Zsh$ sh -c $(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)推荐主题和插件# 修改~/.zshrc ZSH_THEMEagnoster plugins(git zsh-autosuggestions zsh-syntax-highlighting)安装Powerline字体解决符号显示问题$ sudo apt install fonts-powerline13. 版本控制基础Git13.1 日常Git工作流$ git init # 初始化仓库 $ git clone https://github.com/user/repo.git # 克隆远程 $ git status # 查看状态 $ git add file # 添加文件到暂存区 $ git commit -m message # 提交更改 $ git push origin main # 推送到远程 $ git pull # 拉取远程更新 $ git log --oneline --graph # 查看简洁历史13.2 实用Git技巧# 撤销工作区修改 $ git checkout -- filename # 修改最后一次提交 $ git commit --amend # 创建并切换分支 $ git checkout -b new-feature # 合并分支 $ git merge feature-branch # 解决冲突后标记为已解决 $ git add conflicted-file $ git commit14. 进阶学习路径建议掌握这些基础命令后可以逐步学习Shell脚本编程变量、条件判断、循环函数和参数处理错误处理和调试正则表达式基础模式匹配grep/sed/awk中的高级应用性能优化技巧网络服务管理Nginx/Apache配置防火墙(UFW/iptables)SSL证书管理容器化技术Docker基础命令Docker Compose编排容器网络和存储自动化工具Ansible基础Cron定时任务Systemd单元文件编写15. 个人使用心得在五年Ubuntu使用经历中我最深刻的体会是善用别名(alias)将长命令设为简短别名能极大提升效率。例如在~/.bashrc或~/.zshrc中添加alias updatesudo apt update sudo apt upgrade -y alias llls -alF alias grepgrep --colorauto历史命令是宝藏history | grep apt查找过去执行过的apt命令!123执行历史中第123条命令!!重复上一条命令加sudo常用sudo !!文档化你的配置 将重要配置变更记录在~/admin_notes.md中包括修改过的配置文件路径执行的命令变更原因和日期定期备份关键数据配置文件/etc目录家目录中的点文件.bashrc等重要项目代码最后提醒新手朋友Linux的强大之处在于组合简单命令解决复杂问题。与其死记硬背所有命令不如理解每个工具的设计哲学掌握man查阅手册的能力这才是长久之计。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑