1、mac 开机启动脚本(sudo权限;开机挂载 NTFS 硬盘)
前段时间把自己的电脑装了双系统( win10 + mac ),毕竟个人还是挺喜欢用 linux 开发的, mac 系统是类 unix 的系统,与 linux 相差不多,所以决定装个 mac 上手。装完之后还是挺好用的,mac 系统算是 win + linux 的一个融合吧。奈何 mac 挂载 NTFS 时只有读的权限,查了一下好像版权问题,其实是可以读写的,用命令行挂载,所以刚开始的思路是写好脚本,让 ~/.bashrc 调用写好的挂载脚本,这样开机就能自动挂载,但是挂载的命令需要 sudo 权限,每次开机都要输密码才能挂载,这就很烦,所以就找到了接来下的方法。
Launchd是什么
一个统一的服务管理框架,启动、停止和管理守护进程、应用程序、进程和脚本。
使用Launchd创建一个开机启动的服务,然后这个服务关联/etc/rc.local文件,那么接下来操作rc.local就和Linux下一样的了,这种方法执行脚本是 sudo 权限。
实现步骤
1、进入/Library/LaunchDaemons
目录,此目录下的 plist 文件时开机时加载的。
cd /Library/LaunchDaemons
还有个Launch Agent,在使用者登录时加载,其他高级用法请自行搜索。
2、创建 plist 文件。
sudo vim local.localhost.startup.plist
同时写入一下内容后保存。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.localhost.startup</string>
<key>Disabled</key>
<false/>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>LaunchOnlyOnce</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/etc/rc.local</string>
</array>
</dict>
</plist>
3、使用 launchctl 添加为服务
sudo launchctl load -w ./local.localhost.startup.plist
4、 创建rc.local文件
sudo vim /etc/rc.local
5、 在里面写好需要开机执行的命令。记得赋予rc.local
文件x
权限(可执行)
sudo chmod +x /etc/rc.local
6、使用 df 命令查看硬盘信息
需要的信息为第一列,最后一列为当前挂载的地址,如果是 NTFS 应该是没有写入权限的。
7、将挂载 work 盘和 data 盘的 mount 命令写入 rc.local 文件中,加在末尾保存即可
mount -t ntfs -o rw,auto,nobrowse /dev/disk1s3 /Users/你的用户名/Volumes/work
mount -t ntfs -o rw,auto,nobrowse /dev/disk1s4 /Users/你的用户名/Volumes/data
注意,不建议挂载在 /Volumes 下,写这篇博客时试了一下,挂载后硬盘的所有者是 root ,不是所登录的用户,导致访问不了,可放在 /Users/你的用户名/Volumes/data 下面。挂载点必须是一个目录,用户主目录下的 Volumes 我记得是我自己创建的文件夹。
2、panic: file sync error: sync xxx: operation not supported
在使用 boltdb 开发的时候发现老是报 panic: file sync error: sync my.db: operation not supported 错误,排查发现因为是双系统缘故,运行的 max 系统同时挂载了 APFS 和 NTFS 两种格式硬盘,项目放在 NTFS 会报上面这个错,放在 APFS 就正常运行。初步推断可能跟硬盘格式有关, mac 官方硬盘格式为 APFS 。
3、Mac 常用软件快捷
windows 键盘对应苹果键盘
ctrl -> control;win -> option;alt -> command 即 ⌘
Mac
切换程序 ⌘ - tab
程序间窗口 ⌘ - ~ 注:数字键盘 1 前面的键
查看桌面 F11
调整屏幕亮度 shift F2/F3 注:黑苹果才能用
切换输入法 control + space bar 注:space bar 为空格键
全选/剪切/复制/粘贴 ⌘ - A/X/C/V
光标至行首/尾 control - A/E
chrome
切换左右标签页 ⌘ - option 同时按,按方向键←→
后退页面 ⌘ - 方向键←
关闭当前标签页 ⌘ - W
新标签页 ⌘ - T
新窗口 ⌘ - N
关闭 chrome ⌘ - Q
刷新当前页面 ⌘ - R
终端
光标至行首 ctrl-A
光标至行末 ctrl-E
光标左、右移一个单词 option-方向键←→
删除至行首 ctrl-U
删除至行尾 ctrl-K
清屏 ctrl-L
在Finder中打开 直接打命令 open ./
4、MacOS Catalina 下 EndNote 不能使用
1、网上有很多 Endnote 科大版,可以免费下,第一步安装EndNote跳过,即 EndNote 是安装好的。
2、查阅教程说是要升级 EndNote ,通过下 zip 包升级。
3、把下好的包解压到 Download 目录,在终端下输入以下命令:
~/Downloads/EndNote\ X9.3.1\ Update\ Installer/EndNote\ X9.3.1\ Updater.app/Contents/Resources/applyPatch -d /Applications/EndNote\ X9 -i ~/Downloads/EndNote\ X9.3.1\ Update\ Installer/EndNote\ X9.3.1\ Updater.app/Contents/Resources/Patchfile.patch
等终端输出结束后,即可打开 EndNote 。
5、解决Mac上「应用程序“xxx”不能打开」的问题
在 Finder 选中不能打开的软件包,右键显示包内容
查看 MacOS 包下启动脚本文件名
此脚本没有执行权限(图已经加了执行权限),直接将该文件拖入终端可以显示路径,在前面加上 chmod +x 授予执行权限
这是我这边的
,文件名有空格要用 \ 转义一下。
chmod +x /Applications/xxx.app/Contents/MacOS/xxx
将xxx替换为自己的软件包名,及启动脚本名称。