资讯详情

Linux常用命令场景化实战:文件、权限、网络与性能排查

📅 2026/9/18 4:33:07 | 华诺云谱 👁 阅读
Linux常用命令场景化实战:文件、权限、网络与性能排查
收藏几十条“Linux常用命令大全”却依然不会用的人我见过太多。坦白讲Linux命令不是“背”出来的是“按场景”用出来的——文件操作、权限管理、网络排查、日志分析、服务部署每个场景下真正高频的就那么十来条你只要把“命令和它管理的系统模块”对应起来再配合一套排查思路基本就能覆盖90%的日常。这篇东西没有废话目录也没有那种纯命令堆砌我按项目实战的顺序把Linux常用命令、快捷键和它们的适用场景一起讲透顺便穿插一些我在真实机器上踩过的坑。文章面向的是三类人刚入门Linux想尽快上手的新手、从Windows切到Linux开发的程序员、以及需要临时上服务器处理问题的运维同学。目标只有一个让你读完能直接用遇到问题知道先敲什么、再看什么、最后怎么收尾。1. 先把命令行的“地图”装进脑子命令不是背出来的很多人收藏“Linux命令大全60条”这类资料收藏完就吃灰原因是大脑没有把命令组织成一张地图。我的建议是先建立一个粗粒度的分类框架Linux命令本质上是Shell暴露出来的一组系统调用入口它管理的是这么几个核心对象文件系统、文本流、权限与账户、网络连接、进程与资源。拿我最常举的一个例子来说明这套框架怎么用。假设你要在一台新服务器上部署一个应用完整链路往往是解压交付的压缩包文件系统操作修改配置文件文本流处理为服务单独创建运行用户权限与账户管理调整目录属主和权限权限与账户管理启动服务进程进程管理检查端口是否监听网络连接排查查看服务日志确认运行状态文本流处理这条链路里的每一步背后都对应着一小组命令。你不需要会一百条命令才能干活先把这条链路上的二三十条用熟之后遇到问题再按模块去查效率比“从大全里找答案”高得多。另外一个必须建立的习惯是善用命令帮助系统。别一遇到不会的命令就打开浏览器搜索先在终端里敲man 命令名 命令名 --helpman能查到完整手册--help能快速看参数列表。再高级一点用apropos 关键字搜索手册页描述或者安装cheat工具直接看命令示例。很多人忽略man其实它在所有Linux发行版上都有还能离线查看是学习命令最扎实的入口。我自己的习惯是新学一个命令先man扫一遍选项再用--help做个精简版记录到笔记里最后结合实际场景用几遍基本就记住了。还有个小点Shell的通配符和命令补全Tab键一定要养成肌肉记忆。*.log、?、[abc]这些展开规则加上Tab补全路径能让你省下大量敲打键盘的时间也减少因路径打错导致的误操作。2. 文件与目录操作链路从定位、查看到移交文件系统操作是Linux日常工作的地基。新手最容易搞混的点在于命令并不难难的是理解文件在Linux里到底以什么形式存在。2.1 定位文件的位置pwd、ls、cd、find、whichpwd看当前目录ls列出目录内容这两个没什么好说的重点说find。find不是仅按文件名找文件它还有按类型、大小、时间、权限筛选的能力比如find /var/log -name *.log -mtime -7 # 找近7天内修改过的日志 find / -type f -size 500M # 找大于500MB的文件 find /tmp -type d -empty # 找空目录 find . -name *.conf -exec grep -l root {} \; # 找包含指定内容的配置文件find -exec是这个命令的灵魂所在它把“定位”和“后续动作”串成一条流水线。比如我要批量清理7天前的临时文件find /data/tmp -type f -mtime 7 -exec rm -f {} \;注意这里{}会被替换为找到的每个文件路径\;表示命令结束不能漏。批量操作前建议先不带-exec跑一遍确认范围无误再执行这是我吃过亏之后养成的习惯否则文件删错了很难找回。定位可执行文件用which它配合PATH环境变量找命令的真实路径。whereis还能连手册一起找适合看某个软件装了哪些文件。2.2 文件的创建、复制、移动和删除touch创建空文件mkdir -p一次性创建多级目录cp复制mv移动或重命名rm -rf删除目录及其内容这些命令选项多且杂我按最实用的组合列几个cp -a 源目录 目标目录 # 完整保留权限属性递归复制 mv -u 源文件 目标文件 # 仅当源文件更新时才移动 rm -i 文件 # 删除前逐条确认防止手滑这里重点说一个容易出事的地方rm -rf /这种灾难性命令以及变量展开为空时导致的误删。比如脚本里写rm -rf $TARGET/*如果$TARGET没赋值Shell就会把它展开成rm -rf /*。所以我的习惯是脚本里删除操作必须加保护先用set -u让未定义变量报错或者干脆用mv到/tmp的回收目录代替直接删除等确认无误再清。2.3 链接文件的坑硬链接与软链接链接这个知识点是面试题常客也是实操里容易踩坑的地方。区别在于硬链接共享同一个inode文件的物理数据索引删除任何一个链接只要还有一个链接存在文件数据就不会丢软链接符号链接是一个独立文件存的是目标路径目标被删除后软链接就“悬空”了ls -l会看到红底白字的损坏状态。创建方式分别是ln 源文件 链接名和ln -s 源文件 链接名。实际工作中配置文件的快捷方式、版本切换目录都爱用软链接。比如环境目录做版本发布时我经常这样操作ln -s /opt/app/release-2.1 /opt/app/current应用始终引/opt/app/current发布新版本时改一下软链接指向即可实现快速回滚。这里的核心思想是软链接保存的是路径操作对象不固定适合做入口切换硬链接保存的是inode操作的是数据本身适合做备份层。2.4 查磁盘空间du与df的配合磁盘满是最常见的线上事故之一。df -h看整个文件系统的挂载使用率du -sh看单个目录占用两个配合基本能快速找到“谁吃满了磁盘”。再狠一点用du -x --max-depth1从根开始逐层往下查du -h --max-depth1 / 2/dev/null | sort -hr | head -20这一条命令能瞬间列出整个系统中占用空间最大的前20个目录排查大文件时非常好用。3. 文本处理三剑客grep、sed、awk的日常姿势在Linux服务器上排查问题绕不开日志分析。而日志分析最核心的三件套就是grep按行过滤、sed按行增删改、awk按列处理。这三个工具能把一段原始的日志流变成一张清晰的统计表。3.1 grep最快的行匹配器grep的基本用法是“在文件里按关键字找行”但真正高效的是它的组合选项grep -i error app.log # 忽略大小写 grep -r Timeout /data/logs/ # 递归搜目录 grep -l ERROR *.log # 只输出包含匹配的文件名 grep -c 连接失败 app.log # 统计匹配行数 grep -v ^# nginx.conf # 排除注释行 grep -E ERROR|WARN app.log # 扩展正则多条件实际排障里最常用的是grep -E配合管道做多级过滤。比如我先找ERROR行再用grep -E 2024-06-01 1[0-5]:把时间范围缩小到当天12点到15点几秒钟就能锁定问题窗口。3.2 sed给文本做“增删改查”sed是按行读取、按规则处理、再输出的流编辑器它的价值在于不用打开文件就能批量修改。最常用的几个动作d删除行、p打印行、s/旧/新/g全局替换、i和a在指定行前/后插入。sed -n 20,30p app.log # 打印20到30行 sed -i s/192.168.1.10/192.168.1.20/g *.conf # 批量替换IP sed -i /^#/d config.ini # 删除所有注释行 sed -i 4i server_name example.com; nginx.conf # 在第4行前插入加-i表示原地修改也就是直接写回文件。这个参数省事但也很危险如果正则写错文件就被破坏了。我的经验是先不加-i跑一遍看输出确认无误再加。另外建议有一条黄金法则sed -i修改前先cp备份尤其在生产服务器的配置上多一步备份能兜底避免一次事故。3.3 awk按列处理的结构化魔法awk和grep、sed不同它擅长把一行文本拆成多列再做运算或格式化输出。比如ps aux的输出第一列是用户第二列是PID第三列是CPU占用率我可以这样提取出占用CPU最高的进程ps aux | awk $3 50 {print $2, $11, $3%}awk默认按空格或连续空白切分字段$1到$n表示第n列。内置变量里NR是当前行号NF是当前行字段数FS和OFS分别是输入、输出字段分隔符。BEGIN和END块很实用比如统计一个日志文件中每个状态码出现的次数awk {count[$9]} END {for (code in count) print code, count[code]} access.log这个命令把$9状态码列作为统计维度最后在END块里循环输出计数结果。一眼就能看出4xx、5xx的比例是请求失败排查的神器。3.4 三剑客组合的经典实战这三者极少单独使用最经典的组合是“grep先缩小范围awk再抽列sort和uniq做统计”。比如我想统计Nginx访问日志中今日访问量最高的前10个来源IPgrep 26/Jun/2024 access.log | awk {print $1} | sort | uniq -c | sort -rn | head -10这条流水线的思路是先按日期过滤日志行再用awk提取第一列IP接着sort把相同IP排在一起uniq -c统计每种出现的次数sort -rn按次数从大到小排列最后head -10取前10。这种“管道多个小工具”的组合方式就是Linux命令行哲学的体现每个工具只做一件事但把它们串起来就能完成一套复杂的数据加工流水线。4. 用户、权限与sudo系统门禁的配置与排错服务器安全的第一道防线就是账户和权限体系。很多人只知道chmod 777那只是能跑真正的管理思维是有多少服务就给多少用户每个用户只给够用的权限。4.1 新建用户的完整链路结合网上经常搜的“Linux新建用户”我在生产环境一般这样操作groupadd webapp # 新建组 useradd -g webapp -m -s /bin/bash webapp # 创建用户并指定主组、建家目录、指定Shell passwd webapp # 设置初始密码 usermod -aG sudo webapp # 追加sudo权限Ubuntu/Debian visudo # 编辑sudoers必要时细化授权这里要注意-g和-G的区别-g指定主组-G追加附属组。把用户加入sudo组用-aG不加-a会覆盖之前的所有附属组这可是一个影响很大的细节。删除用户时建议userdel -r 用户名连带家目录和邮件池一起清理避免残留垃圾。4.2 权限数字心算法与chmod的常见误区Linux权限三位一组分别是所有者、所属组、其他人的rwx。数字权限的核心心算法是读r4写w2执行x1三者相加得到一位数。比如chmod 754表示所有者可读可写可执行7421、组内可读可执行541)、其他人只读4。最容易出错的是目录的执行权限x。很多人以为目录只要有r权限就能进其实对目录来说x权限表示“是否允许进入该目录及访问其中文件的元数据”。只给目录r权限ls能看到文件名但cd进不去也读不了文件内容。所以要发布Web目录时至少得给到755。顺手再说一个查命令ls -l # 看文件权限 stat 文件名 # 看详细时间戳与权限数字 chown -R 用户:组 目录 # 递归改属主属组4.3 sudo的机制与PATH坑“明明命令存在sudo却提示command not found”是高频问题。原因很简单sudo默认重置了环境变量PATH会变成系统默认的安全路径而用户自定义的/usr/local/go/bin这类目录不在其中。解决办法是用绝对路径执行sudo /usr/local/go/bin/go version或者在visudo里设置Defaults secure_path追加自定义路径su和sudo也是两个完全不同逻辑的命令。su是切换用户需要目标用户的密码sudo是用自己的身份提权执行认证的是自己的密码。日常运维接触外部账号少能不用root就不用操作完了及时exit退出sudo环境。4.4 扩展权限ACL的精细控制标准权限只有三组满足不了“给某个特定用户单独开放目录”这类需求时就要用ACL访问控制列表setfacl -m u:zhangsan:rwx /data/project # 给zhangsan单独加权限 getfacl /data/project # 查看ACL setfacl -x u:zhangsan /data/project # 移除ACL条目ACL设置后ls -l显示的权限位后面会多出一个加号。做备份时要注意不是所有备份工具都会保留ACLtar需要加--acls参数否则恢复后权限就丢了。5. 网络排查与DNS配置从“不通”到“通了”的完整链路服务器连不上网、域名解析失败、端口不通这些问题是运维日常里最常见的故障类型。下面我按我的排查顺序写一遍这套链路处理过很多次生产故障照着走基本都能收敛到病因。5.1 网络排查五步法第一步ping网关或公共IP确认物理链路通不通ping -c 4 192.168.1.1第二步ip addr看网卡IP配置是否正确ip route或route -n看默认路由是否存在。第三步本机与外部的连通性ping 8.8.8.8如果网关通但公网IP不通问题多半在出口路由或运营商侧。第四步域名解析阶段dig 8.8.8.8 example.com如果能解析出IP说明不是DNS的问题解析失败或超时就检查/etc/resolv.conf。第五步端口与服务的状态ss -tlnp查看监听端口用nc -vz 目标IP 端口远程探测端口是否放通用curl -v看HTTP请求构建和响应全过程。这套顺序是从底层往上层推链路层 → 网络层 → DNS → 传输层 → 应用层。每一层都有对应的命令验证哪一步断了问题就在哪一段。5.2 Docker容器内的网络排查容器网络和宿主机不完全一样排查思路有一点区别。进入容器docker exec -it 容器名 bash cat /etc/resolv.conf ping 网关 curl -v 目标URL容器里常常没有ping、curl这些工具因为镜像被精简过。这时可以用docker run --rm --netcontainer:目标容器 curlimages/curl curl -v http://example.com这种“借用工具容器”的方式能临时绕过镜像缺少调试工具的尴尬。5.3 Linux配置DNS的常见坑搜索引擎里“linux中配置dns出现的问题”是长盛不衰的热搜词我特别想说说这个。很多教程让你直接修改/etc/resolv.conf但改完发现重启或过一会儿就“还原”了。原因是现代Linux系统里NetworkManager或systemd-resolved会接管这个文件。正确姿势要看你的系统版本如果用的是systemd-resolved不要直接改/etc/resolv.conf它通常是指向/run/systemd/resolve/stub-resolvers.conf的软链接。正确做法是修改/etc/systemd/resolved.conf文件里的DNS字段然后执行systemctl restart systemd-resolved。如果是NetworkManager管理网络推荐在连接配置文件里指定DNS或者用nmcli命令修改nmcli con mod Wired connection 1 ipv4.dns 114.114.114.114 nmcli con up Wired connection 1改完后必须验证最直接的是cat /etc/resolv.conf看内容是否已变化再用dig查一个域名确认解析正常。还有一个常见坑把DNS设置成了内网地址但/etc/resolv.conf的nameserver指向UDP 53端口防火墙恰好把UDP 53给挡了。解析表现为超时而不是立即失败。遇到这种情况用nc -uvz 你的DNS服务器 53测试UDP端口连通性即可。6. 压缩解压与中文乱码tar是主力但别让小坑毁掉耐心服务器之间传文件、部署应用、备份数据压缩和归档是绕不开的环节。这一节我们把主流格式和乱码问题一次讲透。6.1 tar归档与压缩要分开理解tar最初是磁带归档工具只负责“把一堆文件打包成一个文件”本身不压缩。我们平时用的tar.gz是“先tar归档再用gzip压缩”。所以打包和解包命令要分清楚tar czf app.tar.gz /opt/app # 打包并gzip压缩 tar xzf app.tar.gz -C /opt/ # 解压到指定目录 tar cjf app.tar.bz2 /opt/app # bzip2压缩体积更小但更慢 tar cJf app.tar.xz /opt/app # xz压缩压缩率最高 tar tf app.tar.gz # 只查看包内文件列表不解压解压之前先tar tf看一眼包内路径结构能防止“解压出散落一地的文件”这种情况。很多软件包交付时没有包一层总目录直接解压会把文件铺满当前目录这个习惯能帮你提前规避。6.2 中文乱码的根源与解法搜索热词里“linux 解压文件乱码”上榜很久了说明踩坑的人特别多。乱码的本质是编码不一致Windows的zip包文件名默认用GBK/GB18030编码而Linux系统的locale通常是UTF-8解压工具按UTF-8去解释GBK字符屏幕上就出现一堆乱码文件名。解决办法有三种按优先级推荐使用支持指定编码解压的unzip版本unzip -O gbk 中文压缩包.zip用7z处理它对编码的识别更宽容7z x 中文压缩包.zip如果已经解压出乱码文件名用convmv批量转码convmv -f gbk -t utf-8 --notest *我自己现在处理Windows传来的zip文件默认就直接用7z或unzip -O gbk避免二次折腾。另外Linux自己制作的zip包要发给Windows用户时建议提前用zip命令的-r参数时注意默认也按系统locale写文件名建议一致性处理一般建议统一用UTF-8。6.3 压缩包完整性校验传输中断、磁盘损坏都会导致压缩包损坏解压到一半才报错非常烦。因此解压前先做完整性检查gzip -t app.tar.gz # 检查gzip压缩包完整性 unzip -t app.zip # 检查zip压缩包 rar t app.rar # 检查rar压缩包大型包建议解压完成后再做一次文件数量或总大小的核对特别是备份恢复的场景完整性怎么谨慎都不过分。7. 资源与性能排查CPU、内存、磁盘的日常体检服务突然变卡、CPU飙到100%、内存被打满这类问题谁都会遇到。掌握一小撮性能排查命令能让你在“被拉去救火”时从容不少。7.1 进程状态ps与top的配合ps aux是最常用的静态快照字段稍多常用的是%CPU、%MEM、PID、COMMAND。找CPU占用最高的前几个进程ps aux --sort-%cpu | head -15按内存排序则把--sort-%cpu换成--sort-%mem。这个命令对我来说定位线上“谁把资源吃光了”永远比top更加直接因为它不吃交互就能输出完整列表。top则是动态刷新视图更适合持续观察。它的一些交互键很实用比如按下P按CPU排序按M按内存排序按k输入PID可杀进程按c显示完整命令行。想把输出保存下来慢慢看就用top -b -n 1 top.txt这种批处理模式。7.2 查看CPU信息与高性能参数lscpu能一次性列出CPU架构、核心数、线程数、频率等信息。对于压测和性能调优场景还常配合/proc/cpuinfo查看更细的信息。多核环境下单进程跑不满CPU是正常现象要看整体负载可以看uptime它输出三个load average值分别是过去1分钟、5分钟、15分钟的平均负载。一个粗略的经验是负载值除以核心数大于0.7说明有一定压力长期超过1.0说明接近满载了。7.3 内存视图free -h的关键差异free -h输出里的buff/cache经常让人误会“内存用完了”。其实这部分是Linux用来做磁盘缓存、文件缓存的内存当应用程序需要更多内存时内核会主动释放这部分缓存。真正需要关注的是available列它表示“在不触发交换的情况下还能给新进程分配多少内存”。所以看到buff/cache占用很高不要慌张看available才是准的。7.4 磁盘I/O与inode耗尽磁盘使用率没满但服务报错“No space left on device”这时要查inode是否耗尽df -iinode是文件系统管理文件元数据的索引节点文件数太多会把它耗光哪怕磁盘还有几十GB也写不进去。解决方式是找到小文件过多的目录清理或者从根上调整文件系统inode数量创建文件系统时指定-i参数。磁盘性能问题用iostat看iostat -x 1关注%util设备繁忙度和awaitIO请求平均等待时间。%util接近100%说明磁盘已经处于饱和状态这时候应用层再快也没用要么上SSD、要么做读写分离。8. 部署开发场景docker、git、nginx、k8s、gdb速查如果说前面的命令是Linux通用基础那么这一节就是现代后端开发和部署绕不开的“装备清单”。结合热搜词里的兴趣点我把docker、git、nginx、k8s、gdb这几个高频工具串讲一遍。8.1 docker镜像、容器、日志三板斧作为开发环境最常用的工具docker常用命令并不复杂docker images # 查看本地镜像 docker ps -a # 查看全部容器含退出 docker exec -it 容器名 bash # 进入容器 docker logs -f --tail 200 容器名 # 查看容器日志 docker build -t 镜像名:tag . # 构建镜像 docker compose up -d # 按编排文件启动服务 docker system prune # 清理过期资源实际调试时最常用的是先docker ps确认容器状态再docker logs -f跟踪日志。如果容器起不来先看docker inspect的日志和退出码再决定是删卷重建还是进容器排查。记住一条原则容器是“一次性”的不要试图进去手动改文件来修复问题要改就改Dockerfile或挂载配置重新构建。8.2 git从提交到回滚的日常节奏代码管理绕不开git。日常开发节奏其实就是这条链路git status # 看工作区状态 git add . # 暂存 git commit -m feat: 描述 # 提交 git push origin main # 推送 git pull --rebase # 拉取并变基保持线性历史 git log --oneline -10 # 看最近提交 git stash # 临时存起修改 git diff # 查看未暂存改动生产环境回滚是开发同学最容易紧张的操作。相邻两个发布版本并行时git rebase和git cherry-pick是两个高频操作。cherry-pick可以只挑某个提交合并到当前分支用于把修复代码单独拉到发布分支。git cherry-pick 提交ID git reset --hard 目标commit # 工作区整体回退到某次提交这里提醒git reset --hard非常危险会把工作区覆盖到目标提交状态未提交的修改会全部丢失。线上回滚前先把当前分支打包备份或者用git revert生成反向提交更安全。8.3 nginx配置检查与热加载Nginx的常用命令很少重点是养成“改配置前先检查、先备份”的习惯nginx -t # 检查配置语法 nginx -s reload # 热加载平滑重启 nginx -s stop # 停止 systemctl status nginx # 查看服务状态nginx -t通过后再reload是线上改配置的标准动作。reload不会中断现有连接等旧连接处理完就切换新配置这是Nginx设计上非常优秀的一点。8.4 k8s从Pod到日志的排查路径如果是Kubernetes环境命令主要围绕Podkubectl get pods -A # 看所有命名空间的Pod kubectl describe pod 名 # 查看事件定位启动失败原因 kubectl logs -f --tail100 pod名 -c 容器名 # 查看日志 kubectl exec -it pod名 -c 容器名 -- /bin/sh # 进入容器 kubectl apply -f 部署文件.yaml # 应用配置Pod起不来第一件事永远是kubectl describe里面的Events区会直接告诉你镜像拉取失败、资源不足还是探针失败。这比瞎猜高效得多。8.5 gdbC/C程序的调试利器如果你做C/C或Rust开发gdb常用命令少而精break main # 在main函数打断点 run # 运行程序 next # 单步跳过不进入函数 step # 单步进入函数 print 变量名 # 打印变量值 bt # 查看调用栈 quit # 退出用gdb定位“段错误Segmentation Fault”是经典场景。程序崩溃后gdb ./程序 core文件进入调试器bt查看调用栈直接看到崩溃位置。另外提一个内核和驱动开发同学会关心的点热搜词里出现了“linux 内核 动态加载 file_operations 拦截 read write”。这本质上是字符设备驱动开发的话题。做法是定义一个struct file_operations结构体把read、write函数指针指向自己实现的函数在函数内部先做拦截处理或记录日志再调用原始操作最后通过insmod动态加载模块rmmod卸载模块。读出这个思路再去啃file_operations结构体定义和核心模块的module_init就顺多了。8.6 adbAndroid调试常用如果你还兼职做Android开发或设备调试adb常用命令也不复杂adb devices # 查看连接的设备 adb shell # 进入设备的Shell adb install app.apk # 安装应用 adb logcat -v time # 查看设备日志 adb shell pm list packages # 查看已安装包列表设备连不上时先重启adb serveradb kill-server adb start-server。这个操作能解决非常多莫名其妙的连接问题。9. 终端与Vim快捷键把鼠标丢掉的那部分效率Linux下的快捷键可以分为三大块Shell终端本身的操作快捷键、Vim编辑器快捷键、以及开发工具VSCode/IDEA里的高频快捷键。把这一层掌握好你的操作速度能提升一个档次。9.1 Shell终端快捷键先说通用终端快捷键这些在大多数终端模拟器GNOME Terminal、Konsole、iTerm2等里都通用快捷键作用Ctrl C终止当前命令Ctrl Z挂起当前命令可再用fg恢复Ctrl D提交EOF退出当前ShellCtrl L清屏等同于clearCtrl A / Ctrl E光标跳到行首 / 行尾Ctrl U / Ctrl K删除光标前 / 光标后的内容Ctrl W删除光标前一个单词Ctrl R反向搜索历史命令继续按可循环匹配Tab命令名与路径自动补全连按两次显示候选两个我每天离不开的“历史短线”强烈推荐!!代表上一条命令sudo !!是权限不够时最常用的补救操作!$代表上一条命令的最后一个参数比如先mkdir /data/project紧接着cd !$就能直接进入刚创建的目录。Ctrl R搜索历史命令再配合Esc后左右方向键微调是我在高频操作里最顺手的一种习惯。9.2 Vim核心快捷键与模式思维Vim的学习曲线主要卡在“模式”上默认处于普通模式按键是命令按i进入插入模式可以打字按Esc回到普通模式输入:进入命令行模式可以执行保存退出等操作。普通模式下最实用的几个移动与编辑快捷键移动h/j/k/l 左下上右w/b 单词间跳转gg/G 文件首/尾 0/$ 行首/行尾 删除dd 删除整行dw 删除单词x 删除光标字符 复制粘贴yy 复制整行p 粘贴到下一行P 粘贴到上一行 撤销/重做u 撤销Ctrl r 重做 搜索/keyword 回车后按 n/N 前后跳转 替换:%s/old/new/g 全局替换 保存退出:wq 保存并退出:q! 不保存强制退出Vim的高频操作其实就是“移动删除粘贴”组合。比如我想把第25行移到第60行之后只需要第25行yy复制到第60行p粘贴再回到第25行dd删除原行三步搞定鼠标完全不需要出镜。9.3 编辑器与IDE快捷键速记VSCode和IDEA这类现代编辑器的快捷键在一定程度上是互通的。我整理几张最核心的速查表VSCode高频Ctrl Shift P命令面板所有功能都能搜到Ctrl P快速打开文件输入:再加行号可直接跳行Ctrl Shift F全局搜索Alt 上下方向键移动整行Shift Alt F格式化文档Ctrl \拆分编辑器IDEA高频Alt Enter快速修复最常用的一个没有之一Ctrl Alt L格式化代码Shift Shift全局搜索文件、类、操作都能找Alt 1打开/关闭项目树Ctrl H查看类继承结构Ctrl Alt T快速包裹代码块try/catch、if等移动端和终端流里还有一个好用的习惯给Ctrl Shift T配一个“重新打开刚关闭的终端标签”的快捷键误关终端的时候能救你一命。10. 结语把命令变成肌肉记忆的三个阶段最后分享一点个人体会。命令和快捷键的学习我最不推荐“集中两天背完”的方法那样遗忘速度比记忆快得多。有效的路径是分三个阶段走第一阶段每条命令只记最常用的两三个参数用alias和函数把高频操作封装起来。比如我习惯在~/.bashrc里写alias llls -lh --colorauto alias untartar xzf alias portsss -tlnp这样我只要敲一两个字母就能完成高频操作降低记忆负担。第二阶段按“场景”去练。今天专门处理日志就把grep、sed、awk的组合拳练熟明天专门搞权限就反复做创建用户、授权、sudo测试。场景驱动下的学习效率远高于对着命令表干记。第三阶段把踩过的坑记录下来。我每次在线上踩到关于命令的坑都会顺手记到一个Markdown文件里一年下来就是一份非常值钱的“个人手册”。比如“unzip中文乱码要用-O gbk”、“DNS改了不生效查systemd-resolved”、“df -i可以定位inode耗尽”这些才是命令大全里查不到的经验。Linux命令本身不产生价值用它们解决问题才产生价值。把这篇文章里的场景过一遍你会发现那些曾经让你挠头的命令慢慢就成了顺手拈来的工具。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。