macOS 实用命令行

macOS 内核 Darwin 基于 Unix,因此 pspingtracert 之类的命令不在本文讨论之列。

本人使用时间不长,这里仅列出目前经常使用到的。

显示隐藏的文件和目录

Finder 下可以用快捷键 Shift + Command + . 切换是否显示隐藏文件,也可以通过命令行配置:

defaults write com.apple.finder AppleShowAllFiles -bool YES
killall Finder

清空本地 DNS 缓存

有时候一些域名的 DNS 记录做了修改,为了及时生效,需要手动清空本地 DNS 缓存。

对于 Tiger (10.4) 以前的版本:

lookupd -flushcache

对于 10.4 以后的版本,执行以上命令会提示 command not found 。需要改用以下命令:

dscacheutil -flushcache

禁止自动生成 .DS_Store

这是个 macOS 下一个用来保存文件夹显示信息的隐藏文件,它保存了这个目录的文件清单,在提交代码时容易上传。

关闭 .DS_store 自动生成:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

清除已有的 .DS_Store 文件:

sudo find / -depth -name ".DS_Store" -exec rm {} \;

禁用 Dashboard

Dashboard 主要用来放一些类似 Android 的桌面小组件的东西,不需要可以禁用:

defaults write com.apple.dashboard mcx-disabled -bool YES
killall Dock

清除失效的文件打开方式

以前用 Windows 的时候常常是手动进入 C:\WINDOWS\SoftwareDistribution\Download 等目录删垃圾文件,然后打开注册表搜索关键字后删除软件残余项目。

很多 Mac 用户跟我说 macOS 有多优秀,卸载软件大多数情况只需到 Applications 目录删除就 OK 了(如果 Library 目录下有相关文件夹残留需手动删除),觉得我像使用 Windows 一样经常手动清理垃圾是完全没必要的。

但之前安装的一个工具类应用卸载之后,每次卸载其他应用它还是会弹框提示,说明依然有残余,还是得手动:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

允许启动任何来源下载的应用

不知道 macOS 从哪个版本开始,默认隐藏掉隐私设置里面的允许任何来源下载的应用,可以通过下面的命令强制打开:

sudo spctl --master-disable

登录窗口自定义消息

设置登录窗口底部的提示文字:

sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "𝑯𝒆𝒍𝒍𝒐, 𝑹𝒊𝒏𝒄."

清除设置:

sudo defaults delete /Library/Preferences/com.apple.loginwindow LoginwindowText

HTTP Server

MacOS 自带了 Python,可以在任意目录启动 HTTP Server:

python -m SimpleHTTPServer 8888

HEIC 转 JPG

除了通过预览 APP 转,还可以通过 sips 命令:

sips -s format jpeg input.heic --out output.jpg