# macOS 应用
brew (opens new window) - macOS 最好用的软件包管理器
# 非开源
Typora (opens new window) - 体验很棒的 markdown 笔记 App,现已收费
Sublime Text - 打开速度最快的文本编辑器
Magnet - 快捷调整窗口大小
SourceTree (opens new window) - Git 图形界面客户端,该有的基本都有
DaisyDisk (opens new window) - 可视化查看硬盘空间大小的 App
Clearview - 查看 epub、亚马逊电子书
Pixelmator Pro (opens new window) - 去水印、抠图、加滤镜...
MacZip (opens new window) - 超好用的解压工具,可预览,原名 eZip
SuspiciousPackage (opens new window) - 查看 macOS 上 pkg 格式安装包里面的文件,可以知道往电脑哪里目录写入文件
Microsoft Remote Desktop Beta (opens new window) - 微软远程桌面,局域网连接 Windows 电脑 家庭普通版开启远程 (opens new window)
# 开源
顶部菜单栏 CPU、网速等状态显示 https://github.com/exelban/stats
在终端打开(在终端 cd 到当前路径) https://github.com/Ji4n1ng/OpenInTerminal/releases
图片压缩:https://github.com/meowtec/Imagine/releases
截图就能翻译,只需按下快捷键、框选文字,简单到令人发指 https://github.com/ripperhe/Bob/releases
截图就可以上传图片到图床(配合笔记类 App 使用): https://github.com/gee1k/uPic/releases
下载 ipa https://github.com/majd/ipatool
文本差异对比 https://yousseb.github.io/meld/
免费开源防火墙软件 https://objective-see.org/products/lulu.html
JSON 导出为各种编程语言的类 https://github.com/Ahmed-Ali/JSONExport
剪贴板管理器(Windows、Linux 也支持,体验一般) https://github.com/hluk/CopyQ/releases
下载及嗅探工具 https://github.com/persepolisdm/persepolis/releases
提取 ipa 图片 Assets 素材的工具 https://github.com/insidegui/AssetCatalogTinkerer/releases
sqlite studio -- SQLite 客户端,支持 macOS、Windows、Linux https://github.com/pawelsalawa/sqlitestudio/releases
Macast - 模拟电视盒子,可以把手机 App 的视频投屏到电脑屏幕,符合 DLNA 协议的投屏软件都可,支持 macOS、Windows、Linux https://github.com/xfangfang/Macast/releases
PiP - AirPlay 接收器,可模拟电视盒子,可以把手机 App 的视频投屏到电脑屏幕,还可以悬浮任何软件窗口 https://github.com/amitv87/PiP
录屏时显示快捷键操作 https://github.com/keycastr/keycastr
限制最大充电百分比的 macOS 工具 https://github.com/davidwernhart/AlDente
Wechat Chat History Exporter 微信聊天记录导出程序 https://github.com/BlueMatthew/WechatExporter
视频极速分割 https://github.com/mifi/lossless-cut/releases
文本对比 https://github.com/Wilfred/difftastic
macOS 系统固件下载 https://github.com/ninxsoft/Mist/releases
n - Node.js 多版本安装切换工具 https://github.com/tj/n
brew install n
#创建n所需文件夹 取得/usr/local/n目录权限
sudo mkdir -p /usr/local/n
sudo chown -R $(whoami) /usr/local/n
限制最大电池充电量的命令行工具(M1 等芯片不适用) https://github.com/zackelia/bclm https://github.com/actuallymentor/battery
将完整的网页保存为单个 HTML 文件 https://github.com/Y2Z/monolith
Mac 空格键预览 https://github.com/haokaiyang/Mac-QuickLook
# Web 应用
字符画流程图: https://textik.com/ http://asciiflow.com/ http://stable.ascii-flow.appspot.com/
Google 的图片在线压缩:https://squoosh.app/index.html
获取 IP 地址:https://www.v2ex.com/t/695489
# 浏览器插件
# 油猴脚本
在 Google 搜索结果中轻松隐藏不需要的域名:https://greasyfork.org/zh-CN/scripts/1682-google-hit-hider-by-domain-search-filter-block-sites
网盘直链下载助手 https://greasyfork.org/zh-CN/scripts/436446
【就是加速】百度网盘无限速批量下载 - 支持文件夹下载 https://greasyfork.org/zh-CN/scripts/463707
Github 旧 feed https://greasyfork.org/zh-CN/scripts/474728-github-old-feed
# 命令行工具
# 安装ohmyzsh终端增强工具 https://github.com/ohmyzsh/ohmyzsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 安装homebrew https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ brew install autojump
# Oh My Zsh自动提示:https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
vim ~/.zshrc
# 修改`.zshrc`文件的 plugins=(git) ==> plugins=(git zsh-autosuggestions)
# rvm https://github.com/rvm/rvm
brew install gpg
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable
# 有时,我们有一段加密文本,但是不知道它使用什么加密方法。这个命令行工具,会根据人工智能算法,自动判断加密方法,能不能解密。
https://github.com/Ciphey/Ciphey
# 各种预览插件 https://github.com/sindresorhus/quick-look-plugins
brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlimagesize suspicious-package quicklookase qlvideo
新 Mac 必备:
# nodejs多版本管理
brew install n
brew install wget
# Intel CPU x86
brew install --cask adoptopenjdk8
# rm替代品,删除文件到废纸篓
brew install trash
brew install nginx
brew install autojump
brew install zsh-autosuggestions
# 其他
# 磁盘信息查看 无权限在前面加sudo
brew install smartmontools
smartctl -a /dev/disk0
smartctl -a /dev/disk0 | egrep "Data|Hours"
#下面是我的输出 2021.11.29
Maximum Data Transfer Size: 256 Pages
Data Units Read: 433,393,865 [221 TB]
Data Units Written: 411,616,331 [210 TB]
Power On Hours: 1,399
Media and Data Integrity Errors: 0
在任意输入框中按 option+shift+K 组合键可输入
文本编辑时按 Fn + Delete 键可向后删除内容
精准调节音量. 如果你想要 Mac 音量比正常的一格还低一些,不妨试试调节音量的同时按住 Option + Shift 键,音量将以正常的 1/4 格调整
禁用 Creative Cloud 自启
launchctl unload -w /Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist
恢复
launchctl load -w /Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist
Mac 查看电池健康情况、电池损耗的方法
ioreg -rn AppleSmartBattery | grep -i capacity
# 屏幕保护程序
简洁漂亮的「时钟屏保」,在你的屏幕上显示翻页时钟https://fliqlo.com/screensaver/
# 开发环境
# NodeJS
我抛弃了 nvm,改用 n,因为安装 nvm 后,每开一个终端 tab 都要卡顿 1 秒,实在难受
n - Node.js 多版本安装及切换工具 github.com/tj/n (opens new window)
# 1.安装
brew install n
# 2.配置。创建n所需文件夹并获取`/usr/local/n`目录权限
sudo mkdir -p /usr/local/n
sudo chown -R $(whoami) /usr/local/n
sudo mkdir -p /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
nvm - 另一个 node 切换工具,不推荐
# nvm https://github.com/nvm-sh/nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
# Java
M1 芯片的 openjdk https://www.azul.com/downloads/?version=java-8-lts&os=macos&architecture=arm-64-bit&package=jdk#zulu
# Ruby
#删除旧的ruby第三方应用
gem cleanup
# Terminal 终端美化
# ohmyzsh 插件
z.lua github 主页 (opens new window) z.lua 作者在知乎的介绍 (opens new window)
#安装
git clone https://github.com/skywind3000/z.lua $ZSH_CUSTOM/plugins/z.lua
vim ~/.zshrc
# 增加一个 plugins=(git z.lua)
source ~/.zshrc
# 使用
z foo # 跳转到包含 foo 并且权重(Frecent)最高的路径
z foo bar # 跳转到同时包含 foo 和 bar 并且权重最高的路径
z -r foo # 跳转到包含 foo 并且访问次数最高的路径
z -t foo # 跳转到包含 foo 并且最近访问过的路径
z -l foo # 不跳转,只是列出所有匹配 foo 的路径
z -c foo # 跳转到包含 foo 并且是当前路径的子路径的权重最高的路径
z -e foo # 不跳转,只是打印出匹配 foo 并且权重最高的路径
z -i foo # 进入交互式选择模式,让你自己挑选去哪里(多个结果的话)
z -I foo # 进入交互式选择模式,但是使用 fzf 来选择
z -b foo # 跳转到父目录中名称以 foo 开头的那一级
# 终端 Shell 技巧
Ctrl
+w
删除光标前一个单词(一个单词一个单词地删)
Ctrl
+u
删除这一行
# SoutceTree
清除首选项
Remove everything in ~/Library/Application Support/SourceTree/
https://confluence.atlassian.com/sourcetreekb/how-to-wipe-sourcetree-preferences-412484640.html
# macOS 小技巧
# 系统下载
https://sysin.org/blog/macOS/
# 显示 or 不显示隐藏文件
Shift
+Cmd
+.
# 允许安装未知来源的软件
sudo spctl --master-disable
# 查看 CPU Model
sysctl -n machdep.cpu.brand_string
# 查看你的 443 端口被那些程序使用,以及他们的 pid
sudo lsof -i:443
或者:ps aux | grep 5037
列出所有当前正在监听的 TCP 连接 sudo lsof -iTCP -sTCP:LISTEN
# base64 加密解密
# 加密
echo "ILoveYou" | base64
SUxvdmVZb3UK
#解密
echo "SUxvdmVZb3UK" | base64 -D
ILoveYou
# 软件打不开系列问题
# “CleanMyMac 3.app”已损坏,打不开。 您应该将它移到废纸篓。
无法打开“xxx”,因为无法验证开发者。macOS 无法验证此 App 不包含恶意软件
在系统偏好设置-> 安全性与隐私中显示任何来源
# 它的作用是关闭系统的 Gatekeeper,这是一个用于保护系统免受恶意软件攻击的安全特性。
sudo spctl --master-disable
# “微信.app”已被阻止,因为它可能暴露您的隐私并降低 Mac 的安全性。您应该将它移到废纸篓。
原因:使用了微信小助手插件
解决方法:打开终端运行如下命令:
codesign --sign - --force --deep /Applications/WeChat.app
# 您不能打开应用程序 XXX,因为它可能已损坏或不完整
# 这个命令是用来清除指定文件或目录的扩展属性(Extended Attributes)的。-c:清除扩展属性。-r:递归处理目录下所有文件及其子目录中的扩展属性。
# 如果提示“您没有权限使用”,则可以运行如下命令,来去除@权限。
# mac的文件权限属性中有个@标识,听说是用来标识备份文件的。
xattr -c -r /Applications/IDA\ Pro\ 7.0/ida64.app
# XXX 已损坏,无法打开。 你应该将它移到废纸篓
sudo xattr -dr com.apple.quarantine /Applications/xxx.app
# 排除时间机器要同步的目录
https://www.appinn.com/timemachine-exclude/
https://github.com/stevegrunwell/asimov
使用 mdfind
工具搜索所有被 Time Machine 排除的备份目录
sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"
# 禁止 Adobe Creative Cloud 等自启
launchctl unload -w /Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist
# 或者
launchctl remove net.yanue.XXX
launchctl 管理 OS X 的启动脚本,控制启动计算机时需要开启的服务。也可以设置定时执行特定任务的脚本
来自:https://apple.stackexchange.com/a/138945
# 使用 launchctl 实现开机执行 shell 脚本
创建一个 Shell 脚本: 首先,创建一个包含你想要在启动时执行的 Shell 脚本。例如,创建一个名为
myscript.sh
的文件,并确保该文件具有执行权限。# myscript.sh #!/bin/bash echo "Hello, this script runs at startup!"
通过
chmod +x myscript.sh
命令为脚本添加执行权限。创建一个 plist 文件: 创建一个 Property List (plist) 文件,用于描述启动任务的配置。你可以使用文本编辑器创建一个文件,例如
com.example.myscript.plist
。<!-- com.example.myscript.plist --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.myscript</string> <key>ProgramArguments</key> <array> <string>/path/to/myscript.sh</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
请确保将
<string>/path/to/myscript.sh</string>
替换为你的脚本的实际路径。加载配置: 使用
launchctl
命令加载配置文件。launchctl load ~/Library/LaunchAgents/com.example.myscript.plist
请注意,
~/Library/LaunchAgents/
是用户级别的 Launch Agents 目录。如果你想要系统级别的任务,请将 plist 文件放置在/Library/LaunchDaemons/
目录中,并使用sudo
加载。sudo launchctl load /Library/LaunchDaemons/com.example.myscript.plist
确保在
launchctl load
之前,你已经保存了 plist 文件。验证: 使用以下命令验证任务是否已经正确加载。
launchctl list | grep com.example.myscript
如果任务正确加载,你应该能够在列表中看到它。
现在,当系统启动时,你的 Shell 脚本应该会自动执行。请注意,任务在用户登录时启动,因此如果你希望在系统启动时运行而无需登录,可以考虑使用系统级别的 Launch Daemons。
# 关闭系统的完整性保护
csrutil disable
是 macOS 系统中的一个命令,它的作用是关闭系统的完整性保护功能(System Integrity Protection,简称 SIP)。SIP 是从 macOS El Capitan(10.11)版本开始引入的一项安全功能,旨在防止系统的核心组件被未经授权的程序修改,保护系统不被恶意软件攻击。
关闭 SIP 需要在 macOS Recovery 模式下执行,您需要先重启计算机并按住 Command+R 组合键进入恢复模式。在恢复模式下,选择“实用工具”->“终端”,然后输入以下命令:
csrutil disable
然后重启计算机即可关闭 SIP 功能。关闭 SIP 后,您可以修改系统的核心组件和其他受保护的文件,但这也可能导致系统的安全性降低,因为 SIP 是为了保护系统的完整性而设计的。因此,关闭 SIP 应该是一个谨慎的决定,并且只在必要的情况下执行。(来自 ChatGPT)
开启只需把上面的命令换成csrutil enable
即可
PS1: M1 M2 等系列芯片不要关闭,否则哔哩哔哩 mac 版等 iOS 应用无法打开!
# 查看某个 App 签名:
打开终端,使用以下命令来查看应用程序的签名信息(将命令中的
YourAppName.app
替换为实际的应用程序名称):codesign -dv --verbose=4 /Applications/YourAppName.app
这个命令会显示应用程序的签名详细信息,包括签名者、签名日期、签名算法等。
如果应用程序是被签名的,并且签名信息没有异常,你将会看到类似以下内容的输出:
Executable=/Applications/YourAppName.app/Contents/MacOS/YourAppName Identifier=com.yourcompany.YourAppName Format=bundle with Mach-O thin (x86_64) CodeDirectory v=2020 length=4325 flags=0x0(none) hashes=135+5 location=embedded Signature size=8955 ...
# 通过备份数据库还原启动台(LaunchPad)布局
通过时光机备份的数据,还原到新 mac 时会出现 LaunchPad 布局丢失的情况,所有之前的文件夹分类都没了。
- 分别查找新旧电脑 LaunchPad 的布局数据库目录
LaunchPad 的布局数据库位于 /private/var/folders 下的某个文件夹内,具体位置可以在终端中输入以下命令查找:
cd /private/var/folders
sudo find ./ -name 'com.apple.dock.launchpad'
我这里出现了两个结果:
.//sx/2dqddn054fj9m8s12tpkqv140000gn/0/com.apple.dock.launchpad
.//l_/bqphz62d4pdgnj_vh15knvhm0000gn/0/com.apple.dock.launchpad
下面这个目录占用大,所以是待覆盖的数据库目录。
# 打开目录
open ./l_/bqphz62d4pdgnj_vh15knvhm0000gn/0/com.apple.dock.launchpad
里面 db 目录的结构如下:
├── db
├── db-shm
└── db-wal
方法二:上面的几个数据库目录步骤可以用下面的一行命令查找(来源 (opens new window)):
echo $(getconf DARWIN_USER_DIR)com.apple.dock.launchpad/db
将旧机器的
com.apple.dock.launchpad
目录里的 db 文件覆盖到新机器的相应目录运行
sudo killall Dock
重启即可。原文 (opens new window)
# 应用路径
# 搜狗输入法
~/Library/Application Support/Sogou
# Chrome插件位置
/Users/pan/Library/Application Support/Google/Chrome/Default/Extensions
#查看python3真实位置,是homebrew安装的还是系统的
realp3="$(which python3)" && ls -al $realp3
# 卸载软件后残留的守护进程(定时任务):
Service could not initialize: Unable to set current working directory. error = 2: No such file or directory, path = /Applications/SunloginClient.app/Contents/MacOS: 20F71: xpcproxy + 23787 方法:
# 列出守护进程(定时任务)
sudo launchctl list
# 卸载向日葵服务
sudo launchctl unload /Library/LaunchDaemons/com.oray.sunlogin.helper.plist
sudo launchctl unload /Library/LaunchDaemons/com.oray.sunlogin.plist
#完全禁用/启用 Spotlight 索引 https://www.technipages.com/macos-sierra-enable-disable-spotlight
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
# 阻止 Spotlight 索引指定名字的文件夹
# 先cd到你想要排除的路径,将所有子目录名字叫node_modules的不加到索引
# https://github.com/yarnpkg/yarn/issues/6453
find . -type d -path './.*' -prune -o -path './Pictures*' -prune -o -path './Library*' -prune -o -path '*node_modules/*' -prune -o -type d -name 'node_modules' -exec touch '{}/.metadata_never_index' \; -print
# 重新索引
sudo mdutil -i on /
# 文件夹后面带个.noindex就可以防止Spotlight搜到
# Typora 修改内容样式
官方文档:http://theme.typora.io/doc/Write-Custom-Theme/
样式路径~/Library/Application Support/abnerworks.Typora/themes
正文字体大小 html {
font-size: 1px;
}
短代码块 #write code,
tt {
margin: 0 2px;
padding: 2px 4px;
border-radius: 2px;
font-family: Menlo, Source Sans Pro, Monaco, courier, monospace !important;
font-weight: bold;
font-size: 0.85rem;
color: #9999ff;
background-color: #000;
/*background-color: hsla(0, 0%, 0%, 0.2);*/
}
加粗样式改成自己喜欢的颜色 #write strong {
color: #ff0000;
padding: 0px 1px 0 1px;
}
.cm-header,
.cm-strong {
font-weight: 700;
}
#write mark {
background-color: #ebffeb;
border-radius: 2px;
padding: 2px 4px;
margin: 0 2px;
color: #222;
font-weight: 500;
}
# 获取 IP 位置及经纬度
curl ipinfo.io
# brew
adns libevent openssl@1.1
annie libffi opus
aom libgcrypt p11-kit
autoconf libgpg-error pcre
autojump libheif pinentry
automake libidn2 pixman
cairo libimobiledevice pkg-config
chisel libksba postgresql
cmake libogg python
coreutils libomp python@2
doxygen libplist rclone
ffmpeg libpng readline
flac libsamplerate rtmpdump
fontconfig libsndfile rubberband
freetype libsoxr scrcpy
frei0r libtasn1 sdl2
fribidi libtiff shared-mime-info
gdbm libtool shellcheck
gettext libunistring snappy
giflib libusb speex
gifsicle libusbmuxd sphinx-doc
glib libvidstab sqlite
gmp libvorbis swig
gnupg libvpx tesseract
gnutls libyaml theora
graphite2 little-cms2 tmux
harfbuzz lua tree
highlight lua@5.1 uchardet
icu4c lzo unbound
ilmbase mongodb usbmuxd
imagemagick mono vapoursynth
jpeg mpv webp
krb5 mujs wget
lame ncurses x264
ldid nettle x265
leptonica ninja xvid
libarchive npth xz
libass opencore-amr yasm
libassuan openexr youtube-dl
libbluray openjpeg zimg
libde265 openssl zlib
# 硬件知识
笔记本电池最佳电量是 50%左右,一直插电的情况下,每个月至少放点一两次,有助于电池健康