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