苹果电脑中的“终端”(Terminal)是 macOS 提供的命令行工具。通过终端,用户可以用命令操作文件、管理目录、查看系统状态、安装开发工具、运行脚本、连接网络服务,也可以完成许多图形界面中不容易批量处理的任务。

macOS 具有 Unix 系统特征,因此许多常用命令与 Linux 相似,例如 cd、ls、cp、mv、rm、grep、find、chmod 等。同时,macOS 也提供了一些更有苹果系统特色的命令,例如 open、pbcopy、pbpaste、screencapture、say、caffeinate、sw_vers、system_profiler 等。

一、终端、shell 与命令基本结构

终端是用户输入命令的窗口,shell 是解释和执行命令的程序。较新的 macOS 默认使用 zsh 作为 shell。

可以查看当前使用的 shell:

echo $SHELL

常见输出可能是:

/bin/zsh

也可以查看当前 shell 名称:

echo $0

在交互式 zsh 中,输出有时可能显示为 -zsh。

在日常使用中,可以简单理解为:终端负责提供命令输入界面。shell 负责解释并执行命令。命令负责完成具体任务。

1、查看命令帮助

macOS 中可以使用 man 查看命令手册:

man ls

man 是 manual 的缩写,用于查看命令的详细说明、参数和用法。进入 man 页面后,可以按 q 退出。

有些命令也支持:

命令 --help

或:

命令 -h

不同命令支持的帮助参数不完全一致,man 命令名 是 macOS / Unix 系统中更标准的帮助入口。

2、查看历史命令

查看最近执行过的命令:

history

如果想重新执行历史命令,可以使用键盘的上方向键逐条查找之前输入过的命令。

3、查看命令位置与类型

查看某个命令的位置:

which node

也可以使用:

command -v node

command -v 更接近 shell 自身判断命令来源的方式,适合检查命令是否可用。

查看命令类型:

type cd

有些命令是外部程序,有些是 shell 内置命令。例如 cd 通常是 shell 内置命令。

4、环境变量与 zsh 配置

查看所有环境变量:

env

查看某个环境变量:

echo $PATH

临时设置环境变量:

export NODE_ENV=development

这种设置只在当前终端会话中有效。关闭当前终端窗口后,设置通常会失效。

macOS 默认使用 zsh 时,常用配置文件是:

~/.zshrc

可以用 nano 打开:

nano ~/.zshrc

例如添加一行别名:

alias ll="ls -alh"

保存后,让配置立即生效:

source ~/.zshrc

之后可以使用:

ll

5、清屏

清空当前终端显示内容:

clear

二、路径、目录与文件管理

路径和文件管理是终端最基础的内容。只要理解当前目录、目标路径和命令作用,就能完成大多数文件操作。

1、查看当前目录

pwd

pwd 是 print working directory 的缩写,用于显示当前所在目录。

例如输出:

/Users/mediaTEA/Desktop

这表示当前位于用户桌面目录。

2、切换目录

基本语法:

cd 路径

切换到 Documents 文件夹:

cd Documents

切换到上一级目录:

cd ..

切换到用户主目录:

cd ~

或:

cd

切换到桌面:

cd ~/Desktop

切换到下载目录:

cd ~/Downloads

常见路径符号:

. 表示当前目录。

.. 表示上一级目录。

~ 表示当前用户主目录。

/ 表示系统根目录。

其中 / 是整个系统的根目录,不是当前项目目录。对根目录执行删除、移动、改权限等操作非常危险。

3、路径中有空格时的写法

如果路径包含空格,需要使用引号:

cd "My Folder"

也可以使用反斜杠转义空格:

cd My\ Folder

在 macOS 中,很多文件夹和应用名称可能包含空格,例如 Visual Studio Code、Application Support 等,因此路径书写要特别注意。

4、查看目录内容

列出当前目录内容:

ls

显示详细信息:

ls -l

显示隐藏文件:

ls -a

macOS 中以 . 开头的文件通常是隐藏文件,例如:

.DS_Store

以更友好的方式显示文件大小:

ls -lh

组合使用:

ls -alh

或:

ls -la

按修改时间排序:

ls -lt

最新修改的文件会排在前面。

5、新建文件与文件夹

新建文件夹:

mkdir project

递归创建多级文件夹:

mkdir -p project/src/components

如果中间目录不存在,-p 会自动创建。

新建空文件:

touch README.md

如果文件不存在,touch 会创建一个空文件;如果文件已经存在,touch 会更新文件的修改时间。

6、复制、移动与重命名

复制文件:

cp a.txt b.txt

这表示把 a.txt 复制为 b.txt。

复制文件到指定目录:

cp a.txt ~/Desktop/

复制文件夹:

cp -R project project_backup

-R 表示递归复制整个目录及其内容。

复制前确认:

cp -i a.txt b.txt

-i 表示交互式确认,适合避免误覆盖。

移动文件:

mv a.txt ~/Documents/

重命名文件:

mv old.txt new.txt

在终端中,重命名本质上也是一种移动操作:把原路径移动到新路径。

移动或重命名前确认:

mv -i old.txt new.txt

7、删除文件与文件夹

删除文件:

rm a.txt

删除文件夹:

rm -r project_backup

删除前先确认:

rm -i a.txt

强制递归删除:

rm -rf 文件夹名

-r 表示递归删除,-f 表示强制删除。这个命令风险很高,尤其是在路径写错时可能造成严重数据丢失。执行前应先使用:

ls

确认当前目录和目标文件是否正确。

三、打开文件、文本查看与文本编辑

macOS 的终端可以和图形界面很好地配合,既可以查看文本,也可以调用 Finder 或应用打开文件。

1、打开文件、文件夹与应用

open 是 macOS 非常实用的命令,可以从终端调用图形界面打开文件、文件夹、应用或网页。

用 Finder 打开当前目录:

open .

打开指定文件夹:

open ~/Downloads

打开文件:

open README.md

系统会使用默认应用打开该文件。

使用指定应用打开文件或目录:

open -a "Visual Studio Code" .

打开网页:

open "https://www.apple.com"

在 Finder 中定位并选中指定文件:

open -R README.md

open -R 很适合在终端中找到文件后,快速回到 Finder 中查看文件位置。

2、查看文本文件内容

查看整个文件:

cat README.md

cat 适合查看较短文件。

分页查看长文件:

less app.log

在 less 中:

• 按空格向下翻页

• 按 b 向上翻页

• 按 /关键词 搜索

• 按 q 退出

查看文件前几行:

head README.md

查看前 20 行:

head -n 20 README.md

查看文件后几行:

tail app.log

查看后 50 行:

tail -n 50 app.log

实时查看日志:

tail -f app.log

tail -f 会持续显示文件末尾的新内容,适合观察服务器日志、构建日志或调试输出。停止实时查看时,可以按:Control + C。

3、编辑文本文件

使用 nano 编辑文件:

nano README.md

nano 比较适合初学者。

常用操作:

• Control + O:保存

• Enter:确认文件名

• Control + X:退出

使用 vim 编辑文件:

vim README.md

vim 功能强大,但学习成本较高。

常用操作:

• 按 i 进入插入模式

• 按 Esc 退出插入模式

• 输入 :wq 保存并退出

• 输入 :q! 不保存强制退出

如果只是临时修改配置文件,初学者通常使用 nano 更容易。

四、查找、搜索、统计与重定向

查找文件、搜索文本和重定向输出,是终端处理中非常常见的组合能力。

1、按文件名查找文件

基本语法:

find 路径 -name "文件名"

在当前目录下查找所有 .txt 文件:

find . -name "*.txt"

在用户目录下查找 Markdown 文件:

find ~ -name "*.md"

按类型查找文件:

find . -type f

按类型查找文件夹:

find . -type d

2、搜索文件内容

搜索文件内容:

grep "error" app.log

递归搜索目录内容:

grep -R "TODO" .

忽略大小写搜索:

grep -i "error" app.log

显示匹配行号:

grep -n "error" app.log

递归搜索并显示行号:

grep -R -n "TODO" .

这在查看项目代码、日志文件和配置文件时非常常用。

3、统计行数与组合命令

统计文件行数:

wc -l README.md

统计搜索结果行数:

grep -R "error" . | wc -l

这里的 | 是管道符,用于把前一个命令的输出传给后一个命令。

4、使用 Spotlight 命令查找

macOS 还提供 mdfind 命令,可以使用 Spotlight 索引搜索文件:

mdfind "README"

查看文件元数据:

mdls README.md

mdfind 适合根据 Spotlight 索引查找文件,find 更适合按路径和文件名规则查找。

5、文本输出与重定向

输出文本:

echo "Hello Mac"

把输出写入文件:

echo "Hello Mac" > hello.txt

注意:> 会覆盖原文件内容。

追加写入文件:

echo "New line" >> hello.txt

>> 表示追加,不会覆盖原内容。

把命令结果保存到文件:

ls -alh > files.txt

6、剪贴板命令

macOS 提供了两个非常方便的剪贴板命令:pbcopy 和 pbpaste。

把文本复制到剪贴板:

echo "Hello Mac" | pbcopy

把文件内容复制到剪贴板:

cat README.md | pbcopy

输出剪贴板内容:

pbpaste

把剪贴板内容保存为文件:

pbpaste > clip.txt

这在复制错误日志、整理代码片段、转存文本内容时非常方便。

五、磁盘空间、权限与压缩归档

这一组命令主要用于查看空间占用、处理权限问题和打包文件。

1、查看磁盘空间

查看磁盘空间:

df -h

df 用于查看磁盘分区使用情况,-h 表示以易读形式显示大小。

查看当前目录大小:

du -sh .

查看指定文件夹大小:

du -sh ~/Downloads

查看当前目录下各项目大小:

du -sh ./*

这个命令适合排查哪些文件夹占用空间较大。

查看磁盘设备信息:

diskutil list

diskutil 是 macOS 的磁盘管理命令,可用于查看磁盘、分区和挂载信息。涉及格式化、抹掉磁盘、分区等操作时要非常谨慎。

2、查看和修改权限

查看文件权限:

ls -l

示例:

-rw-r--r--  1 user  staff  1200 Jun 13 README.md

前面的 -rw-r--r-- 表示文件权限。

其中:

• r 表示可读

• w 表示可写

• x 表示可执行

给脚本增加可执行权限:

chmod +x script.sh

然后可以运行:

./script.sh

修改文件权限:

chmod 644 文件名

常见权限含义:

• 644:所有者可读写,其他用户只读,常用于普通文件

• 755:所有者可读写执行,其他用户可读可执行,常用于脚本或目录

修改文件所有者:

sudo chown 用户名 文件名

递归修改文件夹所有者:

sudo chown -R 用户名 文件夹名

sudo 表示以管理员权限执行命令。涉及权限和所有者修改时,要确认目标路径是否正确。

3、压缩与解压缩

压缩为 zip:

zip -r archive.zip 文件夹名

例如:

zip -r project.zip project

解压 zip:

unzip archive.zip

解压到指定目录:

unzip archive.zip -d output

创建 tar.gz 压缩包:

tar -czf archive.tar.gz 文件夹名

解压 tar.gz:

tar -xzf archive.tar.gz

zip 更适合与普通用户交换文件,tar.gz 更常见于开发、部署和开源项目。

六、进程、端口与网络检查

当程序卡住、端口被占用或网络异常时,可以使用进程和网络命令进行排查。

1、查看和管理进程

查看进程:

ps aux

查找指定进程:

ps aux | grep node

结果中可能会包含 grep 命令自身,这属于正常现象。

实时查看系统进程:

top

top 会动态显示 CPU、内存和进程信息。

退出 top:

q

结束进程:

kill 进程ID

例如:

kill 12345

强制结束进程:

kill -9 进程ID

kill -9 会强制终止进程,不给程序正常清理资源的机会。一般应先尝试普通 kill,无效时再考虑 kill -9。

按名称结束进程:

killall 应用或进程名

例如:

killall Safari

这会结束所有名为 Safari 的进程,使用时要谨慎。

2、查看端口占用

查看某个端口相关进程:

lsof -i :3000

如果某个开发服务提示端口被占用,可以先用这条命令查看占用该端口的进程。确认 PID 后,再执行:

kill 进程ID

如果普通 kill 无效,再谨慎考虑:

kill -9 进程ID

3、测试网络连通性

测试网络连通性:

ping www.apple.com

停止 ping:

Control + C

发送指定次数的 ping:

ping -c 4 www.apple.com

查看网络接口信息:

ifconfig

查看当前 Wi-Fi 信息:

networksetup -getairportnetwork en0

不同 Mac 的无线网卡设备名可能不同。如果 en0 无效,可以先查看网络服务列表:

networksetup -listallhardwareports

查看本机某个网络接口的 IP 地址:

ipconfig getifaddr en0

同样需要注意,en0 不一定总是 Wi-Fi 接口,应根据实际硬件端口确认。

4、网页请求、下载与 DNS

测试网页请求:

curl https://www.apple.com

只查看响应头:

curl -I https://www.apple.com

下载文件:

curl -L -o 文件名 下载地址

例如:

curl -L -o page.html https://www.apple.com

查看 DNS 解析:

nslookup www.apple.com

或:

dig www.apple.com

七、macOS 系统信息与特色命令

macOS 提供了一些系统信息和图形界面相关的命令,适合快速查看系统状态或调用系统功能。

1、查看系统信息

查看 macOS 版本:

sw_vers

输出通常包含:产品名称、系统版本以及构建版本等。

只查看系统版本:

sw_vers -productVersion

查看系统硬件与软件信息:

system_profiler

这个命令输出内容很多,执行时间也可能较长。实际使用时更推荐按类型查看:

查看硬件信息:

system_profiler SPHardwareDataType

查看系统软件信息:

system_profiler SPSoftwareDataType

查看存储信息:

system_profiler SPStorageDataType

查看应用信息:

system_profiler SPApplicationsDataType

查看主机名:

hostname

查看当前用户:

whoami

查看系统运行时间:

uptime

2、截屏、朗读与防止睡眠

截屏:

screencapture screenshot.png

延迟 5 秒截屏:

screencapture -T 5 screenshot.png

选择区域截屏:

screencapture -i screenshot.png

语音朗读:

say "Hello, Mac"

也可以朗读中文:

say "你好,苹果电脑"

防止电脑睡眠:

caffeinate

指定持续时间,例如保持唤醒 1 小时:

caffeinate -t 3600

3、扩展属性与 DNS 缓存

查看文件扩展属性:

xattr 文件名

如果某个从网络下载的脚本或应用被系统标记,可以查看扩展属性。但删除扩展属性前应确认文件来源可信。

刷新 DNS 缓存:

sudo killall -HUP mDNSResponder

这类命令通常用于网络排错,不建议频繁执行。

八、Homebrew 与开发工具

Homebrew 是 macOS 上非常常用的第三方包管理器,可以安装命令行工具和图形应用。

1、安装 Homebrew

常见安装命令如下,但实际使用时建议以 Homebrew 官网首页的最新命令为准:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,应按终端提示配置环境变量。不同芯片架构、不同安装路径下,Homebrew 给出的配置提示可能不同。

2、常用 brew 命令

查看 brew 版本:

brew --version

更新 Homebrew 自身信息:

brew update

安装命令行工具:

brew install wget

例如:

brew install python

安装图形应用:

brew install --cask visual-studio-code

例如:

brew install --cask google-chrome

查看已安装软件:

brew list

只查看图形应用:

brew list --cask

升级软件:

brew upgrade

升级指定软件:

brew upgrade git

卸载软件:

brew uninstall 软件名

卸载图形应用:

brew uninstall --cask 应用名

检查 Homebrew 状态:

brew doctor

如果 Homebrew 环境存在问题,brew doctor 会给出提示。

3、Xcode Command Line Tools

安装 Xcode Command Line Tools:

xcode-select --install

许多开发工具依赖 Xcode Command Line Tools,例如 Git、编译器、构建工具等。

查看开发工具路径:

xcode-select -p

九、系统更新、软件维护与常见任务流程

这一章将系统更新和一些完整操作流程放在一起,便于读者从单条命令过渡到实际任务。

1、查看与安装系统更新

查看可用系统更新:

softwareupdate -l

安装所有可用更新:

sudo softwareupdate -ia

该命令可能需要管理员密码,也可能需要重启系统。安装系统更新前,建议先保存工作内容,并做好必要的数据备份。

2、创建一个项目文件夹并打开

open .

这会在桌面创建 demo-project 文件夹,进入该目录,创建 README.md 文件,并用 Finder 打开当前目录。

3、查找并查看日志文件

tail -f app.log

4、搜索项目中的关键词

grep -R -n "TODO" .

5、统计当前目录大小

du -sh ./*

6、下载网页并保存

curl -L -o page.html https://www.apple.com

7、查看某个端口相关进程

lsof -i :3000

如果需要结束对应进程,先确认 PID,再执行:

kill 进程ID

十、风险、习惯与安全使用原则

终端命令很强大,也意味着误操作可能造成严重后果。使用终端时,尤其要注意删除、权限、递归操作和管理员权限。

1、不要随意执行 rm -rf

rm -rf 会递归强制删除文件或文件夹。路径写错时,可能造成严重数据丢失。

执行前应先确认:

ls

必要时先把目标文件移动到临时目录,而不是直接删除。

2、不要随意使用 sudo

sudo 会以管理员权限执行命令。它可以修改系统文件、删除受保护内容、改变权限设置,因此不应在不理解命令含义时使用。

尤其要谨慎对待:

sudo chown -R

3、注意路径中的空格

macOS 中很多路径包含空格,例如应用名、文件夹名。遇到空格时,要使用引号:

open -a "Visual Studio Code" .

或使用反斜杠:

cd My\ Folder

4、不要盲目运行网上复制的脚本

尤其是包含以下内容的命令:

chown -R

curl ... | sh 这类命令会把网络下载的内容直接交给 shell 执行,必须确认来源可信。即使来源可信,也建议先了解命令大致做了什么。

5、先检查,再执行高风险操作

涉及删除、移动、复制、改权限、递归处理时,可以先用 echo 或 ls 检查目标。

例如,删除 .tmp 文件前,先查看匹配范围:

ls *.tmp

或者:

find . -name "*.tmp"

确认无误后,再执行删除命令。

6、理解当前目录和用户目录

再次强调:

• . 表示当前目录

• .. 表示上一级目录

• ~ 表示用户主目录

• / 表示系统根目录

其中 / 是整个系统的根目录,不是当前项目目录。不要在不理解后果的情况下,对 / 或系统目录执行删除、移动、改权限等操作。

小结

macOS 终端命令的核心,是理解路径、文件、权限、进程和系统工具之间的关系。掌握 pwd、cd、ls、mkdir、cp、mv、rm、cat、grep、find、chmod、ps、kill、curl、open、brew 等命令后,就可以完成大多数 macOS 日常管理、开发辅助和自动化操作。

“点赞有美意,赞赏是鼓励”