30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度这次我们来看一个对零基础学习编程至关重要的基础工具——Linux命令。无论你是准备进入后端开发、运维、云计算还是嵌入式领域Linux命令行都是绕不开的核心技能。很多初学者觉得命令行复杂难记其实关键在于掌握一套系统化的学习方法和常用命令的实战场景。这篇文章的重点不是让你死记硬背几百个命令而是帮你快速建立Linux命令的知识框架知道哪些命令最常用、分别在什么场景下使用、以及如何通过在线环境或虚拟机安全地进行实操练习。我们会从最基础的目录操作、文件管理到进阶的进程查看、网络调试和权限管理覆盖编程学习中最常遇到的Linux操作需求。对于零基础的同学最关心的问题通常是我需要把所有命令都背下来吗答案是否定的。你应该先掌握大约20-30个最核心的命令理解它们的使用逻辑然后通过实际项目需求去扩展。本文将围绕“文件操作”、“文本处理”、“系统管理”、“网络工具”和“开发辅助”这几个核心模块为你梳理一份清晰、实用的命令学习路径并告诉你如何利用免费的在线Linux环境或本地虚拟机进行动手练习避免在真机上误操作的风险。1. 核心能力速览Linux命令学习全景图在深入细节之前我们先通过一个表格快速了解Linux命令学习的核心模块和对应的关键命令这能帮助你建立整体认知知道学习的重点在哪里。能力模块核心命令示例主要应用场景学习优先级文件与目录管理ls,cd,pwd,mkdir,rm,cp,mv,find浏览、创建、删除、复制、移动文件和目录查找文件★★★★★ (最高)文件内容查看与编辑cat,more,less,head,tail,vim,nano查看日志、编辑配置文件、阅读代码文件★★★★★权限与用户管理chmod,chown,sudo,useradd,passwd设置文件权限、管理用户账户、执行特权命令★★★★☆文本处理与搜索grep,awk,sed,wc,sort,uniq过滤日志、提取数据、统计行数、排序去重★★★★☆系统进程与性能ps,top,htop,kill,jobs,bg,fg查看运行进程、监控资源、结束异常任务★★★★☆网络操作与调试ping,curl,wget,ssh,scp,netstat,telnet测试连通性、下载文件、远程连接、端口扫描★★★★☆压缩与归档tar,gzip,zip,unzip打包项目、压缩备份、解压软件包★★★☆☆磁盘与存储管理df,du,mount,fdisk查看磁盘空间、挂载设备、管理分区★★★☆☆软件包管理apt,yum,dnf,pip,npm(依发行版而定)安装、更新、卸载软件和开发库★★★★☆ (依赖系统)学习门槛与环境学习Linux命令本身对硬件几乎没有要求。你可以在任何一台电脑上通过虚拟机如VirtualBox安装Ubuntu、WSLWindows Subsystem for Linux或者免费的在线Linux环境如菜鸟教程提供的在线工具、一些云服务商的免费实例进行练习。这完全避免了在物理机上误操作导致系统崩溃的风险。2. 适用场景与使用边界适合谁学编程初学者尤其是学习Python、Java、Go、C等后端或系统编程语言的同学。很多开发工具链如Git、Docker、Maven和服务器部署都依赖命令行。运维与DevOps入门者服务器管理、自动化脚本、CI/CD流程的基础。数据科学与AI学习者在Linux服务器上配置Python环境、管理数据集、运行训练任务更高效。任何希望提升工作效率的技术人员命令行在批量处理文件、日志分析等方面远比图形界面高效。能解决什么问题高效管理服务器通过SSH远程连接无图形界面的服务器完成所有配置和运维工作。自动化重复任务编写Shell脚本自动完成文件备份、日志清理、数据打包等操作。深入排查问题使用grep搜索错误日志用top查看资源瓶颈用netstat分析网络连接。顺畅使用开发工具熟练使用Git命令行、Docker命令、包管理命令pip,npm是现代开发的标配。不适合什么场景复杂的图形界面操作如图像编辑、视频剪辑、大型IDE的深度可视化调试命令行并非最佳选择。对操作实时反馈和可视化要求极高的交互。安全与合规边界权限意识谨慎使用sudo和rm -rf /这类高危命令。在练习环境中操作是安全的但在生产或个人主力机上删除操作前务必双重确认路径。合法授权通过ssh连接他人服务器或使用scp传输文件必须获得明确授权。隐私保护使用find、grep等命令搜索文件内容时注意不要侵犯他人隐私或泄露敏感信息。3. 环境准备三种零成本实操方案动手练习是学习命令的唯一途径。下面提供三种无需破坏现有系统的安全方案推荐初学者按顺序尝试。3.1 方案一使用在线Linux环境最快上手这是最安全、最便捷的方式打开浏览器即可使用。推荐平台菜鸟教程的“Linux 在线工具”、https://www.jdoodle.com/、https://c.runoob.com/等。优点无需安装支持基础命令练习适合学习语法和简单操作。缺点功能可能受限无法进行需要持久化存储或特定系统配置的复杂练习。操作直接访问网站在网页提供的终端里输入命令即可看到结果。3.2 方案二使用Windows WSLWindows用户推荐WSL让你在Windows内获得一个完整的Linux子系统与Windows文件系统互通体验极佳。系统要求Windows 10 版本 2004 及更高版本或 Windows 11。安装步骤以管理员身份打开 PowerShell 或 Windows 终端。运行以下命令启用WSL功能并安装默认的Ubuntu发行版# 启用适用于 Linux 的 Windows 子系统 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 启用虚拟机平台 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 重启计算机必须 # 重启后将 WSL 2 设置为默认版本 wsl --set-default-version 2 # 从 Microsoft Store 安装 Ubuntu或使用命令安装 wsl --install -d Ubuntu安装完成后在开始菜单找到Ubuntu应用启动完成初始用户名和密码设置。3.3 方案三使用虚拟机最接近真实环境在现有系统Windows/macOS/Linux上通过虚拟机软件安装一个完整的Linux系统。所需软件虚拟机软件Oracle VirtualBox免费或 VMware Workstation Player个人免费。Linux系统镜像推荐 Ubuntu Desktop LTS 版本易用或 CentOS Stream偏服务器学习从官网下载.iso文件。安装流程安装VirtualBox。新建虚拟机分配内存建议2GB以上和硬盘空间建议20GB以上。加载下载的.iso镜像文件作为启动盘。启动虚拟机跟随图形化向导完成Linux系统安装。选择建议零基础且只想快速体验命令选方案一。Windows用户希望长期学习并与Windows生态融合选方案二。希望获得最完整、隔离的Linux体验不介意稍复杂的安装步骤选方案三。4. 文件与目录操作立足之本这是你使用频率最高的一组命令相当于在图形界面中“我的电脑”里所做的所有操作。4.1 基础导航与查看# 1. 查看当前所在目录的完整路径 pwd # 2. 列出当前目录下的文件和子目录 ls # 简单列表 ls -l # 以长格式列表显示权限、所有者、大小、时间等详细信息 ls -a # 列出所有文件包括隐藏文件以.开头的文件 ls -lh # 长格式列表并以人类可读的方式显示文件大小K, M, G # 3. 切换目录 cd /home/user/Documents # 切换到绝对路径 cd .. # 切换到上级目录 cd ~ # 切换到当前用户的家目录 cd - # 切换回上一个所在的目录 # 4. 创建目录 mkdir new_folder # 创建单个目录 mkdir -p project/src/utils # 递归创建多级目录即使父目录不存在4.2 文件操作创建、复制、移动、删除警告rm命令删除后一般无法从回收站恢复请谨慎使用尤其在sudo权限下。# 1. 创建空文件 touch new_file.txt touch file1.txt file2.txt # 同时创建多个文件 # 2. 复制文件或目录 cp source.txt destination.txt # 复制文件 cp -r source_dir/ destination_dir/ # 递归复制整个目录 # 3. 移动或重命名文件或目录 mv old_name.txt new_name.txt # 重命名文件 mv file.txt /target/directory/ # 移动文件到目标目录 # 4. 删除文件或目录 rm unwanted_file.txt # 删除文件会询问确认如果文件无写权限 rm -f forced_delete.txt # 强制删除不询问 rm -r directory_name/ # 递归删除目录及其内容危险 # 更安全的删除习惯先 ls 确认再 rm ls directory_to_delete/ rm -r directory_to_delete/4.3 查找文件find命令功能强大是定位文件的利器。# 1. 在当前目录及子目录中按名称查找文件 find . -name *.log # 查找所有.log结尾的文件 find /home -name config.* # 在/home目录下查找名字以config开头的文件 # 2. 按类型查找 find . -type f -name *.py # 查找当前目录下所有.py类型的普通文件 find . -type d -name src # 查找名为src的目录 # 3. 按时间查找用于日志清理 find /var/log -type f -mtime 7 # 查找/var/log下7天前修改过的文件 find . -type f -mmin -10 # 查找当前目录下10分钟内修改过的文件5. 文件内容查看与编辑5.1 查看文件内容# 1. 查看整个文件内容 cat server.log # 2. 分页查看长文件推荐 less server.log # 进入less后使用空格键向下翻页b键向上翻页/keyword搜索q键退出。 # 3. 查看文件开头或结尾部分 head -n 20 server.log # 查看文件前20行 tail -n 50 server.log # 查看文件末尾50行 tail -f server.log # 实时追踪文件新增内容监控日志的神器5.2 文本编辑Vim基础vi或vim是Linux中最强大的终端文本编辑器学习曲线陡峭但值得投资。掌握以下几个模式足以应对大多数编辑任务。vim my_script.sh正常模式 (Normal Mode)打开文件后即处于此模式。用于移动光标、删除、复制、粘贴。hjkl左、下、上、右移动光标。x删除光标所在字符。dd删除当前行。yy复制当前行。p粘贴。:w保存文件。:q退出。:wq或ZZ保存并退出。:q!不保存强制退出。插入模式 (Insert Mode)在此模式下可以输入文本。按i键进入插入模式在光标前插入。按a键进入插入模式在光标后插入。按o键进入插入模式在当前行下方新建一行并插入。按Esc键返回正常模式。命令行模式 (Command-line Mode)在正常模式下按:进入用于执行保存、退出、搜索替换等命令。:%s/old/new/g将文件中所有的old替换为new。初学者备选如果觉得vim太难可以使用nano编辑器它更简单直观。nano my_script.sh # 编辑后按 Ctrl X然后按 Y 确认保存回车确认文件名即可退出。6. 文本处理与搜索数据分析的利器这是体现命令行效率的核心领域尤其在处理日志、配置文件和数据文件时。6.1 grep全局搜索正则表达式用于在文件中搜索匹配特定模式的行。# 1. 基本搜索 grep error app.log # 在app.log中搜索包含“error”的行 grep -i warning app.log # -i 忽略大小写 grep -n 404 access.log # -n 显示匹配行的行号 grep -r function_name ./src # -r 递归搜索目录下所有文件 # 2. 结合管道使用非常常见 cat app.log | grep error | head -5 # 查看app.log中前5个错误 ps aux | grep python # 查看所有包含“python”的进程6.2 awk强大的文本分析工具擅长处理结构化文本如以空格、逗号分隔的列数据。# 假设有一个文件 data.txt 内容如下 # Alice 25 Engineer # Bob 30 Designer # Charlie 28 Manager # 1. 打印特定列 awk {print $1} data.txt # 打印第一列姓名 awk {print $1, $3} data.txt # 打印第一列和第三列 # 2. 根据条件过滤行 awk $2 26 {print $1, $2} data.txt # 打印年龄大于26岁的人的姓名和年龄 # 3. 结合其他命令 ps aux | awk {print $1, $4} | head -10 # 查看进程的用户名和CPU占用率6.3 sed流编辑器主要用于对文本进行替换、删除、插入等操作。# 1. 替换文本最常用 sed s/old/new/g input.txt # 将文件中所有的old替换为new结果输出到屏幕 sed -i s/old/new/g input.txt # -i 直接修改原文件操作前建议备份 # 2. 删除行 sed 5d input.txt # 删除第5行 sed /pattern/d input.txt # 删除包含pattern的行 # 3. 实际应用批量修改配置文件 # 将 config.ini 中所有 “debug true” 改为 “debug false” sed -i s/debug true/debug false/g config.ini6.4 其他实用文本工具# 1. wc统计行数、单词数、字节数 wc -l access.log # 统计文件行数常用于统计代码行数、日志条目数 wc -w essay.txt # 统计单词数 wc -c binary.file # 统计字节数 # 2. sort排序 sort names.txt # 按字母顺序排序 sort -n numbers.txt # -n 按数值大小排序 sort -r data.txt # -r 逆序排序 # 3. uniq报告或忽略重复行通常先sort sort duplicates.txt | uniq # 去重 sort duplicates.txt | uniq -c # -c 计数显示每行重复次数7. 系统进程与性能监控当程序卡住、服务器变慢时这些命令是你的“手术刀”。7.1 查看进程状态# 1. ps查看当前进程快照 ps aux # 查看系统所有进程的详细信息最常用 ps aux | grep nginx # 查找与nginx相关的进程 ps -ef # 另一种格式显示完整格式的进程树 # 2. top / htop动态监控进程和系统资源 top # 交互式进程查看器按CPU使用率排序 # 在top界面中按 P 按CPU排序M 按内存排序q 退出。 htop # top的增强版更直观可能需要安装sudo apt install htop7.2 进程控制# 1. 在后台运行程序 python long_running_script.py # 在命令末尾加 使其在后台运行 # 会返回一个 [job number] 和进程ID (PID) # 2. 查看后台作业 jobs # 列出当前shell的后台作业 # 3. 将后台作业切换到前台 fg %1 # 将作业号为1的作业切换到前台运行 # 4. 终止进程 kill PID # 向指定PID的进程发送终止信号默认SIGTERM允许进程清理 kill -9 PID # 发送SIGKILL信号强制立即终止进程万不得已时使用 pkill -f python script.py # 根据进程名或参数终止进程8. 网络操作与调试8.1 连通性测试与下载# 1. ping测试网络连通性 ping -c 4 www.baidu.com # -c 指定发送数据包次数 # 2. curl强大的网络数据传输工具可模拟浏览器请求 curl https://api.example.com/data.json # 获取URL内容 curl -O https://example.com/file.zip # -O 下载文件并以远程文件名保存 curl -X POST -H Content-Type: application/json -d {key:value} https://api.example.com/endpoint # 发送POST请求 # 3. wget另一个常用的下载工具 wget https://example.com/large_file.iso # 下载文件 wget -c https://example.com/big_file.tar.gz # -c 断点续传8.2 远程连接与文件传输# 1. ssh安全地远程登录服务器 ssh usernameserver_ip_address # 使用密码登录 ssh -i /path/to/private_key.pem usernameserver_ip_address # 使用密钥对登录 # 2. scp通过SSH安全地复制文件 scp local_file.txt usernameserver_ip:/remote/directory/ # 上传本地文件到服务器 scp usernameserver_ip:/remote/file.txt ./local_dir/ # 从服务器下载文件到本地 scp -r local_dir/ usernameserver_ip:/remote/ # -r 递归复制整个目录8.3 网络状态与端口检查# 1. netstat / ss查看网络连接、路由表、接口统计等 netstat -tulpn | grep :80 # 查看哪些进程在监听80端口需要sudo权限 ss -tulpn # ss是netstat的现代替代品更快更清晰 # 2. telnet测试TCP端口是否开放也可用于简单协议测试 telnet server_ip 22 # 测试服务器的22号(SSH)端口是否可达 # 如果连接成功会显示SSH横幅如果失败则连接被拒绝或超时。 # 注意许多系统默认不安装telnet可使用 nc (netcat) 替代nc -zv server_ip 229. 权限管理理解Linux的安全基石Linux是一个多用户系统权限控制至关重要。9.1 理解文件权限使用ls -l查看文件时会看到类似-rwxr-xr--的字符串。第1位-表示普通文件d表示目录。第2-4位文件所有者的权限u。第5-7位文件所属用户组的权限g。第8-10位其他用户的权限o。r 读 (4)w 写 (2)x 执行 (1)。例如-rwxr-xr--表示所有者可读、写、执行组用户可读、执行其他用户仅可读。9.2 修改权限 (chmod)# 1. 数字模式最精确 chmod 755 my_script.sh # 755 对应所有者 rwx(4217) 组用户 r-x(4015) 其他用户 r-x(4015) # 2. 符号模式更直观 chmod ux my_script.sh # 给所有者增加执行权限 chmod g-w config.cfg # 移除组用户的写权限 chmod or my_file.txt # 设置其他用户只有读权限 chmod ax public_script.sh # a 代表所有用户给所有人增加执行权限9.3 修改所有者和所属组 (chown, chgrp)# 将文件的所有者改为 user1所属组改为 group1 sudo chown user1:group1 important_file.txt # 仅修改文件所属组 sudo chgrp developers project_folder/9.4 超级用户权限 (sudo)sudo允许授权用户以超级用户root或其他用户的身份执行命令。sudo apt update # 以root权限更新软件包列表 sudo systemctl restart nginx # 以root权限重启nginx服务重要原则只在必要时使用sudo并清楚知道正在执行的命令会带来什么影响。10. 压缩与归档打包与备份10.1 tar经典的归档工具tar本身只打包不压缩。常与压缩工具gzip,bzip2联用。# 1. 打包并压缩创建归档 tar -czvf archive_name.tar.gz /path/to/folder/ # -c 创建-z 用gzip压缩-v 显示过程-f 指定文件名 tar -cjvf archive_name.tar.bz2 /path/to/folder/ # -j 用bzip2压缩压缩率更高更慢 # 2. 解压归档 tar -xzvf archive_name.tar.gz # -x 解压-z 解压gzip tar -xjvf archive_name.tar.bz2 # -j 解压bzip2 tar -xvf archive_name.tar # 解压未压缩的tar包 # 3. 仅查看归档内容不解压 tar -tzvf archive_name.tar.gz10.2 zip/unzip跨平台兼容# 压缩 zip -r archive_name.zip folder_to_compress/ # 解压 unzip archive_name.zip unzip -d target_directory archive_name.zip # 解压到指定目录11. 磁盘与存储管理# 1. df查看磁盘空间使用情况 df -h # -h 以人类可读的格式G, M显示 # 2. du查看目录或文件的磁盘使用量 du -sh /home/user/Downloads # -s 总计-h 人类可读查看Downloads目录总大小 du -h --max-depth1 /var/log # 查看/var/log下一级子目录的大小 # 3. mount / umount挂载和卸载存储设备 mount /dev/sdb1 /mnt/usb_drive # 将设备/dev/sdb1挂载到/mnt/usb_drive目录通常需要sudo umount /mnt/usb_drive # 卸载12. 常见问题与排查方法学习过程中必然会遇到问题这里是一些典型场景的排查思路。问题现象可能原因排查方式解决方案命令找不到 (Command not found)1. 命令拼写错误。2. 该命令对应的软件包未安装。3. 命令所在目录不在$PATH环境变量中。1. 检查拼写which command_name。2. 尝试安装apt search keyword或yum search keyword。3. 检查PATHecho $PATH。1. 纠正拼写。2. 使用包管理器安装如sudo apt install tree。3. 使用绝对路径执行命令如/usr/local/bin/mycmd。权限被拒绝 (Permission denied)1. 当前用户对文件/目录没有读、写或执行权限。2. 尝试执行需要root权限的操作。1. 使用ls -l查看文件权限。2. 确认操作是否必须由root执行。1. 使用chmod修改权限谨慎。2. 在命令前加sudo需有sudo权限。3. 切换到有权限的用户。没有那个文件或目录 (No such file or directory)1. 路径错误。2. 文件或目录确实不存在。3. 使用了相对路径但当前目录不对。1. 使用pwd确认当前目录。2. 使用ls查看目标路径是否存在。3. 检查路径中的空格和特殊字符。1. 使用绝对路径。2. 创建缺失的目录 (mkdir -p)。3. 仔细检查路径拼写。磁盘空间不足 (No space left on device)磁盘已满。1. 使用df -h查看各分区使用率。2. 使用du -sh * | sort -rh | head -10找出占用空间最大的前10个目录。1. 清理大文件或旧日志。2. 扩展磁盘空间云服务器或使用新磁盘。进程占用端口 (Address already in use)某个服务或进程已经绑定了你要使用的端口。使用sudo netstat -tulpn | grep :端口号或sudo ss -tulpn | grep :端口号查找占用进程。1. 停止占用进程 (kill PID)。2. 修改你的服务配置使用其他端口。远程连接失败 (Connection refused / timed out)1. 目标服务器IP/端口错误。2. 目标服务未运行。3. 防火墙阻止。1. 用ping测试网络连通性。2. 在服务器上用netstat检查服务是否在监听。3. 检查服务器防火墙规则 (sudo ufw status或sudo firewall-cmd)。1. 确认IP和端口。2. 启动目标服务。3. 配置防火墙允许该端口。13. 最佳实践与学习建议从模仿开始理解原理不要死记硬背。先照着例子敲命令观察输出然后通过man命令如man ls或--help参数如grep --help查看官方文档理解每个参数的含义。善用Tab键和命令历史输入命令时按Tab键可以自动补全命令、文件名或路径。按上/下箭头可以翻阅之前执行过的命令提高效率。组合命令构建管道Linux命令的强大之处在于可以通过管道符|将多个简单命令组合成复杂操作。例如cat log.txt | grep ERROR | sort | uniq -c。编写Shell脚本自动化当你发现一系列命令需要反复执行时就是编写Shell脚本.sh文件的时候了。脚本第一行通常是#!/bin/bash。在安全环境中大胆尝试在虚拟机、WSL或在线环境中你可以放心地尝试各种命令包括rm、fdisk等危险命令而不用担心损坏主机系统。建立自己的命令笔记将常用的、复杂的命令组合记录在一个文本文件或笔记软件中并附上简短说明和用例这是积累经验最快的方式。学习Linux命令是一个从陌生到熟悉再到肌肉记忆的过程。核心的20-30个命令足以覆盖90%的日常操作。关键在于立即动手在解决实际问题的过程中反复使用它们。无论是管理自己的代码项目还是未来运维服务器这套命令行技能都将是你技术工具箱里最可靠、最高效的利器。建议将本文作为速查手册收藏在遇到具体任务时回来查找对应的命令和用法边用边学效果最佳。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度