Mac终端是访问系统Unix核心的强大工具,掌握其命令可实现高效系统管理、文件操作、开发任务及自动化,显著提升工作效率与控制力,但需学习相关命令语法。
Mac 不仅仅拥有优雅的图形界面,其底层还蕴藏着一个极其强大的工具——命令行终端(Terminal),对于希望提升效率、深入控制系统、进行开发或解决复杂问题的用户来说,掌握命令行是解锁 Mac 真正潜力的关键,本文将为您提供一份清晰、实用的 Mac 命令行入门与进阶指南。
什么是命令行?为什么要在 Mac 上使用它?
- 命令行是什么? 想象一下,不是通过点击图标和菜单,而是通过输入特定的文本指令来直接告诉你的 Mac 该做什么,这就是命令行(也称为终端、Shell 或控制台),它是一个基于文本的界面,您在其中输入命令,系统执行并返回文本结果。
- Mac 上的 Shell: Mac 默认使用
zsh
(Z Shell) 作为命令行解释器(在较新的 macOS 版本中,如 Catalina 及以后),之前常用的是bash
(Bourne Again Shell),它们负责理解并执行您输入的命令,您可以在终端设置中查看或更改默认 Shell。 - 为什么使用命令行?
- 效率与自动化: 许多任务(尤其是批量操作,如重命名大量文件、安装软件、处理文本)用命令行执行比图形界面快得多,且可以编写脚本自动完成。
- 强大控制力: 访问图形界面隐藏或无法提供的系统设置、高级功能和底层细节。
- 开发者必备: 编译代码、版本控制(Git)、包管理(Homebrew)、服务器管理等开发工作流的核心。
- 故障诊断: 许多高级系统诊断和修复工具只能在命令行中使用。
- 远程管理: 通过 SSH 安全地连接和管理其他计算机(如服务器)。
- 学习与探索: 理解计算机如何运作的绝佳途径。
如何打开 Mac 的终端?
- 使用 Spotlight 搜索: 这是最快的方法,按下
Command (⌘) + 空格键
打开 Spotlight,输入terminal
或终端
,然后按回车键。 - 通过 Finder: 打开 Finder,进入
应用程序
文件夹 ->实用工具
文件夹 -> 双击终端
图标。 - 添加到 Dock: 打开终端后,右键点击 Dock 中的终端图标,选择
选项
->在 Dock 中保留
,方便以后快速访问。
认识终端界面与基本概念
- 提示符 (Prompt): 当终端准备就绪等待您输入命令时,会显示一行文本,通常包含您的用户名、计算机名和当前工作目录(文件夹),最后以 (对于普通用户) 或 (对于管理员 root 用户) 结束。
yourusername@YourMac ~ $
。 符号代表您的个人主目录 (/Users/yourusername
)。 - 命令结构: 一个典型的命令由以下几部分组成:
命令名 [选项] [参数]
- 命令名: 要执行的操作(如
ls
,cd
,cp
)。 - 选项 (Options/Flags): 通常以 (短选项) 或 (长选项) 开头,用于修改命令的行为(如
ls -l
表示以长列表格式显示)。 - 参数 (Arguments): 命令作用的对象,通常是文件名、目录名或其他值(如
cp file1.txt file2.txt
)。
- 当前工作目录 (Current Working Directory): 这是终端当前“所在”的文件夹,您输入的命令(除非指定绝对路径)默认作用于这个目录下的文件或子目录,使用
pwd
(Print Working Directory) 命令可以随时查看当前目录的完整路径。 - 路径 (Path):
- 绝对路径: 从根目录 开始的完整路径(如
/Users/yourusername/Documents/report.pdf
)。 - 相对路径: 相对于当前工作目录的路径(如
Documents/report.pdf
或../Pictures/photo.jpg
, 表示上一级目录)。
- 绝对路径: 从根目录 开始的完整路径(如
- 执行命令: 输入完命令后,按
回车键
执行。 - 停止命令: 如果命令运行时间过长或您想中断它,按
Control + C
,这是非常重要的安全键! - 清屏: 输入
clear
或按Control + L
清除当前屏幕上的输出,让界面更清爽。 - 命令历史: 按
上箭头
键可以调出之前输入过的命令,方便重复执行或修改,按下箭头
键可以回到更近的命令,使用history
命令可以查看所有历史记录。
必备基础命令详解
让我们从最常用、最基础的核心命令开始:
-
pwd
– 显示当前目录- 作用:打印您当前所在的目录的完整路径。
- 示例:
pwd
-> 输出/Users/yourusername/Desktop
-
ls
– 列出目录内容- 作用:显示当前目录(或指定目录)下的文件和子目录。
- 常用选项:
ls -l
:以长格式显示详细信息(权限、所有者、大小、修改时间)。ls -a
:显示所有文件,包括隐藏文件(以 开头的文件,如.bash_profile
)。ls -lh
:长格式显示,并以人类可读的格式(K, M, G)显示文件大小。ls /path/to/directory
:列出指定目录的内容。
- 示例:
ls -la ~/Documents
-> 列出您Documents
文件夹下的所有文件(包括隐藏文件)的详细信息。
-
cd
– 切换目录- 作用:改变当前工作目录。
- 用法:
cd [目录路径]
:切换到指定目录。cd
或cd ~
:直接回到您的个人主目录 (/Users/yourusername
)。cd ..
:切换到上一级目录(父目录)。cd -
:切换到之前所在的目录(在两个目录间快速切换)。
- 示例:
cd Desktop
-> 进入当前目录下的Desktop
子目录(相对路径)。cd /Users/yourusername/Music
-> 使用绝对路径进入Music
目录。cd ../Downloads
-> 先返回上一级,再进入Downloads
目录(相对路径)。
-
mkdir
– 创建目录- 作用:创建一个新的目录(文件夹)。
- 用法:
mkdir [新目录名]
- 选项:
mkdir -p parent/child
:递归创建目录,如果父目录parent
不存在,则一并创建。 - 示例:
mkdir Projects
-> 在当前目录创建名为Projects
的文件夹。mkdir -p Work/2025/December
-> 创建嵌套目录。
-
touch
– 创建空文件或更新文件时间戳- 作用:如果文件不存在,则创建一个新的、空的文件;如果文件已存在,则更新该文件的“最后修改时间”为当前时间(不改变内容)。
- 用法:
touch [文件名]
- 示例:
touch notes.txt
-> 创建一个名为notes.txt
的空文本文件。
-
cp
– 复制文件或目录- 作用:复制文件或目录到另一个位置。
- 用法:
cp [源文件] [目标文件]
:复制源文件到目标文件(可重命名)。cp [源文件] [目标目录]
:复制源文件到目标目录(保持原名)。cp -R [源目录] [目标目录]
:递归复制整个目录及其内容(-R
或-r
选项必不可少)。
- 示例:
cp report.docx report_backup.docx
-> 复制report.docx
为report_backup.docx
(在当前目录)。cp image.jpg ~/Pictures/
-> 复制image.jpg
到Pictures
目录。cp -R old_project/ backup/
-> 将整个old_project
目录复制到backup
目录下。
-
mv
– 移动或重命名文件/目录- 作用:移动文件/目录到新位置,或重命名文件/目录。
- 用法:
mv [源文件/目录] [目标文件/目录]
- 如果目标是新路径,就是移动。
- 如果目标是新名字(在同一目录下),就是重命名。
- 示例:
mv draft.txt final_report.txt
-> 将draft.txt
重命名为final_report.txt
(同目录)。mv presentation.pdf ~/Documents/
-> 移动presentation.pdf
到Documents
目录。mv old_folder/ new_folder_name/
-> 重命名目录old_folder
为new_folder_name
(同目录)。
-
rm
– 删除文件或目录 (⚠️ 极其谨慎使用!)- 作用:删除文件或目录。此命令删除的文件通常无法从废纸篓恢复!
- 用法:
rm [文件名]
:删除文件。rm -i [文件名]
:交互式删除(删除前询问确认,强烈推荐习惯使用-i
)。rm -r [目录名]
:递归删除目录及其所有内容(-r
或-R
选项必不可少)。rm -rf [目录名]
:强制递归删除(-f
表示 force,不询问确认)。这是极其危险的命令组合!除非你 100% 确定,否则避免使用-rf
。
- ⚠️ 重要警告:
rm -rf /
或rm -rf ~
会尝试删除系统根目录或您的主目录下的所有内容,导致灾难性数据丢失和系统崩溃!永远不要执行它! 始终仔细检查路径,优先使用-i
选项。 - 示例:
rm -i tempfile.tmp
-> 删除tempfile.tmp
前询问确认。rm -r old_backups/
-> 删除整个old_backups
目录及其内容(会提示确认目录删除)。rm -rf node_modules/
-> 强制删除node_modules
目录(常用于开发,但需确保路径正确无误)。
-
cat
– 连接并显示文件内容- 作用:在终端中显示一个或多个文件的内容(适合查看短文本文件)。
- 用法:
cat [文件名]
- 示例:
cat config.txt
-> 在终端输出config.txt
文件的内容。
-
less
/more
– 分页查看文件内容- 作用:查看长文本文件的最佳方式。
less
功能更强大(推荐),more
较简单,它们允许您逐页或逐行浏览。 - 用法:
less [文件名]
或more [文件名]
- 在
less
中导航:空格键
:向下翻一页。b
键:向上翻一页。回车键
:向下滚动一行。/搜索词
:在文件中向下搜索(按n
找下一个,N
找上一个)。?搜索词
:在文件中向上搜索。q
键:退出less
。
- 示例:
less long_log_file.log
-> 分页查看日志文件。
- 作用:查看长文本文件的最佳方式。
-
man
– 查看命令手册 (Manual)- 这是最重要的命令之一! 作用:显示任何其他命令的详细使用手册(包含选项、参数、描述和示例)。
- 用法:
man [命令名]
- 在
man
页面中导航(与less
类似):- 空格键 / b 键 / 回车键 翻页/行。
- 搜索关键词。
q
退出。
- 示例:
man ls
-> 查看ls
命令的完整手册。man cp
-> 查看cp
命令手册。
进阶实用命令与技巧
-
grep
– 强大的文本搜索工具- 作用:在文件或输入流中搜索匹配指定模式(文本或正则表达式)的行。
- 用法:
grep [选项] '搜索模式' [文件名]
- 常用选项:
grep -i
:忽略大小写。grep -r
:递归搜索目录下的所有文件。grep -n
:显示匹配行所在的行号。grep -v
:显示不匹配模式的行。
- 示例:
grep 'error' system.log
-> 在system.log
中查找包含 “error” 的行。grep -ri 'TODO' ~/projects/
-> 在~/projects/
目录下递归、忽略大小写搜索包含 “TODO” 的文件。ps aux | grep Safari
-> 结合管道(见下),列出所有进程 (ps aux
),然后过滤出包含 “Safari” 的行(查找 Safari 进程)。
-
管道 – 连接命令
- 作用:将一个命令的输出作为另一个命令的输入,这是命令行强大组合能力的关键。
- 符号: (竖线,通常在回车键上方)
- 示例:
ls -l | less
-> 将ls -l
的长列表结果通过管道传给less
分页查看(适合目录内容很多时)。history | grep 'cd'
-> 查看命令历史 (history
),然后过滤出所有包含cd
的命令。cat access.log | grep '404' | wc -l
-> 查看access.log
文件,过滤出包含 ‘404’(未找到)的行,然后统计这些行的数量 (wc -l
)。
-
>
和>>
– 输出重定向- 作用:将命令的输出结果保存到文件中,而不是显示在屏幕上。
>
:将输出覆盖写入指定文件(如果文件不存在则创建)。>>
:将输出追加到指定文件的末尾(如果文件不存在则创建)。- 示例:
ls -l > file_list.txt
-> 将当前目录的详细列表覆盖写入file_list.txt
文件。echo "New log entry" >> mylog.txt
-> 将文本 “New log entry” 追加到mylog.txt
文件末尾。grep 'warning' app.log > warnings.txt
-> 将app.log
中所有包含 ‘warning’ 的行覆盖写入warnings.txt
。
-
open
– 用默认程序打开文件/目录/URL- 作用:这是 Mac 特有的便捷命令,相当于在 Finder 中双击打开。
- 用法:
open [文件名]
:用关联的默认应用程序打开文件(如.txt
用 TextEdit)。open [目录名]
:在 Finder 中打开该目录。open -a [应用程序名] [文件名]
:用指定的应用程序打开文件(如open -a "Google Chrome" index.html
)。open http://www.apple.com
:用默认浏览器打开网址。
- 示例:
open .
-> 在 Finder 中打开当前工作目录。open -a Preview screenshot.png
-> 用“预览”应用打开图片。
-
sudo
– 以管理员权限执行命令 (Super User DO)- 作用:执行需要管理员 (
root
) 权限的命令(如安装系统级软件、修改系统文件)。 - 用法:
sudo [命令]
- 执行时,系统会要求您输入管理员账户的密码,输入时屏幕上不会显示任何字符(星号也没有),这是正常的安全设计,输完按回车即可。
- ⚠️ 重要警告:
sudo
赋予命令最高权限。务必清楚你正在执行的命令是什么! 错误或恶意的sudo
命令可能严重损坏系统,只在必要时使用,并仔细核对命令。 - 示例:
sudo softwareupdate -i -a
-> 以管理员权限安装所有可用更新。sudo nano /etc/hosts
-> 以管理员权限用nano
编辑器编辑系统hosts
文件。
- 作用:执行需要管理员 (
-
nano
/vim
/emacs
– 命令行文本编辑器- 作用:直接在终端中编辑文本文件。
nano
: 最简单易学,适合新手,底部有常用快捷键提示(^
表示Control
键)。- 打开/创建:
nano [文件名]
- 基本操作:编辑文本,
Control + O
保存,Control + X
退出(会提示是否保存)。
- 打开/创建:
vim
和emacs
: 功能极其强大但学习曲线陡峭的专业编辑器,需要专门学习其模式和命令。- 示例:
nano my_script.sh
-> 用 `nano
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8245.html