引言
第一次打开Linux终端,面对一个黑色的窗口和一个闪烁的光标,很多人会感到无所适从。没有鼠标点击,没有图形界面,只有一个等待输入的“$”符号。这种“黑屏恐惧”是每个Linux初学者的必经之路。
但命令行并不是洪水猛兽。它就像一门乐器——刚开始时你只能发出刺耳的声音,但一旦掌握了基本的指法,你就能演奏出优美的旋律。Linux命令行也是如此:掌握几十个核心指令,你就能完成日常开发中90%的操作。
如果把图形界面比作“用筷子吃饭”,那么命令行就是“直接用手抓”——前者优雅但有限制,后者粗犷但无所不能。学会命令行,你就获得了对Linux系统的完全控制权。
前置知识
在开始学习Linux指令之前,你需要了解几个基本概念:
终端(Terminal):命令行操作的窗口,通常用
Ctrl + Alt + T打开。Shell:解释和执行命令的程序,最常见的是 Bash。
路径(Path):文件在文件系统中的位置。
绝对路径:从根目录
/开始,如/home/user/Documents相对路径:相对于当前目录,如
./Documents或../
提示符(Prompt):等待输入命令的符号,通常是
$(普通用户)或#(root用户)。选项(Option):以
-开头的参数,用于修改命令的行为,如-l、-a。手册页(Man Page):Linux内置的命令帮助文档,用
man 命令名查看。
第一章:文件与目录操作——最常用的“生存技能”
1.1pwd—— 我在哪?
bash
pwd # print working directory
功能:显示当前所在的目录路径。这是你迷失在文件系统中时的“指南针”。
1.2ls—— 看看周围有什么
bash
ls # 列出当前目录下的文件和文件夹 ls -l # 详细列表格式(权限、大小、修改时间) ls -a # 列出所有文件,包括以 . 开头的隐藏文件[reference:4] ls -lh # 人类可读的文件大小(K、M、G)[reference:5] ls -lt # 按修改时间排序[reference:6]
功能:列出目录内容。这是你打开一个目录后第一个要敲的命令。-l显示详细信息,-a显示隐藏文件,-h让文件大小更易读。
1.3cd—— 去别处看看
bash
cd # 回到用户主目录(/home/用户名) cd /home/user # 切换到指定目录(绝对路径) cd Documents # 切换到当前目录下的 Documents 子目录(相对路径) cd .. # 返回上级目录[reference:12] cd - # 返回上一个工作目录[reference:13]
功能:切换当前工作目录。这是你在文件系统中“行走”的方式。
1.4mkdir—— 建个新文件夹
bash
mkdir my_folder # 创建单级目录 mkdir -p parent/child/grand # 创建多级目录(自动创建父目录)[reference:16]
功能:创建新目录。-p参数可以一次性创建多级目录。
1.5touch—— 创建文件或更新时间戳
bash
touch file.txt # 创建一个空文件(如果不存在) touch -a file.txt # 仅更新访问时间[reference:19] touch -m file.txt # 仅更新修改时间[reference:20]
功能:创建空文件或更新文件的时间戳。
1.6cp—— 复制文件或目录
bash
cp file.txt backup.txt # 复制文件 cp -r folder/ backup_folder/ # 递归复制整个目录[reference:22] cp -i file.txt ~/backup/ # 交互式复制(覆盖前确认)[reference:23]
功能:复制文件或目录。-r用于复制目录,-i防止意外覆盖。
1.7mv—— 移动或重命名
bash
mv file.txt newname.txt # 重命名文件 mv file.txt ~/Documents/ # 移动文件到其他目录 mv *.log ~/logs/ # 批量移动所有 .log 文件[reference:26]
功能:移动文件或重命名。在Linux中,移动和重命名本质上是同一个操作——改变文件的路径。
1.8rm—— 删除(危险操作!)
bash
rm file.txt # 删除文件 rm -i file.txt # 交互式删除(确认后再删)[reference:28] rm -r folder/ # 递归删除目录及其所有内容 rm -rf folder/ # 强制递归删除(极度危险!)[reference:29]
功能:删除文件或目录。警告:rm -rf /会删除整个系统,永远不要执行这个命令!建议用alias rm='rm -i'增加确认步骤。
第二章:文件内容查看——不用打开就能“读”
2.1cat—— 一口气看完
bash
cat file.txt # 显示文件全部内容 cat file1.txt file2.txt > merged.txt # 合并多个文件
功能:连接文件并输出到屏幕。适合查看短文件。
2.2less—— 慢慢翻着看
bash
less file.txt # 分页查看文件 less +F /var/log/syslog # 实时追踪模式(类似 tail -f)[reference:33]
功能:分页查看文件,支持上下翻页(按q退出)。适合查看长文件或日志。
2.3head/tail—— 只看开头或结尾
bash
head -n 20 file.txt # 显示前20行 tail -n 50 file.txt # 显示最后50行 tail -f log.txt # 实时追踪文件新增内容(看日志必备)
功能:head查看文件开头,tail查看文件末尾。tail -f是调试程序时最常用的命令之一。
第三章:权限管理——谁可以做什么
Linux中每个文件都有三类权限:所有者(u)、所属组(g)、其他人(o)。每类权限包含:读(r=4)、写(w=2)、执行(x=1)。
3.1chmod—— 修改权限
bash
chmod 755 script.sh # 所有者:rwx(7),组:r-x(5),其他人:r-x(5)[reference:37] chmod +x script.sh # 给所有用户添加执行权限[reference:38] chmod -R 750 folder/ # 递归修改目录及其所有内容[reference:39]
功能:修改文件或目录的权限。数字权限:4(读)+ 2(写)+ 1(执行)。
3.2chown—— 修改所有者
bash
sudo chown user:group file.txt # 修改文件的所有者和组 sudo chown -R user:group folder/ # 递归修改目录所有内容[reference:42]
功能:修改文件或目录的所有者。通常需要sudo权限。
第四章:文本处理——命令行的“瑞士军刀”
4.1grep—— 在文件中“找东西”
bash
grep "error" log.txt # 在文件中搜索 "error" grep -r "TODO" ./src/ # 递归搜索目录下所有文件[reference:44] grep -E "[0-9]{3}-[0-9]{4}" file # 使用正则表达式搜索[reference:45] grep -v "debug" log.txt # 反向匹配:显示不包含 "debug" 的行[reference:46]功能:在文件或输出中搜索匹配的文本模式。这是命令行中最强大的搜索工具。
4.2 管道|—— 命令之间的“传送带”
bash
ls -l | grep ".txt" # 列出所有包含 .txt 的文件 cat log.txt | grep "ERROR" | wc -l # 统计错误行数 ps aux | grep python # 查找正在运行的 Python 进程
功能:将前一个命令的输出作为后一个命令的输入。管道是命令行组合能力的核心——把简单命令串联起来完成复杂任务。
第五章:系统信息与进程管理
5.1ps—— 查看进程
bash
ps aux # 显示所有正在运行的进程 ps aux | grep nginx # 查找 nginx 进程
功能:显示当前系统中的进程信息。
5.2top/htop—— 实时系统监控
bash
top # 实时显示 CPU、内存、进程信息 htop # 更友好的交互式版本(需安装)
功能:实时监控系统资源使用情况。按q退出。
5.3df/du—— 查看磁盘空间
bash
df -h # 查看磁盘分区使用情况(人类可读格式) du -sh folder/ # 查看文件夹总大小 du -h --max-depth=1 # 查看当前目录下各子目录大小
功能:df查看磁盘空间,du查看文件和目录的磁盘使用量。
第六章:网络相关
6.1ping—— 测试网络连通性
bash
ping google.com # 测试能否到达 google.com ping -c 4 192.168.1.1 # 只发4个包
功能:测试网络连通性和延迟。
6.2curl/wget—— 下载文件
bash
curl -O https://example.com/file.zip # 下载文件 wget https://example.com/file.zip # 下载文件
功能:从网络下载文件或发送HTTP请求。
第七章:最常用的“救命指令”
| 指令 | 用途 |
|---|---|
man 命令名 | 查看命令的官方帮助手册 |
命令名 --help | 查看命令的简要帮助 |
history | 查看之前输入过的所有命令 |
Ctrl + C | 终止当前正在运行的命令 |
Ctrl + Z | 暂停当前命令(放到后台) |
clear | 清空终端屏幕 |
exit | 退出终端 |
总结
学习Linux命令行的过程,就像学一门新的语言——起初需要死记硬背,但一旦掌握了“语法”(命令结构)和“词汇”(常用命令),你就能自由表达。本文覆盖了文件操作、权限管理、文本处理、系统监控等最核心的场景。
记住三条黄金法则:
不确定就查:
man 命令名或命令名 --help是你最好的老师。小心删除:
rm -rf是双刃剑,使用前三思。多练多用:命令行技能只有通过反复使用才能真正掌握。