引言
第一次打开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.1 pwd ------ 我在哪?
bash
pwd # print working directory
功能:显示当前所在的目录路径。这是你迷失在文件系统中时的"指南针"。
1.2 ls ------ 看看周围有什么
bash
ls # 列出当前目录下的文件和文件夹
ls -l # 详细列表格式(权限、大小、修改时间)
ls -a # 列出所有文件,包括以 . 开头的隐藏文件[reference:4]
ls -lh # 人类可读的文件大小(K、M、G)[reference:5]
ls -lt # 按修改时间排序[reference:6]
功能 :列出目录内容。这是你打开一个目录后第一个要敲的命令。-l 显示详细信息,-a 显示隐藏文件,-h 让文件大小更易读。
1.3 cd ------ 去别处看看
bash
cd # 回到用户主目录(/home/用户名)
cd /home/user # 切换到指定目录(绝对路径)
cd Documents # 切换到当前目录下的 Documents 子目录(相对路径)
cd .. # 返回上级目录[reference:12]
cd - # 返回上一个工作目录[reference:13]
功能:切换当前工作目录。这是你在文件系统中"行走"的方式。
1.4 mkdir ------ 建个新文件夹
bash
mkdir my_folder # 创建单级目录
mkdir -p parent/child/grand # 创建多级目录(自动创建父目录)[reference:16]
功能 :创建新目录。-p 参数可以一次性创建多级目录。
1.5 touch ------ 创建文件或更新时间戳
bash
touch file.txt # 创建一个空文件(如果不存在)
touch -a file.txt # 仅更新访问时间[reference:19]
touch -m file.txt # 仅更新修改时间[reference:20]
功能:创建空文件或更新文件的时间戳。
1.6 cp ------ 复制文件或目录
bash
cp file.txt backup.txt # 复制文件
cp -r folder/ backup_folder/ # 递归复制整个目录[reference:22]
cp -i file.txt ~/backup/ # 交互式复制(覆盖前确认)[reference:23]
功能 :复制文件或目录。-r 用于复制目录,-i 防止意外覆盖。
1.7 mv ------ 移动或重命名
bash
mv file.txt newname.txt # 重命名文件
mv file.txt ~/Documents/ # 移动文件到其他目录
mv *.log ~/logs/ # 批量移动所有 .log 文件[reference:26]
功能:移动文件或重命名。在Linux中,移动和重命名本质上是同一个操作------改变文件的路径。
1.8 rm ------ 删除(危险操作!)
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.1 cat ------ 一口气看完
bash
cat file.txt # 显示文件全部内容
cat file1.txt file2.txt > merged.txt # 合并多个文件
功能 :连接文件并输出到屏幕。适合查看短文件。
2.2 less ------ 慢慢翻着看
bash
less file.txt # 分页查看文件
less +F /var/log/syslog # 实时追踪模式(类似 tail -f)[reference:33]
功能 :分页查看文件,支持上下翻页(按 q 退出)。适合查看长文件 或日志。
2.3 head / 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.1 chmod ------ 修改权限
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.2 chown ------ 修改所有者
bash
sudo chown user:group file.txt # 修改文件的所有者和组
sudo chown -R user:group folder/ # 递归修改目录所有内容[reference:42]
功能 :修改文件或目录的所有者。通常需要 sudo 权限。
第四章:文本处理------命令行的"瑞士军刀"
4.1 grep ------ 在文件中"找东西"
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.1 ps ------ 查看进程
bash
ps aux # 显示所有正在运行的进程
ps aux | grep nginx # 查找 nginx 进程
功能:显示当前系统中的进程信息。
5.2 top / htop ------ 实时系统监控
bash
top # 实时显示 CPU、内存、进程信息
htop # 更友好的交互式版本(需安装)
功能 :实时监控系统资源使用情况。按 q 退出。
5.3 df / du ------ 查看磁盘空间
bash
df -h # 查看磁盘分区使用情况(人类可读格式)
du -sh folder/ # 查看文件夹总大小
du -h --max-depth=1 # 查看当前目录下各子目录大小
功能 :df 查看磁盘空间,du 查看文件和目录的磁盘使用量。
第六章:网络相关
6.1 ping ------ 测试网络连通性
bash
ping google.com # 测试能否到达 google.com
ping -c 4 192.168.1.1 # 只发4个包
功能:测试网络连通性和延迟。
6.2 curl / 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是双刃剑,使用前三思。 -
多练多用:命令行技能只有通过反复使用才能真正掌握。