awesome-macos-command-line 收集了很多有趣的 Mac 终端命令。
看了一遍后,发现帮助很大。
见识了许多没有使用过的命令,加深了对 Mac 的认识。
所以翻译成中文,分享给其他需要的人查看。
翻译不妥的地方,欢迎提 issue 或者 pull request 。
喜欢点 star ,关注点 watch,贡献点 fork 。
为了获得更好的阅读效果,可以在线预览。在线预览地址
精心为 OS X 挑选的 shell 命令和工具。
“你无需知晓一切。仅仅在你需要的时候,找到它就行了。” (John Brunner)
中文 | English
# 减小透明度
defaults write com.apple.universalaccess reduceTransparency -bool true
# 恢复默认透明度
defaults write com.apple.universalaccess reduceTransparency -bool false# Mountain Lion 及之前的版本支持
osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/path/to/picture.jpg"'
# 从 Mavericks 开始支持
sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '/path/to/picture.jpg'" && killall Dock# 通过 find
find /Applications -path '*Contents/_MASReceipt/receipt' -maxdepth 4 -print |\sed 's#.app/Contents/_MASReceipt/receipt#.app#g; s#/Applications/##'
# 通过 Spotlight
mdfind kMDItemAppStoreHasReceipt=1Yosemite 版本起作用
# 开启
defaults write com.apple.appstore ShowDebugMenu -bool true
# 关闭 (默认)
defaults write com.apple.appstore ShowDebugMenu -bool falsesudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -help# 激活并且重启 ARD Agent 和 Helper
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -restart -agent -console
# 睡眠并且停止远程管理服务
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -stop# 给予所有用户完全的接入权限
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -allUsers -privs -all
# 关闭 ARD Agent 和删除所有用户的接入权限
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -configure -access -offsudo rm -rf /var/db/RemoteManagement ; \
sudo defaults delete /Library/Preferences/com.apple.RemoteDesktop.plist ; \
defaults delete ~/Library/Preferences/com.apple.RemoteDesktop.plist ; \
sudo rm -r /Library/Application\ Support/Apple/Remote\ Desktop/ ; \
rm -r ~/Library/Application\ Support/Remote\ Desktop/ ; \
rm -r ~/Library/Containers/com.apple.RemoteDesktop# 开启
defaults write com.apple.addressbook ABShowDebugMenu -bool true
# 关闭 (默认)
defaults write com.apple.addressbook ABShowDebugMenu -bool false~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --nukeYosemite 版本起作用。从 El Capitan 开始引入了系统完整性保护,可防止系统启动代理被卸载。
# 停止响应按键
launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist
# 响应按键 (默认)
launchctl load -w /System/Library/LaunchAgents/com.apple.rcd.plist从 El Capitan 开始,您可以禁用 SIP 或者使用某种黑客手段,这将使任何用户都无法访问 iTunes,从而有效地阻止它自己和它的帮助者启动。 请注意,这将无法安装 iTunes ,并可能与操作系统的更新相冲突。
sudo chmod 0000 /Applications/iTunes.appMac 10.14.4 测试,纯文本或其他文件会显示为图标,但是图片会直接插入。图片可以右键转换为图标,或者更换邮箱客户端解决。issue 1
defaults write com.apple.mail DisableInlineAttachmentViewing -bool yes下面的 AppleScript 代码将关闭邮件,清空 SQLite 索引,然后重新打开 Mail。在一个没有优化的大型电子邮件数据库中,可以显着提高响应速度。
(*
加快邮件索引。
代码来源: http://web.archive.org/web/20071008123746/http://www.hawkwings.net/2007/03/03/scripts-to-automate-the-mailapp-envelope-speed-trick/
最初由 pmbuko 改编,Romulo 修改。Brett Terpstra 在 2012 年更新,Mathias Törnblom 在 2013 更新到 V3 支持 El Capitan。Andrei Miclaus 在 2017 年更新到 V4,支持 Sierra。
*)
tell application "Mail" to quit
set os_version to do shell script "sw_vers -productVersion"
set mail_version to "V2"
considering numeric strings
if "10.10" <= os_version then set mail_version to "V3"
if "10.12" <= os_version then set mail_version to "V4"
if "10.13" <= os_version then set mail_version to "V5"
if "10.14" <= os_version then set mail_version to "V6"
end considering
set sizeBefore to do shell script "ls -lnah ~/Library/Mail/" & mail_version & "/MailData | grep -E 'Envelope Index$' | awk {'print $5'}"
do shell script "/usr/bin/sqlite3 ~/Library/Mail/" & mail_version & "/MailData/Envelope\\ Index vacuum"
set sizeAfter to do shell script "ls -lnah ~/Library/Mail/" & mail_version & "/MailData | grep -E 'Envelope Index$' | awk {'print $5'}"
display dialog ("Mail index before: " & sizeBefore & return & "Mail index after: " & sizeAfter & return & return & "Enjoy the new speed!")
tell application "Mail" to activatedefaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StandardFontFamily Georgia
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFontSize 16
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2FixedFontFamily Menlo
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFixedFontSize 14defaults write com.apple.Safari IncludeInternalDebugMenu -bool true && \
defaults write com.apple.Safari IncludeDevelopMenu -bool true && \
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true && \
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true && \
defaults write -g WebKitDeveloperExtras -bool true其他选项: get source, get text.
osascript -e 'tell application "Safari" to get URL of current tab of front window'# 开启
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool YES
# 关闭
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool NOdefaults write com.bohemiancoding.sketch3 exportCompactSVG -bool yes去掉弹窗并设置默认自动加载
defaults write -app Skim SKAutoReloadFileUpdate -boolean true# 开启
defaults write com.apple.Terminal FocusFollowsMouse -string YES
# 关闭
defaults write com.apple.Terminal FocusFollowsMouse -string NOdefaults write com.apple.TextEdit RichText -int 0defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false备份间隔改为 30 分钟,单位是秒。
sudo defaults write /System/Library/LaunchDaemons/com.apple.backupd-auto StartInterval -int 1800本地备份时,时间机器备份卷不可用。
# 查看状态
defaults read /Library/Preferences/com.apple.TimeMachine MobileBackups
# 开启 (默认)
sudo tmutil enablelocal
# 关闭
sudo tmutil disablelocal从 High Sierra 开始,你无法禁用本地快照。 时间机器始终会创建本地 APFS 快照,并使用该快照作为创建常规备份的数据源,而不是使用活动磁盘作为数据源,就像 HFS 格式化磁盘一样。
sudo defaults write /Library/Preferences/com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true这个脚本将输出过去 12 个小时时间机器的备份活动。
#!/bin/sh
filter='processImagePath contains "backupd" and subsystem beginswith "com.apple.TimeMachine"'
# show the last 12 hours
start="$(date -j -v-12H +'%Y-%m-%d %H:%M:%S')"
echo ""
echo "[History (from $start)]"
echo ""
log show --style syslog --info --start "$start" --predicate "$filter"
echo ""
echo "[Following]"
echo ""
log stream --style syslog --info --predicate "$filter"# 查看状态
sudo defaults read /Library/Preferences/com.apple.TimeMachine RequiresACPower
# 开启 (默认)
sudo defaults write /Library/Preferences/com.apple.TimeMachine RequiresACPower -bool true
# 关闭
sudo defaults write /Library/Preferences/com.apple.TimeMachine RequiresACPower -bool false从 OS X 10.11 开始,时间机器记录文件校验和,并且复制到快照。 对于早期版本的 OS X,校验和不会复制到快照。
sudo tmutil verifychecksums /path/to/backup通过 Homebrew 编译出完整 Mac Vim,包括覆盖系统的 Vim。
brew install macvim --HEAD --with-cscope --with-lua --with-override-system-vim --with-luajit --with-python通过 Homebrew 安装现代化的 Vim 替代品。
brew install neovimxcode-select --installxcrun simctl delete unavailabledefaults write com.apple.dock persistent-others -array-add '{ "tile-data" = { "list-type" = 1; }; "tile-type" = "recents-tile"; }' && \
killall Dockdefaults write com.apple.dock persistent-others -array-add '{ "tile-data" = {}; "tile-type"="small-spacer-tile"; }' && \
killall Dockdefaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' && \
killall Dockdefaults write com.apple.dock persistent-apps -array-add '{"tile-type"="small-spacer-tile";}' && \
killall Dock# 开启 (默认)
defaults write com.apple.dock mru-spaces -bool true && \
killall Dock
# 关闭
defaults write com.apple.dock mru-spaces -bool false && \
killall Dock全局设置当唤醒应用时,是否弹跳图标。
# 开启 (默认)
defaults write com.apple.dock no-bouncing -bool true && \
killall Dock
# 关闭
defaults write com.apple.dock no-bouncing -bool false && \
killall Dock# 开启
defaults write com.apple.Dock size-immutable -bool yes && \
killall Dock
# 关闭 (默认)
defaults write com.apple.Dock size-immutable -bool no && \
killall Dockdefaults delete com.apple.dock && \
killall Dock完全改变程序坞主体大小。要调整大小,将 0 改为整数
defaults write com.apple.dock tilesize -int 0 && \
killall Dock使用触摸板或鼠标滚轮与程序坞进行交互,允许您使用向上滚动手势打开应用。正在运行的程序也可以使用相同的手势调用程序窗口管理。
# 开启
defaults write com.apple.dock scroll-to-open -bool true && \
killall Dock
# 关闭 (默认)
defaults write com.apple.dock scroll-to-open -bool false && \
killall Dockdefaults write com.apple.dock autohide -bool true && \
killall Dock浮点数定义了显示和掩藏的延迟时间(单位毫秒)。
defaults write com.apple.dock autohide-time-modifier -float 0.4 && \
defaults write com.apple.dock autohide-delay -float 0 && \
killall Dock# 开启
defaults write com.apple.dock showhidden -bool true && \
killall Dock
# 关闭 (默认)
defaults write com.apple.dock showhidden -bool false && \
killall Dock# 开启
defaults write com.apple.dock static-only -bool true && \
killall Dock
# 关闭 (默认)
defaults write com.apple.dock static-only -bool false && \
killall Dock支持的格式有纯文本、富文本(rtf)以及微软的 Word(doc/docx)。
textutil -convert html file.ext创建一个 10 GB 的空文件。
mkfile 10g /path/to/file当你使用的是 SSD 时,这个设置是无用的。
sudo pmset -a sms 0唯一可以向访达发送 AppleScript 命令的方法。
osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'不依赖图形化磁盘工具修复文件权限。
sudo diskutil repairPermissions /从 OS X El Capitan 开始,系统文件权限将自动受到保护。 不再需要使用磁盘工具验证或修复权限。(来源)
# Up to Yosemite
bless --mount "/path/to/mounted/volume" --setBoot
# From El Capitan
sudo systemsetup -setstartupdisk /System/Library/CoreServicesdiskutil list连续显示文件使用信息。
sudo fs_usage从 High Sierra 开启,没有中央程序,并且使用不一致,因为大多数功能都被卷入到 tmutil。
/System/Library/Filesystems/apfs.fs/Contents/Resources/hfs_convert /path/to/file/system/System/Library/Filesystems/apfs.fs/Contents/Resources/newfs_apfs /path/to/devicetmutil localsnapshottmutil deletelocalsnapshots com.apple.TimeMachine.2018-01-26-044042tmutil listlocalsnapshots /快照是只读的。
mkdir ~/mnt
/System/Library/Filesystems/apfs.fs/Contents/Resources/mount_apfs -s com.apple.TimeMachine.2018-01-26-044042 / ~/mnt将安装的应用程序转换为二进制包。
hdiutil create -volname "Volume Name" -srcfolder /path/to/folder -ov diskimage.dmg如果你想加密磁盘映像:
hdiutil create -encryption -stdinpass -volname "Volume Name" -srcfolder /path/to/folder -ov encrypted.dmg打包前,你要输入密码。为了直接输入密码不弹窗:
echo -n YourPassword | hdiutil create -encryption -stdinpass -volname "Volume Name" -srcfolder /path/to/folder -ov encrypted.dmg这个命令可以应用在 .iso 、.img 和 .dmg 文件上。
hdiutil burn /path/to/image_filedefaults write com.apple.frameworks.diskimages skip-verify -bool true && \
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true && \
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool truebless --folder "/path/to/mounted/volume/System/Library/CoreServices" --bootinfo --bootefihdiutil attach /path/to/diskimage.dmghdiutil detach /dev/disk2s1就像磁盘工具的恢复功能。
sudo asr -restore -noverify -source /path/to/diskimage.dmg -target /Volumes/VolumeToRestoreTo外部的 HDs 、thumb drives 等等。
# 开启
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true && \
killall Finder
# 关闭 (默认)
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false && \
killall Finder自建的 HDs 或者 SSDs。
# 开启
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true && \
killall Finder
# 关闭 (默认)
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false && \
killall FinderCDs 、DVDs 、iPods 等等。
# 开启
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true && \
killall Finder
# 关闭 (默认)
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false && \
killall FinderAFP 、SMB、 NFS、 WebDAV 等等。
# 开启
defaults write com.apple.finder ShowMountedServersOnDesktop -bool true && \
killall Finder
# 关闭 (默认)
defaults write com.apple.finder ShowMountedServersOnDesktop -bool false && \
killall Findersudo chmod -RN /path/to/folderchflags hidden /path/to/folder/defaults write -g AppleShowAllExtensions -bool true# 显示所有
defaults write com.apple.finder AppleShowAllFiles true
# 恢复文件的默认显示
defaults write com.apple.finder AppleShowAllFiles falsesudo chflags -R nouchg /path/to/file/or/folderdefaults write com.apple.finder _FXShowPosixPathInTitle -bool truechflags nohidden ~/Librarydefaults write -g NSNavRecentPlacesLimit -int 10 && \
killall Finder显示 退出访达的默认快捷键是 Cmd + Q 。
# 开启
defaults write com.apple.finder QuitMenuItem -bool true && \
killall Finder
# 关闭 (默认)
defaults write com.apple.finder QuitMenuItem -bool false && \
killall Finder对旧 Mac 会弄乱动画很有用。
# 开启
defaults write -g NSScrollAnimationEnabled -bool false
# 关闭 (默认)
defaults write -g NSScrollAnimationEnabled -bool true# 禁止
defaults write -g NSScrollViewRubberbanding -bool false
# 关闭 (默认)
defaults write -g NSScrollViewRubberbanding -bool truedefaults write -g NSNavPanelExpandedStateForSaveMode -bool true && \
defaults write -g NSNavPanelExpandedStateForSaveMode2 -bool true# 掩藏图标
defaults write com.apple.finder CreateDesktop -bool false && \
killall Finder
# 显示图标(默认)
defaults write com.apple.finder CreateDesktop -bool true && \
killall Finder# 显示
defaults write com.apple.finder ShowPathbar -bool true
# 掩藏 (默认)
defaults write com.apple.finder ShowPathbar -bool false可选的选项: WhenScrolling 、Automatic 和 Always。
defaults write -g AppleShowScrollBars -string "Always"# 显示
defaults write com.apple.finder ShowStatusBar -bool true
# 掩藏 (默认)
defaults write com.apple.finder ShowStatusBar -bool false设置默认保存地址是本地磁盘,而不是 iCloud 。
defaults write -g NSDocumentSaveNewDocumentsToCloud -bool falsedefaults write com.apple.finder FXDefaultSearchScope -string "SCcf"defaults write com.apple.finder NewWindowTarget -string "PfLo" && \
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}"将大小设置为中等大小。
defaults write -g NSTableViewDefaultSizeMode -int 2避免创建 .DS_Store 以及 AppleDouble 文件。
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true避免创建 .DS_Store 以及 AppleDouble 文件。
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true如果同时打开了多个窗口,选择最上面。
cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"open https://github.comopen README.md你可以加上 -a 打开应用程序。
open -a "Google Chrome" https://github.comopen /path/to/folder/open .为了清除所有用户的字体缓存,在命令前加上 sudo。
atsutil databases -removeUser && \
atsutil server -shutdown && \
atsutil server -ping你需要先下载和安装 Xcode 8 beta,之后所有应用都可以使用。
cp -v /Applications/Xcode-beta.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Fonts/SFMono-* ~/Library/Fonts对于 Sierra 之前的版本,它们包含 Terminal.app 中。
cp -v /Applications/Utilities/Terminal.app/Contents/Resources/Fonts/SFMono-* ~/Library/Fonts请看 这个文件.
# 查看状态
defaults read /Library/Preferences/com.apple.Bluetooth ControllerPowerState
# 开启 (默认)
sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 1
# 禁止
sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 0 && \
sudo killall -HUP blued从 Yosemite 开始,可以开启非苹果 SSD 的修剪。
forcetrimnetworksetup -listallhardwareportspmset -g batt | egrep "([0-9]+\%).*" -o --colour=auto | cut -f1 -d';'pmset -g batt | egrep "([0-9]+\%).*" -o --colour=auto | cut -f3 -d';'system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p'system_profiler SPDisplaysDataType | grep Resolutionsysctl -n machdep.cpu.brand_string# 查看状态
defaults read /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled
# 开启 (默认)
defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -int 1
# 关闭
defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -int 0一小时内不使用不睡眠。
caffeinate -u -t 3600sudo pmset -gsudo pmset displaysleep 15sudo pmset sleep 30sudo systemsetup -getcomputersleepsudo systemsetup -setcomputersleep 60sudo systemsetup -setcomputersleep Neversudo systemsetup -setrestartfreeze on当 MagSafe 连接时,播放 IOS 充电声音。
# 开启
defaults write com.apple.PowerChime ChimeOnAllHardware -bool true && \
open /System/Library/CoreServices/PowerChime.app
# 关闭 (默认)
defaults write com.apple.PowerChime ChimeOnAllHardware -bool false && \
killall PowerChime# 禁止
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false
# 开启 (默认)
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool true
# 显示状态
defaults read -g NSAutomaticSpellingCorrectionEnabled对话框启用 Tab 。
# 仅限文本框和列表 (默认)
defaults write NSGlobalDomain AppleKeyboardUIMode -int 0
# 所有控件
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3禁止默认的 "press and hold" 行为。
# 开启按键重复
defaults write -g ApplePressAndHoldEnabled -bool false
# 禁止按键重复
defaults write -g ApplePressAndHoldEnabled -bool true设置非常快的按键频率,根据个人品味调整。
defaults write -g KeyRepeat -int 0.02你需要重启程序坞,因为启动台与它紧密相连。
# Yosemite 之前的版本
rm ~/Library/Application\ Support/Dock/*.db && \
killall Dock
# El Capitan及以上的版本
defaults write com.apple.dock ResetLaunchPad -bool true && \
killall Dock长按删除图标以及重设启动台布局后,仍然无法删除的图标,使用下面的命令删除。
Gitter 是图标名称,大小写敏感。
sqlite3 $(find /private/var/folders \( -name com.apple.dock.launchpad -a -user $USER \) 2> /dev/null)/db/db "DELETE FROM apps WHERE title='Gitter';" && killall Dockafconvert input.mp3 ringtone.m4r -f m4af使用 Alex 声音,将单纯的 UTF-8 文本文件转换为 AAC。
say -v Alex -f file.txt -o "output.m4a"sudo nvram SystemAudioVolume=" "osascript -e 'set volume output muted true'osascript -e 'set volume 4'你可以播放所有 QuickTime 支持的音频格式。
afplay -q 1 filename.mp3say 'All your base are belong to us!'defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen 1# 禁止
sudo defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist ProgramArguments -array-add "-NoMulticastAdvertisements"
# 开启 (默认)
sudo defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist ProgramArguments -array "/usr/sbin/mDNSResponder" "-launchd"sudo ipconfig set en0 DHCPipconfig getpacket en0sudo dscacheutil -flushcache && \
sudo killall -HUP mDNSRespondersudo scutil --set ComputerName "newhostname" && \
sudo scutil --set HostName "newhostname" && \
sudo scutil --set LocalHostName "newhostname" && \
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "newhostname"在网络设置中切换网络位置。
# 查看状态
scselect
# 切换网络位置
scselect LocationNameFromStatusnetworksetup -setmanual "Ethernet" 192.168.2.100 255.255.255.0 192.168.2.1ping -o github.comtraceroute github.com在 macOS Sierra 之前,ssh 会弹出输入密码的对话框,并提供是否将其存储到钥匙串的选项。 这个功能之后被删除。
在 macOS Sierra 中引入了 UseKeychain 选项,允许用户指定是否将密码存储在钥匙串中。 默认情况下,这个选项是开启的,这会导致所有密码都存储在钥匙串中。
这不是预期的默认行为,因此在 macOS 10.12.2 更改过来。([来源](https://developer.apple.com/library/archive/technotes/tn2449/_index.html))
ssh-add -K /path/to/private_keyThen add to ~/.ssh/config:
Host server.example.com
IdentityFile /path/to/private_key
UseKeychain yes# 开启远程登录
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
# 关闭远程登录
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist输出所有使用 80 端口的应用程序。
sudo lsof -i :80仅当你的 ISP 没有替换 DNS 请求(一般不会)。
dig +short myip.opendns.com @resolver1.opendns.com在所有网络中都可使用的替代方法。
curl -s https://api.ipify.org && echo文件将从 /private/tftpboot 启动。
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist && \
sudo launchctl start com.apple.tftpdnetworksetup -setairportnetwork en0 WIFI_SSID WIFI_PASSWORD创建 airport 轻松接入的符号链接。
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport运行无线扫描:
airport -s/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'ipconfig getifaddr en0defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences | grep LastConnected -A 7如果你希望使用 SSID 查询密码。
security find-generic-password -D "AirPort network password" -a "SSID" -gwnetworksetup -setairportpower en0 on- Fink - Unix 开源软件的全部 Darwin 世界,有点过时。
- Homebrew - OS X 缺少的包管理器,最流行的选择,我使用这个工具。
- MacPorts - 基于 X11 、Aqua 的开源软件,编译、安装和升级软件包命令行工具。 非常干净的工具,原作者使用它。
cancel -a -defaults write -g PMPrintingExpandedStateForPrint -bool true && \
defaults write -g PMPrintingExpandedStateForPrint2 -bool truedefaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true# 查看状态
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
# 开启
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
# 关闭 (默认)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate offsudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /path/to/filespctl --add /path/to/Application.appspctl --remove /path/to/Application.app# 查看状态
spctl --status
# 开启 (默认)
sudo spctl --master-enable
# 关闭
sudo spctl --master-disableLC_ALL=C tr -dc "[:alnum:]" < /dev/urandom | head -c 20 | pbcopy# Sierra 之前
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app
# Sierra 之后
/System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend# 查看状态
defaults read com.apple.screensaver askForPasswordDelay
# 开启 (默认)
defaults write com.apple.screensaver askForPasswordDelay -int 0
# 禁止 (Integer = 锁屏的延迟秒数)
defaults write com.apple.screensaver askForPasswordDelay -int 10# 查看状态
defaults read com.apple.screensaver askForPassword
# 开启
defaults write com.apple.screensaver askForPassword -int 1
# 关闭 (默认)
defaults write com.apple.screensaver askForPassword -int 0注意:在 MacOS 10.9 之后,srm 命令已经被删除了。 [Apple 支持页面](https://support.apple.com/en-us/HT201949)解释了原因。
使用 SSD 驱动器时,磁盘工具中不提供安全擦除和擦除可用空间功能。 SSD 驱动器不需要这些选项,因为标准擦除使得难以从 SSD 恢复数据。
srm /path/to/filesrm -r /path/to/folder/srm -rf /path/to/complete/destructionfind . -type f -name '*.DS_Store' -ls -deletesudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist-i修饰符意味着搜索对大小写敏感。
locate -i *.jpg# 在 Ethernet 以上版本以及不支持的 Mac 版本,开启 AirDrop
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
# 开启 (默认)
defaults remove com.apple.NetworkBrowser DisableAirDrop
# 关闭
defaults write com.apple.NetworkBrowser DisableAirDrop -bool YESosascript /path/to/script.scptdiff -qr /path/to/folder1 /path/to/folder2确定你已经安装了 pv,并且使用适当的写入设备或者文件替换了 /dev/rdisk2。
FILE=/path/to/file.iso pv -s $(du -h $FILE | awk '/.*/ {print $1}') $FILE | sudo dd of=/dev/rdisk2 bs=1m如果你的 shell 会话疯狂。(比如某些脚本或应用程序将其变成乱码)。
stty sanesudo rebootsudo poweroffsw_vers显示上次开机到现在过去的时间。
uptimecat whatever.txt | pbcopypbpaste | textutil -convert txt -stdin -stdout -encoding 30 | pbcopypbpaste | expand | pbcopypbpaste > whatever.txtpbpaste | sort | uniq | pbcopy如果在当前卷上启用了文件库,则会绕过初始解锁,重新启动系统。 该命令可能无法在所有版本上运行。
sudo fdesetup authrestart# 查看状态
sudo fdesetup status
# 开启
sudo fdesetup enable
# 禁止 (默认)
sudo fdesetup disablesudo sysdiagnose -f ~/Desktop/# Mojave
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --nointeraction --downloadassets
# High Sierra
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ High\ Sierra.app
# Sierra
sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app
# El Capitan
sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app
# Yosemite
sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ Yosemite.app- 删除驱动器之前进行确认,删去
--nointeraction选项。 - Mojave 中才可以使用
--downloadassets选项。 安装过程中可能会下载资源,比如更新。 - 从 Mojave 开始,
--applicationpath选项以及被废弃。使用该选项会抛出错误。
sudo kextstat -lsudo kextload -b com.apple.driver.ExampleBundlesudo kextunload -b com.apple.driver.ExampleBundle请看 自启动服务.
为了做到与 OS X 版本无关,这个工具依赖 locate 查找 lsregister。 如果你还没有建立你的 locate 数据库,请先创建。
sudo $(locate lsregister) -kill -seed -rsudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "Your text"sudo purge# One time
vm_stat
# Table of data, repeat 10 times total, 1 second wait between each poll
vm_stat -c 10 1# 关闭
launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist && \
killall -9 NotificationCenter
# 启动 (默认)
launchctl load -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plistqlmanage -p /path/to/file# 查看状态
sudo systemsetup -getremoteappleevents
# 开启
sudo systemsetup -setremoteappleevents on
# 禁止 (默认)
sudo systemsetup -setremoteappleevents off# 开启
dsenableroot
# 禁止
dsenableroot -d# 查看状态
nvram boot-args
# 开启
sudo nvram boot-args="-x"
# 禁止
sudo nvram boot-args=""3 秒后截图为 JPEG 文件,并且在预览中展示。
screencapture -T 3 -t jpg -P delayedpic.jpg设置保存地址为桌面。
defaults write com.apple.screencapture location ~/Desktop && \
killall SystemUIServer设置截图文件格式为 png,可选的格式有 bmp, gif, jpg, jpeg, pdf, tiff 。
defaults write com.apple.screencapture type -string "png"defaults write com.apple.screencapture disable-shadow -bool true && \
killall SystemUIServer截图文件名的时间戳保持不变。
defaults write com.apple.screencapture name "Example name" && \
killall SystemUIServerinstaller -pkg /path/to/installer.pkg -target /sudo softwareupdate -ia将软件更新检查的时间间隔设置为天,而不是默认的周。
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1sudo softwareupdate -l这仅适用于测试或非托管的客户端。 要在网络范围内使用,请正确设置 DNS 以及 Apple SUS 服务 并通过 OpenDirectory 绑定客户端。 或者,使用 Reposado 正确设置网络 DNS,使分辨率变得透明。 Margarita 看起来也不错。
# 使用自己 SUS
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL http://su.example.com:8088/index.sucatalog
# 恢复苹果的默认 SUS
sudo defaults delete /Library/Preferences/com.apple.SoftwareUpdate CatalogURLsw_vers -productVersion# 禁止
mdutil -i off -d /path/to/volume
# 关闭 (默认)
mdutil -i on /path/to/volumemdutil -E /path/to/volumemdfind -name 'searchterm'mdls /path/to/file按住 Cmd + R 重启,打开终端输入以下命令:
csrutil disable && reboot按住 Cmd + R 重启,打开终端输入以下命令:
csrutil enable && rebootsudo systemsetup -listtimezonessudo systemsetup -settimezone Europe/Berlin# 查看状态
sudo systemsetup getusingnetworktime
# 开启 (默认)
sudo systemsetup setusingnetworktime on
# 关闭
sudo systemsetup setusingnetworktime off开启终端响铃,并在其上显示徽标数。
tput bel安装最新版本的 Bash,并且设置为用户的默认的 shell
brew install bash && \
echo $(brew --prefix)/bin/bash | sudo tee -a /etc/shells && \
chsh -s $(brew --prefix)/bin/bash安装最新版本的 fish,并且设置为用户的默认的 shell
brew install fish && \
echo $(brew --prefix)/bin/fish | sudo tee -a /etc/shells && \
chsh -s $(brew --prefix)/bin/fish- Homepage - 一个对 OS X 、Linux 用户友好的智能 shell,支持更多系统。
- The Fishshell Framework - 提供核心基础结构,允许您扩展或修改 shell 外观的软件包。
- Installation & Configuration Tutorial - 怎样通过 Fisherman、Powerline Fonts、 iTerm2 和 Budspencer Theme 安装 Fish Shell。
安装最新版本的 Zsh,并且设置为用户的默认的 shell
brew install zsh && \
sudo sh -c 'echo $(brew --prefix)/bin/zsh >> /etc/shells' && \
chsh -s $(brew --prefix)/bin/zsh- Homepage - 尽管 Zsh 是一种强大的脚本语言,它是专为交互式使用而设计的 shell。
- Oh My Zsh - 社区驱动开源框架,用于管理 Zsh 配置。
- Prezto - 一个快速的 Zsh 框架。 使用默认值,别名,函数,自动完成和主题来丰富命令行界面环境。
- zgen - 另一个管理 Zsh 配置的开源框架。 Zgen 可以兼容 oh-my-zsh 的插件和主题,并且具有自动克隆任何插件以及更快的优点。
- Anonymous Pro - 四种固定宽度系列字体,适用于编程。
- Codeface - 用于开发人员的图库和等宽字体库。
- DejaVu Sans Mono - 基于 Vera Fonts 的字体家族。
- Hack - Hack 手动整理字体,是你编程字体的首选。
- Inconsolata - 一种等宽字体,专为编程设计。
- Input - 专为编程响应系统的字体设计。
- Meslo - Apple's Menlo 字体的自制版本.
- Operator Mono - 令人惊讶的商业等宽字体。
- Powerline Fonts - Powerline 插件的修补字体仓库
- Source Code Pro - 专为用户交互以及编程的等宽字体家族。
| 版本 | 名称 | 发布日期 | 最新版本 |
|---|---|---|---|
| Rhapsody Developer Release | Grail1Z4 / Titan1U | August 31, 1997 | DR2 (May 14, 1998) |
| Mac OS X Server 1.0 | Hera | March 16, 1999 | 1.2v3 (October 27, 2000) |
| Mac OS X Developer Preview | n/a | March 16, 1999 | DP4 (April 5, 2000) |
| Mac OS X Public Beta | Kodiak | September 13, 2000 | n/a |
| Mac OS X 10.0 | Cheetah | March 24, 2001 | 10.0.4 (June 22, 2001) |
| Mac OS X 10.1 | Puma | September 25, 2001 | 10.1.5 (June 6, 2002) |
| Mac OS X 10.2 | Jaguar | August 24, 2002 | 10.2.8 (October 3, 2003) |
| Mac OS X 10.3 | Panther | October 24, 2003 | 10.3.9 (April 15, 2005) |
| Mac OS X 10.4 | Tiger | April 29, 2005 | 10.4.11 (November 14, 2007) |
| Mac OS X 10.5 | Leopard | October 26, 2007 | 10.5.8 (August 5, 2009) |
| Mac OS X 10.6 | Snow Leopard | August 28, 2009 | 10.6.8 v1.1 (July 25, 2011) |
| Mac OS X 10.7 | Lion | July 20, 2011 | 10.7.5 (September 19, 2012) |
| OS X 10.8 | Mountain Lion | July 25, 2012 | 10.8.5 (12F45) (October 3, 2013) |
| OS X 10.9 | Mavericks | October 22, 2013 | 10.9.5 (13F1112) (September 18, 2014) |
| OS X 10.10 | Yosemite | October 16, 2014 | 10.10.5 (14F27) (August 13, 2015) |
| OS X 10.11 | El Capitan | September 30, 2015 | 10.11.6 (15G31) (July 18, 2016) |
| macOS 10.12 | Sierra | September 20, 2016 | 10.12.6 (16G29) (July 19, 2017) |
| macOS 10.13 | High Sierra | September 25, 2017 | 10.13.6 (17G65) (July 9, 2018) |
| macOS 10.14 | Mojave | September 24, 2018 | 10.14 (18A391) (September 24, 2018) |