苹果电脑中的“终端”(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 lsman 是 manual 的缩写,用于查看命令的详细说明、参数和用法。进入 man 页面后,可以按 q 退出。
有些命令也支持:
命令 --help或:
命令 -h不同命令支持的帮助参数不完全一致,man 命令名 是 macOS / Unix 系统中更标准的帮助入口。
2、查看历史命令
查看最近执行过的命令:
history如果想重新执行历史命令,可以使用键盘的上方向键逐条查找之前输入过的命令。
3、查看命令位置与类型
查看某个命令的位置:
which node也可以使用:
command -v nodecommand -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之后可以使用:
ll5、清屏
清空当前终端显示内容:
clear二、路径、目录与文件管理
路径和文件管理是终端最基础的内容。只要理解当前目录、目标路径和命令作用,就能完成大多数文件操作。
1、查看当前目录
pwdpwd 是 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 -amacOS 中以 . 开头的文件通常是隐藏文件,例如:
.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.txt7、删除文件与文件夹
删除文件:
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.mdopen -R 很适合在终端中找到文件后,快速回到 Finder 中查看文件位置。
2、查看文本文件内容
查看整个文件:
cat README.mdcat 适合查看较短文件。
分页查看长文件:
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.logtail -f 会持续显示文件末尾的新内容,适合观察服务器日志、构建日志或调试输出。停止实时查看时,可以按:Control + C。
3、编辑文本文件
使用 nano 编辑文件:
nano README.mdnano 比较适合初学者。
常用操作:
• Control + O:保存
• Enter:确认文件名
• Control + X:退出
使用 vim 编辑文件:
vim README.mdvim 功能强大,但学习成本较高。
常用操作:
• 按 i 进入插入模式
• 按 Esc 退出插入模式
• 输入 :wq 保存并退出
• 输入 :q! 不保存强制退出
如果只是临时修改配置文件,初学者通常使用 nano 更容易。
四、查找、搜索、统计与重定向
查找文件、搜索文本和重定向输出,是终端处理中非常常见的组合能力。
1、按文件名查找文件
基本语法:
find 路径 -name "文件名"在当前目录下查找所有 .txt 文件:
find . -name "*.txt"在用户目录下查找 Markdown 文件:
find ~ -name "*.md"按类型查找文件:
find . -type f按类型查找文件夹:
find . -type d2、搜索文件内容
搜索文件内容:
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.mdmdfind 适合根据 Spotlight 索引查找文件,find 更适合按路径和文件名规则查找。
5、文本输出与重定向
输出文本:
echo "Hello Mac"把输出写入文件:
echo "Hello Mac" > hello.txt注意:> 会覆盖原文件内容。
追加写入文件:
echo "New line" >> hello.txt>> 表示追加,不会覆盖原内容。
把命令结果保存到文件:
ls -alh > files.txt6、剪贴板命令
macOS 提供了两个非常方便的剪贴板命令:pbcopy 和 pbpaste。
把文本复制到剪贴板:
echo "Hello Mac" | pbcopy把文件内容复制到剪贴板:
cat README.md | pbcopy输出剪贴板内容:
pbpaste把剪贴板内容保存为文件:
pbpaste > clip.txt这在复制错误日志、整理代码片段、转存文本内容时非常方便。
五、磁盘空间、权限与压缩归档
这一组命令主要用于查看空间占用、处理权限问题和打包文件。
1、查看磁盘空间
查看磁盘空间:
df -hdf 用于查看磁盘分区使用情况,-h 表示以易读形式显示大小。
查看当前目录大小:
du -sh .查看指定文件夹大小:
du -sh ~/Downloads查看当前目录下各项目大小:
du -sh ./*这个命令适合排查哪些文件夹占用空间较大。
查看磁盘设备信息:
diskutil listdiskutil 是 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.gzzip 更适合与普通用户交换文件,tar.gz 更常见于开发、部署和开源项目。
六、进程、端口与网络检查
当程序卡住、端口被占用或网络异常时,可以使用进程和网络命令进行排查。
1、查看和管理进程
查看进程:
ps aux查找指定进程:
ps aux | grep node结果中可能会包含 grep 命令自身,这属于正常现象。
实时查看系统进程:
toptop 会动态显示 CPU、内存和进程信息。
退出 top:
q结束进程:
kill 进程ID例如:
kill 12345强制结束进程:
kill -9 进程IDkill -9 会强制终止进程,不给程序正常清理资源的机会。一般应先尝试普通 kill,无效时再考虑 kill -9。
按名称结束进程:
killall 应用或进程名例如:
killall Safari这会结束所有名为 Safari 的进程,使用时要谨慎。
2、查看端口占用
查看某个端口相关进程:
lsof -i :3000如果某个开发服务提示端口被占用,可以先用这条命令查看占用该端口的进程。确认 PID 后,再执行:
kill 进程ID如果普通 kill 无效,再谨慎考虑:
kill -9 进程ID3、测试网络连通性
测试网络连通性:
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查看系统运行时间:
uptime2、截屏、朗读与防止睡眠
截屏:
screencapture screenshot.png延迟 5 秒截屏:
screencapture -T 5 screenshot.png选择区域截屏:
screencapture -i screenshot.png语音朗读:
say "Hello, Mac"也可以朗读中文:
say "你好,苹果电脑"防止电脑睡眠:
caffeinate指定持续时间,例如保持唤醒 1 小时:
caffeinate -t 36003、扩展属性与 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.log4、搜索项目中的关键词
grep -R -n "TODO" .5、统计当前目录大小
du -sh ./*6、下载网页并保存
curl -L -o page.html https://www.apple.com7、查看某个端口相关进程
lsof -i :3000如果需要结束对应进程,先确认 PID,再执行:
kill 进程ID十、风险、习惯与安全使用原则
终端命令很强大,也意味着误操作可能造成严重后果。使用终端时,尤其要注意删除、权限、递归操作和管理员权限。
1、不要随意执行 rm -rf
rm -rf 会递归强制删除文件或文件夹。路径写错时,可能造成严重数据丢失。
执行前应先确认:
ls必要时先把目标文件移动到临时目录,而不是直接删除。
2、不要随意使用 sudo
sudo 会以管理员权限执行命令。它可以修改系统文件、删除受保护内容、改变权限设置,因此不应在不理解命令含义时使用。
尤其要谨慎对待:
sudo chown -R3、注意路径中的空格
macOS 中很多路径包含空格,例如应用名、文件夹名。遇到空格时,要使用引号:
open -a "Visual Studio Code" .或使用反斜杠:
cd My\ Folder4、不要盲目运行网上复制的脚本
尤其是包含以下内容的命令:
chown -Rcurl ... | 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 日常管理、开发辅助和自动化操作。
“点赞有美意,赞赏是鼓励”
热门跟贴