IndieBits - 独立开发碎碎念

探索海外独立开发 | 学习 · 思考 · 实践

Mac Bash 命令速查表

为 macOS 用户量身打造的终端入门指南

欢迎使用 Mac 终端!这个黑色的窗口是你手中强大的工具。

注意:macOS 从 Catalina (10.15) 版本开始,默认 Shell 已从 bash 更换为 zsh。本指南中的命令在两者中几乎完全通用,对初学者没有影响。


基础中的基础 (The Absolute Basics)

打开终端

  • 访达 (Finder): 前往 “应用程序” -> “实用工具” -> “终端 (Terminal.app)”。
  • 聚焦搜索 (Spotlight): 按下 ⌘ + 空格键,输入 Terminal,然后按回车。

命令结构

一个典型的命令看起来像这样:

1
2
3
命令 [选项] [参数]
# 例如: ls -l /Users
# ls 是命令, -l 是选项, /Users 是参数

获取帮助

当你对一个命令不确定时:

1
2
3
4
5
# 查看命令的详细手册 (manual),按 q 退出
man ls

# 获取命令的简明帮助 (需先安装: brew install tldr)
tldr ls

重要快捷键

快捷键 功能
Tab 自动补全命令或文件名(新手必备神技
Ctrl + C 强制终止当前正在运行的程序
Ctrl + L 清屏 (等同于 clear 命令)
Ctrl + R 搜索历史命令
上/下方向键 浏览历史命令
Ctrl + A 移动光标到行首
Ctrl + E 移动光标到行末

理解核心目录结构 (Understanding Core Directories)

在终端中,”你在哪里” 非常重要。理解几个关键位置可以让你事半功倍。

根目录 (/)

  • 这是整个文件系统的起点,所有文件和目录都在它之下。
  • 使用 cd / 可以切换到根目录,ls / 可以看到 Applications, System, Users 等核心系统文件夹。
  • 建议初学者应避免直接修改此目录下的内容

用户主目录 (~)

  • 这是你自己的专属空间,所有个人文件和配置都存放在这里。
  • 它的路径通常是 /Users/你的用户名
  • 在终端中,~ 是一个特殊符号,它就是你主目录的快捷方式。
  • cd (不带任何参数) 会直接带你回到主目录。

常用子目录

你的主目录下有一些熟悉的文件夹:

  • 桌面: ~/Desktop
  • 文稿: ~/Documents
  • 下载: ~/Downloads

为什么需要 “工作目录”?

当你开始一个新项目(比如写代码、做网站),最佳实践是为它创建一个专属的文件夹,这个文件夹就是你的 “工作目录”。

  • 保持整洁: 避免将项目文件散落在桌面或文稿里。
  • 版本控制: git 等工具是基于目录进行管理的。
  • 便于管理: 项目相关的所有文件都在一个地方,方便查找、备份和删除。

推荐做法:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. 在主目录下创建一个专门存放所有项目的文件夹,比如 "Projects"
mkdir ~/Projects

# 2. 进入这个文件夹
cd ~/Projects

# 3. 为你的新项目创建一个新目录
mkdir my-cool-website

# 4. 进入项目目录,开始工作!
cd my-cool-website
pwd
# 输出: /Users/你的用户名/Projects/my-cool-website

文件与目录操作 (File & Directory Navigation)

导航 (Navigation)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 显示当前工作目录 (Print Working Directory)
pwd

# 列出当前目录下的文件和文件夹
ls

# 以列表形式显示详细信息
ls -l

# 显示所有文件,包括隐藏文件 (以 . 开头)
ls -a

# 以人类可读的格式显示文件大小 (e.g., KB, MB)
ls -lh

# 切换目录 (Change Directory)
cd /Users/yourusername/Documents

# 回到用户主目录
cd ~

# 回到上一级目录
cd ..

# 回到上一次所在的目录
cd -

创建 (Creation)

1
2
3
4
5
# 创建新目录
mkdir new-folder

# 创建一个空文件 (如果文件已存在,则更新其修改时间)
touch new-file.txt

复制、移动与删除 (Copy, Move & Delete)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 复制文件
cp source.txt destination.txt

# 复制整个目录 (必须使用 -r 选项)
cp -r source-folder/ destination-folder/

# 移动文件或目录 (也用于重命名)
mv old-name.txt new-name.txt
mv file.txt ./my-folder/

# 删除文件 (警告:此操作不可恢复!)
rm file-to-delete.txt

# 删除目录及其下所有内容 (警告:请极度谨慎使用!)
rm -r folder-to-delete/

查看文件内容 (Viewing Files)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 一次性显示整个文件内容 (适用于小文件)
cat file.txt

# 分页查看文件内容 (推荐使用,按 q 退出)
less long-file.log

# 查看文件的前 10 行
head file.txt

# 查看文件的后 10 行
tail file.txt

# 实时查看文件新增内容 (常用于看日志)
tail -f app.log

Mac 专属特色命令 (macOS Specials) 

与 Finder 交互

1
2
3
4
5
6
7
8
9
10
11
# 在 Finder 中打开当前目录
open .

# 使用默认应用程序打开文件
open resume.pdf

# 使用指定应用打开文件
open -a "Google Chrome" index.html

# 在默认浏览器中打开网址
open https://www.apple.com

剪贴板操作

1
2
3
4
5
6
# 将命令输出复制到系统剪贴板
cat my_ssh_key.pub | pbcopy

# 将剪贴板内容粘贴到终端 (或重定向到文件)
pbpaste
pbpaste > clipboard-content.txt

Spotlight 搜索

1
2
# 通过 Spotlight 元数据快速搜索文件 (比 find 快得多)
mdfind "Annual Report"

系统相关

1
2
3
4
5
6
7
8
# 让 Mac 开口说话
say "Hello World"

# 防止 Mac 进入睡眠状态 (运行耗时任务时很有用)
caffeinate

# 列出所有磁盘和分区
diskutil list

软件更新

1
2
3
4
5
# 检查可用的系统更新
softwareupdate -l

# 安装所有可用更新
sudo softwareupdate -i -a

包管理器 - Homebrew (The Missing Package Manager)

Homebrew 是 macOS 的非官方包管理器,用于轻松安装各种命令行工具和软件。

核心命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 安装一个软件包 (例如: wget)
brew install wget

# 卸载一个软件包
brew uninstall wget

# 搜索软件包
brew search python

# 更新 Homebrew 自身和软件包列表
brew update

# 升级所有已安装的软件包
brew upgrade

# 列出所有已安装的软件包
brew list

进阶技巧 (Power User Tips)

管道 (|)

将一个命令的输出作为另一个命令的输入。

1
2
3
4
5
# 在当前目录查找所有 txt 文件
ls -l | grep ".txt"

# 查看所有进程,并筛选出与 "chrome" 相关的
ps aux | grep "chrome"

重定向 (>>>)

1
2
3
4
5
# 将输出写入文件 (覆盖已有内容)
ls -l > file_list.txt

# 将输出追加到文件末尾 (不覆盖)
echo "New log entry at $(date)" >> app.log

权限管理

1
2
# 给予脚本文件可执行权限
chmod +x my_script.sh

进程管理

1
2
3
4
5
6
7
8
# 查看所有正在运行的进程
ps aux

# 实时显示系统进程动态
top

# 终止一个进程 (PID 是进程 ID)
kill 12345

别名 (Alias)

为长命令创建快捷方式。

1
2
3
4
5
6
7
8
9
10
11
# 创建一个临时别名
alias ll='ls -lh'

# 要使别名永久生效,请将其添加到配置文件中:
# Zsh 用户:
echo "alias ll='ls -lh'" >> ~/.zshrc
# Bash 用户:
echo "alias ll='ls -lh'" >> ~/.bash_profile

# 使配置立即生效
source ~/.zshrc

Thanks,Happy Coding

0%