什么是终端命令行?
一句话解释: 终端命令行是用户与计算机操作系统进行交互的一种方式,通过输入文本命令来控制计算机,而不是像我们平时那样使用图形界面。

你可以把它想象成与计算机进行“文字对话”,你下达指令,计算机执行并返回结果。
为什么还要用命令行? 虽然图形界面直观易用,但命令行在很多方面具有巨大优势:
- 高效与自动化: 命令行可以轻松地完成重复性任务,你可以写一个简单的脚本,一键重命名上千个文件,这在图形界面下几乎是不可能完成的。
- 强大的功能: 很多高级系统工具和功能没有图形界面,只能通过命令行访问。
- 远程管理: 管理服务器时,通常只通过命令行(如 SSH)进行远程操作,因为它速度快、资源占用少、稳定可靠。
- 精确控制: 你可以对命令的每一个参数进行精细的调整,实现图形界面难以企及的精确操作。
- 跨平台: 大多数核心命令(如
ls,cd,cp)在 Linux, macOS, 甚至 Windows (通过 WSL 或 PowerShell) 上都是通用的,学会后可以触类旁通。
如何打开终端?
不同的操作系统打开终端的方式略有不同。
macOS
- 快捷键: 按
Command (⌘) + 空格键打开 Spotlight 搜索,输入Terminal或“终端”,然后按回车。 - 应用程序: 打开“访达”,进入“应用程序” -> “实用工具”,找到“终端”。
Linux (以 Ubuntu 为例)
- 快捷键: 按
Ctrl + Alt + T。 - 应用程序菜单: 通常在“应用程序”或“活动”中可以找到“终端”或“Console”。
Windows
现代 Windows 系统对命令行支持越来越好,主要有两种选择:

-
Windows Terminal (推荐):
- 在 Microsoft Store 中搜索并安装 “Windows Terminal”。
- 安装后,可以从开始菜单打开它,它集成了传统的 CMD、PowerShell 以及 WSL (Windows Subsystem for Linux) 等多种命令环境,功能强大且美观。
-
PowerShell / CMD (自带):
- PowerShell: 在开始菜单搜索
PowerShell,推荐使用,功能比 CMD 更强大。 - CMD: 在开始菜单搜索
cmd或命令提示符,这是最传统的 Windows 命令行。
- PowerShell: 在开始菜单搜索
建议: 如果你是新手,并且想在 Windows 上获得最接近 Linux/macOS 的体验,强烈建议安装 WSL (Windows Subsystem for Linux),然后在 Windows Terminal 中运行 Ubuntu 等 Linux 发行版。
终端界面初探
打开终端后,你通常会看到一个类似这样的窗口:

user@hostname:~$
user: 你的用户名。hostname: 你的计算机名。- 这是你的当前工作目录。 是你的家目录 的简写,类似于 Windows 下的
C:\Users\YourName或 macOS 下的/Users/YourName。 - 这是命令提示符,表示终端已经准备好,等待你输入命令,有些系统可能显示为 或 ( 通常表示管理员/root权限)。
核心概念:命令 + 参数 + 选项
几乎所有的命令都遵循一个基本结构:
command [options] [arguments]
- 命令: 你想执行的操作,如
ls,cd,mkdir。 - 选项: 用来修改命令行为的标志,通常以 或 开头。
ls -l中的-l表示“以长格式列表”。 - 参数: 命令作用的对象,通常是文件名或目录名。
ls Documents中的Documents就是参数。
示例:
ls -l /home
ls: 命令,意思是“列表”。-l: 选项,意思是“长格式显示”。/home: 参数,意思是“在/home这个目录下执行”。
最最最常用的基础命令(必须掌握)
这些命令是你在任何命令行环境下都会用到的基石。
文件和目录操作
| 命令 | 全称 | 作用 | 示例 |
|---|---|---|---|
ls |
list | 列出当前目录下的文件和文件夹。 | ls (列出), ls -a (列出所有,包括隐藏文件), ls -l (长格式列表) |
cd |
change directory | 切换目录。 | cd /var/log (切换到 /var/log 目录), cd .. (返回上一级目录), cd ~ (回到自己的家目录) |
pwd |
print working directory | 打印当前所在目录的完整路径。 | pwd (会输出类似 /home/user/docs 的路径) |
mkdir |
make directory | 创建一个新的目录。 | mkdir new_folder (创建 new_folder), mkdir -p parent/child (创建嵌套目录) |
touch |
- | 创建一个空文件,或者更新一个文件的时间戳。 | touch hello.txt (创建 hello.txt 文件) |
cp |
copy | 复制文件或目录。 | cp source.txt dest.txt (复制文件), cp -r source_dir/ dest_dir/ (-r 选项用于递归复制目录) |
mv |
move | 移动文件或目录,也可以用来重命名。 | mv old_name.txt new_name.txt (重命名), mv file.txt /tmp/ (移动文件到 /tmp 目录) |
rm |
remove | 删除文件或目录。⚠️ 危险操作,删除前无法撤销! | rm file.txt (删除文件), rm -r directory/ (-r 选项用于递归删除目录), rm -rf directory/ (-f 强制删除,极其危险,请慎用!) |
man |
manual | 查看命令的帮助手册,Linux 下最强大的命令之一。 | man ls (查看 ls 命令的详细用法,按 q 退出) |
查看文件内容
| 命令 | 全称 | 作用 | 示例 |
|---|---|---|---|
cat |
concatenate | 一次性显示整个文件的内容,适合查看小文件。 | cat hello.txt |
less |
- | 分页显示文件内容,适合查看大文件,可以上下翻页(j/k 或 上下箭头),按 q 退出。 |
less large_log_file.log |
head |
- | 显示文件的开头几行,默认 10 行。 | head -n 5 hello.txt (显示前 5 行) |
tail |
- | 显示文件的结尾几行,默认 10 行,对于查看日志文件非常有用。 | tail -f /var/log/syslog (-f 选项可以实时追踪文件变化) |
搜索和过滤
| 命令 | 全称 | 作用 | 示例 |
|---|---|---|---|
grep |
global regular expression print | 在文本中搜索匹配的行。 | grep "error" /var/log/syslog (在日志文件中搜索包含 "error" 的行) |
find |
- | 在目录树中搜索文件。 | find . -name "*.txt" (在当前目录及其子目录中查找所有后缀为 .txt 的文件) |
权限管理
| 命令 | 全称 | 作用 | 示例 |
|---|---|---|---|
chmod |
change mode | 修改文件或目录的权限。 | chmod +x script.sh (给 script.sh 添加可执行权限) |
chown |
change owner | 修改文件或目录的所有者,通常需要 sudo 权限。 |
sudo chown user:group file.txt (将文件所有者改为 user,所属组改为 group) |
进阶技巧
权限问题:sudo
当你执行一个需要管理员权限的命令时(比如修改系统文件),系统会拒绝,这时,你需要在命令前加上 sudo (superuser do)。
# 尝试编辑一个系统配置文件,可能会失败 nano /etc/hosts # 使用 sudo 获取权限后再编辑 sudo nano /etc/hosts # 系统会要求你输入当前用户的密码
命令历史
- 按 和 键可以浏览之前执行过的命令。
- 按
Ctrl + R可以搜索历史命令。
自动补全
这是命令行最伟大的发明之一!当你输入一个命令或文件名的一部分后,按 Tab 键,终端会自动补全剩余部分。
- 如果有多个匹配项,按两次
Tab键,会列出所有可能。
管道
管道可以将一个命令的输出,作为另一个命令的输入,这能让你把多个简单的命令组合成强大的功能链。
# 1. 列出所有文件和目录 ls -l # 2. 只想看以 "a" 开头的文件 ls -l | grep "^a" # 解释:`ls -l` 的输出通过管道 `|` 传递给了 `grep`,`grep` 再从中筛选出以 "a" 开头的行。
输入输出重定向
>: 覆盖重定向,将命令的输出写入一个文件,如果文件存在则覆盖。echo "Hello World" > hello.txt
>>: 追加重定向,将命令的输出追加到一个文件的末尾,如果文件不存在则创建。echo "This is a new line." >> hello.txt
<: 输入重定向,将文件内容作为命令的输入。sort < names.txt
学习路径建议
- 熟悉基本命令: 反复练习
ls,cd,pwd,mkdir,cp,mv,rm,在电脑上创建一个练习目录,在里面随意创建、复制、移动、删除文件和文件夹,直到形成肌肉记忆。 - 学会自救:
man命令,遇到任何不知道的命令,第一时间man <command>,这是独立学习的关键。 - 探索文件系统: 使用
cd在你的系统中四处逛逛,用ls看看不同目录里有什么,理解 ,/home,/usr,/var等常见目录的作用。 - 开始组合使用: 尝试使用管道和重定向。
ls -l | grep ".txt"来查找所有 txt 文件。 - 学习脚本: 当你觉得手动重复操作很烦人时,就是学习 Shell 脚本的最佳时机,从最简单的
for循环开始,让命令帮你工作。
终端命令行起初看起来有些吓人,但只要你从基础开始,循序渐进,就会发现它是一个无比强大和高效的工具,它不仅是一种技能,更是一种全新的、与计算机交互的思维方式。
最重要的建议:不要怕! 在一个安全的环境(比如你自己的电脑)里大胆地去尝试,最坏的情况也就是删掉几个文件,这都可以恢复,祝你在命令行的世界里探索愉快!
