macOS基于Unix系统,日常使用总会用到一些Terminal命令用来提高工作效率,或更好的完成任务。

开发类

  • 查看Swift真正方法:

xcrun swift-demangle SYMBOL xxx

  • 检查执行程序或库的依赖以及依赖路径

otool -L <Path>

  • 动态库dylib无法加载的原因调试

printf(dlerror());

  • 检查执行程序或库的导出函数

nm -m <Path>

  • 查看使用了XPC的程序

find /Applications/ -name \*.xpc >> xpc.txt

  • 卸载kext脚本

sudo kextunload /Library/Extensions/xxx.kext

sudo rm -rf /Library/Extensions/xxx.kext

  • 检查程序是否签名

codesign -vvv <Path>/xxx.app

  • 查看Swift版本

xcrun swift -version

  • 默认xcode路径以及选择

xcode-select -print-path

xcode-select -s /Applications/Xcode.app/Contents/Developer/

  • Frameworks 的放置位置

系统的Frameworks放在/System/Library/Frameworks/下;

一般App的Frameworks就放在App的Bundle里;

如果需要多个App共享Frameworks则可以放在/Library/Frameworks/下;

日常使用

  • 卸载kext脚本

sudo kextunload /Library/Extensions/xxx.kext

sudo rm -rf /Library/Extensions/xxx.kext

  • 检查程序是否签名

codesign -vvv <Path>/xxx.app

  • 10.12之后允许第三方App运行命令

sudo spctl --master-disable

  • Mount DMG

命令自动挂载DMG包

hdiutil mount <Path>.dmg

hdiutil unmount <Path>

  • 重启FaceTime 摄像头

sudo killall VDCAssistant

  • 开启以太网服务

networksetup -setnetworkserviceenabled ethernet on

networksetup -setnetworkserviceenabled ethernet off

  • 开启VPN

scutil --nc start 'hkVPN ' --user xxx --password yyy —secret zzz

scutil --nc stop 'hkVPN '

  • 屏幕共享

在Finder -> 前往连接服务器 -> 输入

vnc://共享地址