Mac相关

Mac相关

记录Mac实用命令及相关内容。


提效工具

Alfred

Snipaste

The Unarchiver

md2card

将 Markdown 文档转换为精美的知识卡片,支持多种风格(小红薯用户推荐)

https://md2card.com/zh

Json序列化网站

https://spidertools.cn/#/

https://www.json.cn/

Sublime Text

cheatsheets

快速查看应用绑定的快捷键

https://cheatsheet-mac.en.softonic.com/mac?ex=RAMP-3406.5&rex=true

好用的插件

thefuck

敲错命令、记不得命令,fuck一下自动纠正

https://github.com/nvbn/thefuck

沉浸式翻译

浏览器翻译插件(非常推荐)

https://immersivetranslate.com/zh-Hans/download/?utm_source=extension&utm_medium=extension&utm_campaign=options_nav

CC Switch

CC Switch 是一款跨平台桌面应用,专为使用 AI 编程工具的开发者设计。它可以统一管理 Claude Code、Codex、Gemini CLI、OpenCode 和 OpenClaw 等 AI 编程工具的配置。

安装:

# 添加第三方源
brew tap farion1231/ccswitch

# 安装
brew install --cask cc-switch

# 升级
brew upgrade --cask cc-switch

工作中用到的命令


打开application.log文件并查找是否包含ERROR字段


cat /path/to/application.log | grep "ERROR"   # 可能会将整个文件加载到内存
grep "ERROR" /path/to/application.log          # 更省内存
grep -i "error" application.log                        # 忽略大小写(匹配 `error`, `Error`, `ERROR` 等)
grep -n "ERROR" application.log                   # 显示行号(方便定位)
grep -c "ERROR" application.log                   # 统计包含 `ERROR` 的行数
grep -v "ERROR" application.log                   # 反向查找(显示不包含 `ERROR` 的行)


快捷键

从光标开始向左选中字符

  • Shift + ←: 向左选中一个字符
    • 每按一次,向左多选中一个字符
    • 持续按住可以逐字扩大选区
  • Command + ←: 将光标移动到行首
    • 光标直接跳到当前行的最左边
    • 不选中任何内容,只是移动光标位置
    • 类似于 Home 键的效果
  • Command + Shift + ←: 从当前光标位置,向左选中至行首
    • 光标在哪,就从哪开始,选中到这一行的最开头
    • 选中的内容会高亮显示

对比:

快捷键 移动范围 是否选中
Shift + ← 左移一个字符
Command + ← 跳到行首
Command + Shift + ← 跳到行首

选中多处同时编辑快捷键

JetBrains IDE:

  1. 先选中这个词(可用Shift + ←
  2. Control + Command + G
  3. 所有相同的词同时被选中
  4. 直接输入新的词,全部同时替换 ✅

VSCode:

  1. 先选中这个词(可用Shift + ←
  2. Command + D: 逐个向下选中下一个相同的词
  3. Command + Shift + L: 一次性选中所有相同的词
  4. 然后直接输入,所有位置同时替换

程序坞放大快速切换应用

command + tab唤起,然后长按command,使用鼠标切换应用,快速跳转已经打开的应用。


Mac 终端命令与快捷键大全

本文档按分类整理了 macOS 常用终端命令和系统快捷键,便于快速查找。


一、文件与目录操作

1.1 目录浏览与切换

命令 说明 示例
pwd 显示当前工作目录的绝对路径 pwd/Users/username
ls 列出当前目录下的文件和文件夹 ls
ls -la 列出所有文件(含隐藏),显示详细信息 ls -la ~/Desktop
ls -lh 以人类可读格式显示文件大小 ls -lh → 显示 4.0K 而非 4096
ls -lS 按文件大小排序(从大到小) ls -lS /var/log
ls -lt 按修改时间排序(最新在前) ls -lt ~/Downloads
ls -R 递归列出所有子目录内容 ls -R ~/project
cd <目录> 切换到指定目录 cd /usr/local/bin
cd ~ 切换到用户主目录 cd ~
cd .. 切换到上一级目录 cd ..
cd - 切换到上一次所在的目录 cd -
tree 以树形结构显示目录(需 brew install tree tree -L 2 → 显示 2 层深度
tree -I <目录> 树形显示但忽略指定目录 tree -I 'node_modules|.git'

1.2 文件与目录创建

命令 说明 示例
mkdir <目录名> 创建目录 mkdir my_project
mkdir -p <路径> 递归创建多级目录 mkdir -p src/main/java/com/example
touch <文件名> 创建空文件或更新已有文件的时间戳 touch index.html
touch file{1..5}.txt 批量创建多个文件 touch test{1..5}.txt → 创建 test1~test5.txt

1.3 复制、移动、重命名

命令 说明 示例
cp <源> <目标> 复制文件 cp a.txt b.txt
cp -r <源目录> <目标目录> 递归复制整个目录 cp -r project/ project_backup/
cp -i <源> <目标> 复制前提示是否覆盖 cp -i a.txt b.txt
mv <源> <目标> 移动文件或重命名 mv old.txt new.txt(重命名)
mv <文件> <目录> 将文件移动到指定目录 mv report.pdf ~/Documents/
ditto <源> <目标> macOS 专用复制,保留资源分支和权限 ditto ~/src ~/backup

1.4 删除

命令 说明 示例
rm <文件> 删除文件 rm temp.txt
rm -i <文件> 删除前逐一确认 rm -i *.log
rm -r <目录> 递归删除目录及其内容 rm -r old_project/
rm -rf <目录> 强制递归删除(危险,慎用 rm -rf /tmp/cache/
rmdir <目录> 删除空目录 rmdir empty_folder

1.5 文件查看

命令 说明 示例
cat <文件> 显示文件全部内容 cat config.yaml
cat -n <文件> 显示内容并带行号 cat -n script.sh
head <文件> 显示文件前 10 行 head README.md
head -n 20 <文件> 显示文件前 20 行 head -n 20 app.log
tail <文件> 显示文件最后 10 行 tail error.log
tail -n 50 <文件> 显示文件最后 50 行 tail -n 50 server.log
tail -f <文件> 实时追踪文件新增内容(看日志利器) tail -f /var/log/system.log
less <文件> 分页查看(支持上下翻页,q 退出) less largefile.txt
more <文件> 分页查看(只能向下翻) more data.csv
wc <文件> 统计行数、单词数、字节数 wc README.md50 200 1500
wc -l <文件> 只统计行数 wc -l *.java
diff <文件1> <文件2> 比较两个文件的差异 diff old.conf new.conf
diff -u <文件1> <文件2> 以统一格式显示差异(更易读) diff -u v1.txt v2.txt

二、文件查找与搜索

命令 说明 示例
find <路径> -name "<名称>" 按文件名查找 find / -name "*.conf"
find <路径> -iname "<名称>" 按文件名查找(忽略大小写) find . -iname "readme*"
find <路径> -type f 只查找文件 find ~/Documents -type f -name "*.pdf"
find <路径> -type d 只查找目录 find . -type d -name "test"
find <路径> -size +100M 查找大于 100MB 的文件 find / -size +100M
find <路径> -mtime -7 查找 7 天内修改过的文件 find ~/project -mtime -7
find <路径> -empty 查找空文件或空目录 find . -empty -type f
find . -name "*.log" -delete 查找并删除匹配文件 find /tmp -name "*.tmp" -delete
grep "<关键词>" <文件> 在文件中搜索关键词 grep "error" app.log
grep -r "<关键词>" <目录> 递归搜索目录中所有文件 grep -r "TODO" src/
grep -i "<关键词>" <文件> 忽略大小写搜索 grep -i "warning" server.log
grep -n "<关键词>" <文件> 显示匹配行的行号 grep -n "function" app.js
grep -c "<关键词>" <文件> 统计匹配行数 grep -c "error" app.log
grep -v "<关键词>" <文件> 显示不包含关键词的行 grep -v "debug" app.log
grep -l "<关键词>" <目录>/* 只列出包含关键词的文件名 grep -l "import" src/*.java
grep -E "<正则>" <文件> 使用扩展正则表达式搜索 grep -E "error|warn" app.log
mdfind "<关键词>" macOS Spotlight 搜索(全盘索引) mdfind "年度报告"
mdfind -name "<文件名>" 按文件名进行 Spotlight 搜索 mdfind -name "config.yaml"
mdfind -onlyin <目录> "<关键词>" 限定目录范围搜索 mdfind -onlyin ~/Documents "预算"
locate <文件名> 快速定位文件(基于数据库) locate httpd.conf
which <命令> 查找命令的可执行文件路径 which python3/usr/bin/python3
whereis <命令> 查找命令的二进制、源码、手册路径 whereis java

三、文件权限与属性

命令 说明 示例
chmod 755 <文件> 所有者读写执行,其他人读执行 chmod 755 deploy.sh
chmod +x <文件> 给文件添加可执行权限 chmod +x start.sh
chmod -R 644 <目录> 递归设置目录下所有文件权限 chmod -R 644 public/
chown <用户>:<组> <文件> 修改文件的所有者和所属组 sudo chown root:admin config.plist
chown -R <用户> <目录> 递归修改目录所有者 sudo chown -R $(whoami) /usr/local
chflags hidden <文件> 在 Finder 中隐藏文件(macOS 专用) chflags hidden ~/secret
chflags nohidden <文件> 取消隐藏 chflags nohidden ~/secret
xattr -l <文件> 查看文件的扩展属性 xattr -l downloaded.zip
xattr -d com.apple.quarantine <文件> 移除"来自互联网"的隔离标记 xattr -d com.apple.quarantine app.dmg
xattr -cr <应用> 递归清除应用的所有扩展属性 xattr -cr /Applications/MyApp.app

权限数字速查

数字 权限 含义
7 rwx 读 + 写 + 执行
6 rw- 读 + 写
5 r-x 读 + 执行
4 r-- 只读
0 --- 无权限

四、系统信息与监控

4.1 系统信息

命令 说明 示例
uname -a 显示完整系统信息 uname -a
uname -m 显示 CPU 架构 uname -marm64(Apple Silicon)
sw_vers 显示 macOS 版本信息 sw_vers → ProductVersion: 14.x
system_profiler SPHardwareDataType 显示硬件详细信息 查看 CPU、内存、序列号等
system_profiler SPSoftwareDataType 显示软件详细信息 查看系统版本、内核版本等
sysctl -n machdep.cpu.brand_string 显示 CPU 型号 sysctl -n machdep.cpu.brand_string
sysctl hw.memsize 显示物理内存大小(字节) sysctl hw.memsize
hostname 显示主机名 hostnameMacBook-Pro.local
whoami 显示当前登录用户名 whoamichenwenpeng
id 显示当前用户的 UID、GID 和所属组 id
uptime 显示系统运行时间和负载 uptimeup 3 days, 2:15
date 显示当前日期和时间 date
cal 显示当前月份日历 cal
cal 2026 显示整年日历 cal 2026

4.2 进程管理

命令 说明 示例
ps aux 显示所有正在运行的进程 ps aux
ps aux | grep <关键词> 查找特定进程 ps aux | grep java
top 实时显示系统资源使用情况 top,按 q 退出
htop 增强版 top(需 brew install htop htop
kill <PID> 终止指定 PID 的进程 kill 12345
kill -9 <PID> 强制终止进程 kill -9 12345
killall <进程名> 按名称终止所有匹配进程 killall Safari
pkill <模式> 按模式匹配终止进程 pkill -f "node server"
lsof -i :<端口> 查看占用指定端口的进程 lsof -i :8080
lsof -i -P 列出所有网络连接 lsof -i -P | head -20
nohup <命令> & 后台运行命令,退出终端不中断 nohup python3 server.py &
jobs 查看当前终端的后台任务 jobs
fg %<编号> 将后台任务切到前台 fg %1
bg %<编号> 将暂停的任务放到后台继续运行 bg %1

4.3 磁盘与存储

命令 说明 示例
df -h 显示磁盘使用情况(人类可读) df -h
du -sh <目录> 显示目录总大小 du -sh ~/Documents15G
du -sh * 显示当前目录下各项大小 du -sh *
du -sh * | sort -rh 按大小排序显示 du -sh * | sort -rh | head -10
du -d 1 -h <目录> 显示一级子目录大小 du -d 1 -h ~/
diskutil list 列出所有磁盘和分区 diskutil list
diskutil info <磁盘> 显示磁盘详细信息 diskutil info disk0
diskutil eraseDisk <格式> <名称> <磁盘> 格式化磁盘(危险 diskutil eraseDisk APFS MyDisk disk2

五、网络相关

5.1 网络诊断

命令 说明 示例
ping <主机> 测试网络连通性 ping google.com
ping -c 5 <主机> 发送 5 个 ping 包后停止 ping -c 5 baidu.com
traceroute <主机> 追踪数据包到目标的路由路径 traceroute google.com
nslookup <域名> 查询域名的 DNS 解析 nslookup github.com
dig <域名> 详细的 DNS 查询 dig github.com
host <域名> 简洁的 DNS 查询 host github.com
curl <URL> 发送 HTTP 请求并显示响应 curl https://api.github.com
curl -I <URL> 只显示 HTTP 响应头 curl -I https://google.com
curl -o <文件> <URL> 下载文件并保存 curl -o file.zip https://example.com/file.zip
curl -X POST -d '<数据>' <URL> 发送 POST 请求 curl -X POST -d '{"key":"val"}' -H "Content-Type: application/json" http://api.example.com
wget <URL> 下载文件(需 brew install wget wget https://example.com/file.tar.gz
wget -r <URL> 递归下载整个网站 wget -r --no-parent https://example.com/docs/

5.2 网络配置

命令 说明 示例
ifconfig 显示网络接口信息 ifconfig en0(Wi-Fi 接口)
ipconfig getifaddr en0 获取 Wi-Fi 的本机 IP ipconfig getifaddr en0192.168.1.100
curl ifconfig.me 获取公网 IP curl ifconfig.me
networksetup -listallhardwareports 列出所有网络硬件端口 查看 Wi-Fi、以太网等接口名
networksetup -getinfo Wi-Fi 获取 Wi-Fi 网络配置 查看 IP、子网掩码、路由器等
networksetup -setdnsservers Wi-Fi <DNS> 设置 DNS 服务器 sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4
networksetup -getdnsservers Wi-Fi 查看当前 DNS 设置 networksetup -getdnsservers Wi-Fi
arp -a 显示 ARP 缓存表 arp -a
netstat -an 显示所有网络连接和端口 netstat -an | grep LISTEN
scutil --dns 显示 DNS 配置 scutil --dns
dscacheutil -flushcache 刷新 DNS 缓存 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
ssh <用户>@<主机> SSH 远程登录 ssh root@192.168.1.10
scp <文件> <用户>@<主机>:<路径> 通过 SSH 复制文件到远程 scp report.pdf user@server:/home/user/
scp <用户>@<主机>:<文件> <本地路径> 从远程复制文件到本地 scp user@server:/var/log/app.log ./
scp -r <目录> <用户>@<主机>:<路径> 递归复制目录到远程 scp -r project/ user@server:/opt/

六、压缩与解压

命令 说明 示例
tar -czf <包名>.tar.gz <目录> 打包并 gzip 压缩 tar -czf backup.tar.gz ~/project
tar -xzf <包名>.tar.gz 解压 tar.gz 文件 tar -xzf backup.tar.gz
tar -xzf <包名>.tar.gz -C <目标> 解压到指定目录 tar -xzf backup.tar.gz -C /tmp/
tar -cjf <包名>.tar.bz2 <目录> 打包并 bzip2 压缩 tar -cjf archive.tar.bz2 data/
tar -xjf <包名>.tar.bz2 解压 tar.bz2 文件 tar -xjf archive.tar.bz2
tar -tf <包名>.tar.gz 查看压缩包内容(不解压) tar -tf backup.tar.gz
zip -r <包名>.zip <目录> 压缩为 zip 格式 zip -r project.zip project/
zip -e <包名>.zip <文件> 创建加密 zip 文件 zip -e secret.zip sensitive.txt
unzip <包名>.zip 解压 zip 文件 unzip project.zip
unzip <包名>.zip -d <目标> 解压到指定目录 unzip project.zip -d /tmp/
unzip -l <包名>.zip 查看 zip 内容(不解压) unzip -l project.zip
gzip <文件> 压缩单个文件(原文件被替换) gzip large.log → 生成 large.log.gz
gunzip <文件>.gz 解压 gzip 文件 gunzip large.log.gz

七、软件包管理(Homebrew)

命令 说明 示例
/bin/bash -c "$(curl -fsSL ...)" 安装 Homebrew Homebrew 官网
brew install <包名> 安装软件包 brew install git
brew install --cask <应用名> 安装 GUI 应用 brew install --cask visual-studio-code
brew uninstall <包名> 卸载软件包 brew uninstall wget
brew update 更新 Homebrew 本身和软件源 brew update
brew upgrade 升级所有已安装的包 brew upgrade
brew upgrade <包名> 升级指定包 brew upgrade node
brew list 列出所有已安装的包 brew list
brew list --cask 列出所有已安装的 GUI 应用 brew list --cask
brew search <关键词> 搜索可用的包 brew search python
brew info <包名> 显示包的详细信息 brew info node
brew doctor 检查 Homebrew 环境问题 brew doctor
brew cleanup 清理旧版本和缓存 brew cleanup
brew services list 列出所有通过 brew 管理的服务 brew services list
brew services start <服务> 启动服务 brew services start mysql
brew services stop <服务> 停止服务 brew services stop mysql
brew services restart <服务> 重启服务 brew services restart nginx
brew tap <仓库> 添加第三方仓库 brew tap homebrew/cask-fonts

八、Git 常用命令

8.1 基础操作

命令 说明 示例
git init 初始化本地仓库 git init
git clone <URL> 克隆远程仓库 git clone https://github.com/user/repo.git
git clone --depth 1 <URL> 浅克隆(只拉最新一次提交) git clone --depth 1 https://github.com/user/repo.git
git status 查看工作区状态 git status
git add <文件> 将文件添加到暂存区 git add index.html
git add . 添加所有更改到暂存区 git add .
git commit -m "<信息>" 提交暂存区的更改 git commit -m "feat: add login page"
git commit --amend 修改最近一次提交信息 git commit --amend -m "fix: typo"
git push 推送到远程仓库 git push origin main
git pull 拉取远程更新并合并 git pull origin main
git fetch 拉取远程更新(不合并) git fetch origin

8.2 分支操作

命令 说明 示例
git branch 列出本地分支 git branch
git branch -a 列出所有分支(含远程) git branch -a
git branch <分支名> 创建新分支 git branch feature/login
git checkout <分支名> 切换分支 git checkout develop
git checkout -b <分支名> 创建并切换到新分支 git checkout -b feature/login
git switch <分支名> 切换分支(新语法) git switch main
git switch -c <分支名> 创建并切换(新语法) git switch -c feature/login
git merge <分支名> 合并指定分支到当前分支 git merge feature/login
git rebase <分支名> 变基到指定分支 git rebase main
git branch -d <分支名> 删除已合并的分支 git branch -d feature/login
git branch -D <分支名> 强制删除分支 git branch -D experiment
git push origin --delete <分支名> 删除远程分支 git push origin --delete feature/old

8.3 查看与回退

命令 说明 示例
git log 查看提交历史 git log
git log --oneline 简洁模式查看历史 git log --oneline -10
git log --graph --oneline 图形化查看分支历史 git log --graph --oneline --all
git diff 查看工作区与暂存区的差异 git diff
git diff --staged 查看暂存区与最新提交的差异 git diff --staged
git stash 暂存当前未提交的更改 git stash
git stash list 查看暂存列表 git stash list
git stash pop 恢复最近一次暂存并删除记录 git stash pop
git stash apply stash@{n} 恢复指定暂存(不删除记录) git stash apply stash@{0}
git reset HEAD <文件> 取消暂存 git reset HEAD index.html
git reset --soft HEAD~1 回退一次提交(保留更改在暂存区) git reset --soft HEAD~1
git reset --hard HEAD~1 回退一次提交(丢弃所有更改 git reset --hard HEAD~1
git checkout -- <文件> 丢弃工作区的修改 git checkout -- index.html
git reflog 查看所有操作记录(可用于恢复) git reflog

九、macOS 专属实用命令

9.1 系统操作

命令 说明 示例
open <文件> 用默认应用打开文件 open report.pdf
open <目录> 在 Finder 中打开目录 open .(打开当前目录)
open -a "<应用名>" <文件> 用指定应用打开文件 open -a "Visual Studio Code" project/
open <URL> 用默认浏览器打开 URL open https://github.com
pbcopy 将标准输入复制到剪贴板 echo "Hello" | pbcopy
pbpaste 将剪贴板内容输出到标准输出 pbpaste > clipboard.txt
pbcopy < <文件> 将文件内容复制到剪贴板 pbcopy < ~/.ssh/id_rsa.pub
say "<文本>" 让 Mac 朗读文本 say "Hello World"
say -v Ting-Ting "<文本>" 用中文语音朗读 say -v Ting-Ting "你好世界"
screencapture <文件> 截屏保存到文件 screencapture screenshot.png
screencapture -i <文件> 交互式截屏(选择区域) screencapture -i area.png
screencapture -c 截屏到剪贴板 screencapture -c
afplay <音频文件> 在终端播放音频 afplay notification.mp3
textutil -convert txt <文件> 转换文档格式 textutil -convert txt document.docx
sips -z <高> <宽> <图片> 调整图片尺寸 sips -z 100 100 icon.png
sips -s format jpeg <图片> --out <输出> 转换图片格式 sips -s format jpeg photo.png --out photo.jpg
mdls <文件> 显示文件的 Spotlight 元数据 mdls photo.jpg

9.2 系统偏好设置(defaults 命令)

命令 说明 示例
defaults read 读取所有偏好设置 defaults read com.apple.finder
defaults write com.apple.finder AppleShowAllFiles -bool true 显示隐藏文件 执行后需 killall Finder
defaults write com.apple.finder AppleShowAllFiles -bool false 隐藏隐藏文件 执行后需 killall Finder
defaults write com.apple.screencapture location <路径> 修改截图保存位置 defaults write com.apple.screencapture location ~/Screenshots
defaults write com.apple.screencapture type jpg 修改截图格式 可选:pngjpggifpdf
defaults write com.apple.dock autohide -bool true 自动隐藏 Dock 执行后需 killall Dock
defaults write com.apple.dock autohide-delay -float 0 去除 Dock 隐藏延迟 执行后需 killall Dock
defaults write com.apple.dock tilesize -int 48 设置 Dock 图标大小 执行后需 killall Dock
defaults write NSGlobalDomain AppleShowAllExtensions -bool true 显示所有文件扩展名 执行后需 killall Finder
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true 禁止在网络卷上生成 .DS_Store 立即生效

9.3 电源与硬件

命令 说明 示例
pmset -g batt 查看电池状态 pmset -g batt
pmset -g 查看当前电源管理设置 pmset -g
sudo pmset sleepnow 立即进入睡眠 sudo pmset sleepnow
caffeinate 阻止 Mac 进入睡眠 caffeinate,按 Ctrl+C 停止
caffeinate -t 3600 阻止睡眠 1 小时(3600 秒) caffeinate -t 3600
caffeinate -s 连接电源时阻止睡眠 caffeinate -s
sudo shutdown -h now 立即关机 sudo shutdown -h now
sudo shutdown -r now 立即重启 sudo shutdown -r now
sudo shutdown -h +30 30 分钟后关机 sudo shutdown -h +30
sudo reboot 重启 sudo reboot
ioreg -l -w 0 | grep Capacity 查看电池健康信息 查看 MaxCapacity 和 DesignCapacity

十、文本处理与管道

命令 说明 示例
echo "<文本>" 输出文本 echo "Hello, Mac!"
echo "<文本>" > <文件> 将文本写入文件(覆盖) echo "line1" > output.txt
echo "<文本>" >> <文件> 将文本追加到文件 echo "line2" >> output.txt
cat <文件1> <文件2> > <合并文件> 合并多个文件 cat part1.txt part2.txt > full.txt
sort <文件> 对文件内容排序 sort names.txt
sort -r <文件> 逆序排序 sort -r scores.txt
sort -n <文件> 按数字排序 sort -n numbers.txt
sort -u <文件> 排序并去重 sort -u emails.txt
uniq <文件> 去除相邻重复行 sort data.txt | uniq
uniq -c <文件> 去重并统计出现次数 sort data.txt | uniq -c
cut -d'<分隔符>' -f<列号> <文件> 按分隔符提取指定列 cut -d',' -f1,3 data.csv
awk '{print $1}' <文件> | 提取第一列 | awk '{print $1}' access.log
awk -F',' '{print $2}' <文件> | 以逗号为分隔符提取第二列 | awk -F',' '{print $2}' data.csv
sed 's/旧/新/g' <文件> 全局替换文本 sed 's/foo/bar/g' config.txt
sed -i '' 's/旧/新/g' <文件> 原地替换(macOS 语法) sed -i '' 's/http/https/g' urls.txt
sed -n '5,10p' <文件> 打印第 5 到 10 行 sed -n '5,10p' data.txt
tr '<字符集1>' '<字符集2>' 字符替换/转换 echo "hello" | tr 'a-z' 'A-Z'HELLO
tr -d '<字符>' 删除指定字符 echo "a1b2c3" | tr -d '0-9'abc
tee <文件> 同时输出到屏幕和文件 ls | tee filelist.txt
xargs <命令> 将标准输入转为命令参数 find . -name "*.tmp" | xargs rm
| 管道:前一个命令的输出作为后一个的输入 cat log.txt | grep "error" | wc -l
> 重定向输出到文件(覆盖) ls > files.txt
>> 重定向输出到文件(追加) date >> log.txt
2> 重定向错误输出 command 2> error.log
2>&1 将错误输出合并到标准输出 command > all.log 2>&1

十一、环境变量与 Shell 配置

命令 说明 示例
echo $PATH | 查看 PATH 环境变量 | echo $PATH
echo $HOME | 查看用户主目录 | echo $HOME/Users/chenwenpeng
echo $SHELL | 查看当前使用的 Shell | echo $SHELL/bin/zsh
export <变量>=<值> 设置临时环境变量(当前会话有效) export JAVA_HOME=/Library/Java/Home
env 显示所有环境变量 env
printenv <变量> 显示指定环境变量的值 printenv PATH
source ~/.zshrc 重新加载 zsh 配置文件 source ~/.zshrc
alias <别名>='<命令>' 创建命令别名(当前会话) alias ll='ls -la'
unalias <别名> 删除别名 unalias ll
alias 查看所有已定义的别名 alias

常用配置文件

文件 说明 用途
~/.zshrc Zsh 配置文件 添加别名、环境变量、插件等
~/.bash_profile Bash 登录 Shell 配置 旧版 macOS 默认 Shell 配置
~/.bashrc Bash 非登录 Shell 配置 交互式 Shell 配置
~/.ssh/config SSH 客户端配置 配置 SSH 别名、密钥等
~/.gitconfig Git 全局配置 用户名、邮箱、别名等
/etc/hosts 主机名映射文件 自定义域名解析

十二、macOS 键盘快捷键大全

12.1 通用快捷键

快捷键 说明
Cmd + C 复制
Cmd + V 粘贴
Cmd + X 剪切
Cmd + Z 撤销
Cmd + Shift + Z 重做
Cmd + A 全选
Cmd + S 保存
Cmd + Shift + S 另存为
Cmd + F 查找
Cmd + G 查找下一个
Cmd + Shift + G 查找上一个
Cmd + H 隐藏当前窗口
Cmd + Option + H 隐藏其他所有窗口
Cmd + M 最小化窗口
Cmd + W 关闭当前窗口/标签页
Cmd + Q 退出当前应用
Cmd + N 新建窗口/文件
Cmd + T 新建标签页
Cmd + P 打印
Cmd + , 打开当前应用的偏好设置

12.2 系统级快捷键

快捷键 说明
Cmd + Space 打开 Spotlight 搜索
Cmd + Tab 切换应用
Cmd + ~ 在同一应用的窗口间切换
Cmd + Option + Esc 强制退出应用
Ctrl + Cmd + Q 锁定屏幕
Ctrl + Cmd + F 全屏/退出全屏
Cmd + Shift + 3 全屏截图
Cmd + Shift + 4 区域截图
Cmd + Shift + 4 + Space 窗口截图
Cmd + Shift + 5 打开截图工具栏(含录屏)
Ctrl + Up 调度中心(Mission Control)
Ctrl + Down 应用程序窗口
F11 显示桌面
Cmd + Shift + . 显示/隐藏隐藏文件(Finder 中)

12.3 Finder 快捷键

快捷键 说明
Cmd + Shift + N 新建文件夹
Cmd + Delete 移到废纸篓
Cmd + Shift + Delete 清空废纸篓
Cmd + D 复制文件
Cmd + I 显示简介(查看文件信息)
Cmd + Shift + C 打开"电脑"目录
Cmd + Shift + H 打开用户主目录
Cmd + Shift + D 打开桌面目录
Cmd + Shift + A 打开应用程序目录
Cmd + Shift + U 打开实用工具目录
Cmd + Shift + G 前往文件夹(输入路径)
Cmd + Up 前往上级目录
Cmd + Down 打开选中项
Space 快速预览(Quick Look)
Cmd + 1/2/3/4 切换视图(图标/列表/分栏/画廊)
Cmd + Option + V 移动文件(先 Cmd+C 复制,再用此粘贴)

12.4 终端快捷键

快捷键 说明
Ctrl + A 光标移到行首
Ctrl + E 光标移到行尾
Ctrl + U 删除光标前的所有内容
Ctrl + K 删除光标后的所有内容
Ctrl + W 删除光标前的一个单词
Ctrl + L 清屏(等同 clear
Ctrl + C 中断当前命令
Ctrl + D 退出当前 Shell(等同 exit
Ctrl + Z 将当前进程挂起到后台
Ctrl + R 反向搜索历史命令
Tab 自动补全命令/路径
Up / Down 浏览历史命令
!! 执行上一条命令
sudo !! 以 sudo 重新执行上一条命令

十三、开发者常用命令

13.1 Python

命令 说明 示例
python3 --version 查看 Python 版本 python3 --versionPython 3.11.x
python3 <脚本> 运行 Python 脚本 python3 app.py
python3 -m venv <目录> 创建虚拟环境 python3 -m venv venv
source venv/bin/activate 激活虚拟环境 source venv/bin/activate
deactivate 退出虚拟环境 deactivate
pip3 install <包> 安装 Python 包 pip3 install requests
pip3 install -r requirements.txt 从文件安装依赖 pip3 install -r requirements.txt
pip3 list 列出已安装的包 pip3 list
pip3 freeze > requirements.txt 导出依赖列表 pip3 freeze > requirements.txt

13.2 Node.js / npm

命令 说明 示例
node --version 查看 Node.js 版本 node --versionv20.x.x
node <脚本> 运行 JS 脚本 node server.js
npm init -y 初始化项目(生成 package.json) npm init -y
npm install <包> 安装依赖 npm install express
npm install -g <包> 全局安装 npm install -g typescript
npm run <脚本> 运行 package.json 中定义的脚本 npm run dev
npm list 列出已安装的依赖 npm list --depth=0
npx <命令> 执行 npm 包命令(无需全局安装) npx create-react-app my-app
nvm install <版本> 安装指定 Node 版本(需安装 nvm) nvm install 20
nvm use <版本> 切换 Node 版本 nvm use 18
nvm ls 列出已安装的 Node 版本 nvm ls

13.3 Java / Maven

命令 说明 示例
java -version 查看 Java 版本 java -version
javac <文件>.java 编译 Java 文件 javac Main.java
java <类名> 运行 Java 程序 java Main
mvn clean install Maven 清理并构建 mvn clean install
mvn clean package -DskipTests 打包并跳过测试 mvn clean package -DskipTests
mvn dependency:tree 查看依赖树 mvn dependency:tree
mvn spring-boot:run 启动 Spring Boot 应用 mvn spring-boot:run
/usr/libexec/java_home -V 列出所有已安装的 JDK /usr/libexec/java_home -V
export JAVA_HOME=$(/usr/libexec/java_home -v 17) 切换 JDK 版本 切换到 JDK 17

13.4 Docker

命令 说明 示例
docker ps 列出运行中的容器 docker ps
docker ps -a 列出所有容器(含已停止) docker ps -a
docker images 列出本地镜像 docker images
docker pull <镜像> 拉取镜像 docker pull nginx:latest
docker run -d -p <主机端口>:<容器端口> <镜像> 后台运行容器并映射端口 docker run -d -p 8080:80 nginx
docker run -it <镜像> /bin/bash 交互式运行容器 docker run -it ubuntu /bin/bash
docker stop <容器ID> 停止容器 docker stop abc123
docker rm <容器ID> 删除容器 docker rm abc123
docker rmi <镜像> 删除镜像 docker rmi nginx:latest
docker logs <容器ID> 查看容器日志 docker logs -f abc123
docker exec -it <容器ID> /bin/bash 进入运行中的容器 docker exec -it abc123 /bin/bash
docker-compose up -d 启动 docker-compose 服务 docker-compose up -d
docker-compose down 停止并移除 docker-compose 服务 docker-compose down
docker system prune -a 清理所有未使用的资源 docker system prune -a

十四、安全与加密

命令 说明 示例
ssh-keygen -t ed25519 -C "<邮箱>" 生成 SSH 密钥对 ssh-keygen -t ed25519 -C "user@example.com"
ssh-keygen -t rsa -b 4096 生成 RSA 密钥对 ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_ed25519.pub 查看公钥 cat ~/.ssh/id_ed25519.pub
ssh-add --apple-use-keychain ~/.ssh/id_ed25519 将私钥添加到 SSH Agent(macOS) ssh-add --apple-use-keychain ~/.ssh/id_ed25519
ssh-add -l 列出 SSH Agent 中的密钥 ssh-add -l
shasum -a 256 <文件> 计算文件的 SHA-256 校验值 shasum -a 256 download.zip
md5 <文件> 计算文件的 MD5 值 md5 file.iso
openssl enc -aes-256-cbc -in <文件> -out <加密文件> AES 加密文件 openssl enc -aes-256-cbc -in secret.txt -out secret.enc
openssl enc -d -aes-256-cbc -in <加密文件> -out <文件> AES 解密文件 openssl enc -d -aes-256-cbc -in secret.enc -out secret.txt
security find-generic-password -s <服务名> 从钥匙串查找密码 security find-generic-password -s "Wi-Fi"
sudo spctl --master-disable 允许安装任何来源的应用 系统偏好设置中出现"任何来源"
sudo spctl --master-enable 恢复 Gatekeeper 默认设置 恢复安全限制

十五、定时任务与自动化

15.1 Cron 定时任务

命令 说明 示例
crontab -e 编辑当前用户的定时任务 crontab -e
crontab -l 列出当前用户的定时任务 crontab -l
crontab -r 删除当前用户的所有定时任务 crontab -r

Cron 表达式速查

*    *    *    *    *    命令
┬    ┬    ┬    ┬    ┬
│    │    │    │    └─── 星期几 (0-7, 0和7都是周日)
│    │    │    └──────── 月份 (1-12)
│    │    └───────────── 日期 (1-31)
│    └────────────────── 小时 (0-23)
└─────────────────────── 分钟 (0-59)
示例 说明
0 9 * * * /path/to/script.sh 每天 9:00 执行
*/5 * * * * /path/to/script.sh 每 5 分钟执行一次
0 0 * * 0 /path/to/backup.sh 每周日午夜执行
0 8,12,18 * * * /path/to/check.sh 每天 8:00、12:00、18:00 执行
30 2 1 * * /path/to/monthly.sh 每月 1 日凌晨 2:30 执行

15.2 launchctl(macOS 推荐的任务调度)

命令 说明 示例
launchctl list 列出所有已加载的服务 launchctl list
launchctl load <plist文件> 加载服务 launchctl load ~/Library/LaunchAgents/com.my.task.plist
launchctl unload <plist文件> 卸载服务 launchctl unload ~/Library/LaunchAgents/com.my.task.plist
launchctl start <服务名> 启动服务 launchctl start com.my.task
launchctl stop <服务名> 停止服务 launchctl stop com.my.task

LaunchAgent plist 文件位置

路径 说明
~/Library/LaunchAgents/ 当前用户的代理(用户登录时加载)
/Library/LaunchAgents/ 所有用户的代理(用户登录时加载)
/Library/LaunchDaemons/ 系统级守护进程(系统启动时加载)

附录

这是以前总结的,作为留存


Mac快捷键

  • command + Shift + 3 截全屏
  • command + Shift + 4 选区域截屏
  • command + Shift + . 显示隐藏文件
  • fn + E 或者 control + command + 空格 选择表情

Terminal美化

让Claude帮你安装新的美化方案。

帮我安装以下终端工具并完成配置:

1. Ghostty(终端模拟器)—— brew cask 安装,配置 Catppuccin Mocha 主题
2. Starship(命令提示符)—— brew 安装,应用 gruvbox-rainbow preset,配置到 zshrc
3. Lazygit(Git TUI)—— brew 安装即可
4. Yazi(文件管理器)—— brew 安装,附带 ffmpegthumbnailer 和 poppler
5. Zoxide(智能 cd)—— brew 安装,配置到 zshrc,用 --cmd cd 替换原生 cd
6. JetBrainsMono Nerd Font —— brew cask 安装,配置到终端字体
卸载 Oh My Zsh,zshrc 中补上 history 和 completion 基础配置

我用的终端是 Ghostty(如果还没装就先装),shell 是 zsh。


HomeBrew


# 显示 homebrew 安装的包
brew list

# 显示 homebrew 安装了多少包,占多少内存
brew info

# 显示某个包的详细信息
brew info xxx

# 清除 homebrew 安装的缓存
brew cleanup 

# 安装包
brew install xxx

# 删除包
brew uninstall xxx

# 删除未使用的依赖包
brew autoremove

# 显示 homebrew 安装目录
brew --repository


xxx已损坏,无法打开。 你应该将它移到废纸篓

  • 允许任何来源软件安装
    # 终端输入
    sudo spctl --master-disable
    # 设置->隐私与安全性->任何来源
    
  • 绕过公证
    # 终端输入
    sudo xattr -rd com.apple.quarantine /Applications/xxxxxx.app
    
  • 应用签名
    https://zhuanlan.zhihu.com/p/474801204?utm_id=0

Mac终端命令大全

命令名 功能描述 举例或备注
cd 进入指定文件夹路径 cd ~/Desktop
cd Documents/gitkraken 注意cd后面直接跟Documents,没有/
pwd 显示当前的目录路径 /Users/xz/Desktop
ls 显示当前目录下的内容
ls -la 显示当前目录下的详细内容
ls -A 显示当前目录下的内容 含点(.)开头的文件
mkdir 创建目录 mkdir dir_name
touch file.format 创建指定格式的文件 touch test.txt
mvdir 移动目录 mvdir dir1 dir2
mv 移动/重命名—文件/文件夹 mv dir1 dir2MAC没有重命名的命令
rm 删除文件 或 空目录
rm -rf dir 删除一个 非空 目录 rm -rf dir
rmdir 删除 空 目录 平时用得少
cp 复制文件或目录 cp file1 file2
file 显示文件类型 file file_name
find 使用匹配表达式查找文件 find *.file_format
open 使用默认的程序打开文件 open file_name
cat 显示或连接文件内容 cat file
ln 为文件创建联接 ln -s file1 file2s 表示软联接
head 显示文件的最初几行 head -20 file_name
tail 显示文件的最后几行 tail -10 file_name
paste 横向拼接文件内容 paste file1 file2
diff 比较并显示两个文件的内容差异 diff file1 file2
wc 统计文件的字符数、词数和行数 wc file_name
uniq 去掉文件中的重复行 uniq file_name
grep 通过简单正则表达式搜索文件
cd .. 退回上一级目录
open file.format 打开文件 open test.txt
vim file.format 在命令行用vim打开文件 vim test.txt
:q! 用vim打开文件后,强制退出vim,并不作任何修改。q退出,!强制
esc + :wq 用vim打开文件后,先保存然后再退出。w写保存
:q 用vim打开文件后,放弃修改不保存。
ls zen* 搜索以zen开头的所有文件
cp -r source_dir/ destination_dir/ 递归复制目录及其内容
control+command+空格 / fn+E 召唤出表情选择框
posted @ 2025-07-01 23:29  cwp0  阅读(103)  评论(0)    收藏  举报