1. Mac快捷键(Emoji、Finder)
- Finder内拷贝完整路径:
option+command+c
- 快速弹出emoji表情:
ctrl+command+space
2. 拷贝浏览器URL不做转移
拷贝浏览器URL不做url_encode
编码: 在URL最前面添加逗号,
,当拷贝完后再删除,
3. Mac服务管理 - launchd/lannchctl
3.1. 启动服务列表
# 列表
$ launchctl list
PID Status Label
- 0 com.apple.SafariHistoryServiceAgent
1621 0 com.apple.progressd
- 0 com.google.keystone.user.xpcservice
- 0 com.apple.cloudphotod
...
4. 京造键盘(Keychron K2)操作快捷键,可以工作20~80小时(灯光耗电影响,10M蓝牙)
- 多设备匹配,在BT模式下(共联3台设备) - ****
- 长按
Fn+1
3s,从设备1连接键盘,待按键1闪烁,连接好设备1 - (Mac-Home) - 长按
Fn+2
3s,从设备2连接上键盘,待按键2闪烁,连接好设备2 - (Mac-Company) - 长按
Fn+3
3s,从设备3连接键盘,待按键3闪烁,连接好设备3 - (Ipad Pro)
- 长按
- 多设备切换:按下
Fn+1
、Fn+2
、Fn+3
选择之前连接的设备,进行多设备切换 - 灯快捷键键,右上角(15种设置),键盘灯
Fn+F5
减亮,Fn+F6
增亮 - 电量查看:
Fn+B
,注意可以先调低灯光亮度查看- 全亮:电量 >=70%
- 第一排灭:电量 30-70%
- 第二排灭:电量 0-30%
- 有线下取消休眠模式:长按
FN+S+O
(注意不是零) - 多系统切换,侧边栏支持Mac/Win切换
- BT(蓝牙)/Cable(有线)切换/Off(关闭)
- 恢复出厂设置:长按
Fn+J+Z
3s恢复出厂设置 - Win下的一些更多按键,参考: https://item.jd.com/100012895086.html
5. 系统安装相关
5.1. Mac烧录可引导的USB记忆
- 方式一:利用
dd
命令,对下载的CentOS ios镜像文件进行烧录(参见下面操作)
- 参考1:https://cloudwrk.com/create-centos-7-bootable-usb-on-osx/
- 参考2:https://wiki.centos.org/HowTos/InstallFromUSBkey
- 方式一:参照ubuntu的教程:https://ubuntu.com/tutorials/create-a-usb-stick-on-macos (我烧录过程中,报错了)
5.2. dd烧录具体操作
- 利用MAC磁盘工具,格式化USB为exFAT格式
- 下载CentOS7的iso镜像资源,参考:http://www.centos.org/download/mirrors/
- 利用mac的
diskutil
查看磁盘设备名称 - 利用
dd
命名,复制CentOS的iso到USB驱动 - 在
virtuabox
上面测试usb的驱动
tips: 下面的dd拷贝,将/dev/disk2s2
,替换成/dev/rdisk2s2
,r代表raw元素磁盘拷贝,比块拷贝更快!(想下Linux的IO栈),利用CTRL+T
,可以查看当前dd的进度!
// 磁盘列表
$ diskutil list
...
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *31.5 GB disk2
1: EFI EFI 209.7 MB disk2s1
2: Microsoft Basic Data CENTOS 31.3 GB disk2s2
// dd拷贝
$ sudo dd if=./CentOS-7-x86_64-Everything-2003.iso of=/dev/rdisk2s2 ibs=256m obs=16m
load: 2.41 cmd: dd 12007 uninterruptible 0.00u 0.15s
1+0 records in
4+0 records out
67108864 bytes transferred in 9.546129 secs (7029956 bytes/sec)
load: 2.46 cmd: dd 12007 uninterruptible 0.00u 0.15s
1+0 records in
6+0 records out
100663296 bytes transferred in 14.703729 secs (6846107 bytes/sec)
5.3. diskutil和dd写入
// 写入需要通过mac下的diskutil工具先将磁盘卸载
$ diskutil unmount /dev/disk2s1
// 通过sudo dd将资源写入
$ sudo dd if=/Users/Terry/Downloads/cn_windows_10_consumer_editions_version_2004_x64_dvd_0c2eefdb.iso of=/dev/disk2s1 bs=1m
// Mac下观察磁盘的IO情况
$ iostat -dCU 1
6. MAC远程访问相关(VNC、SSHD、SMB服务)
6.1. MAC开启SSHD服务或者SMBD服务,支持远程登录
进入系统偏好 > 共享
- 文件共享:在Mac1上共享User1的数据,在Mac2上通过
访达 > 前往(连接服务器 CMD+K)
,利用SMB协议访问,比如smb://192.168.3.73
- 远程登录:在Mac1上开放
sshd
远程登录,支持Mac2上通过命令行,ssh Terry@192.168.3.73
快速连上,ssh密码是开机密码
6.2. VNC服务开启:允许其他人使用VNC远程桌面访问您的Mac电脑
进入系统偏好 > 共享
,有不同的模式支持共享:
- 远程管理`
- 设置访问用户:
- 所有用户,让其他有用户通过MAC用户账号来共享屏幕
- 仅指定用户,指定指定MAC用户
- 电脑设置:可以设置VNC访问密码,可以在Mac2上通过
访达 > 前往(连接服务器 CMD+K)
,利用VNC客户端登录Mac1 - 选项:设置访问用户的权限:观察(仅画面共享)、控制(操作)、观察时候显示,如果临时改变配置,需要重新连入VNC
- 设置访问用户:
远程访问端口:5900
// 开启后,在MAC下看下服务5900端口
$ netstat -anp tcp|grep -i listen
$ cat /etc/services|grep 5900
rfb 5900/tcp vnc-server # VNC Server
rfb 5900/udp vnc-server # VNC Serve
https://support.apple.com/zh-cn/guide/mac-help/mh11851/mac
6.3. MAC VNC客户端:mac下连接其他vnc服务
- 在
访达 > 前往 > 连接服务器(CMD+K)
,键入vnc://192.168.1.100
- 或者两台MAC用的同一个AppleID,共享屏幕权限
6.4. MAC连接Win10
主要依赖一个RDP客户端,下个Jump Desktop
, https://xclient.info/s/jump-desktop.html
速度比VNC这类,都要好不少!速度、性能和流畅度上都非常不错,支持全屏、文本粘贴复制、快捷键发送等功能,在各种细节上要比微软的远程桌面优秀很多,可以用它远程连接Windows电脑!
7. Jetbrains Library路径
#!/bin/sh
# reset jetbrains ide evals
OS_NAME=$(uname -s)
JB_PRODUCTS="IntelliJIdea CLion PhpStorm GoLand PyCharm WebStorm Rider DataGrip RubyMine AppCode"
if [ $OS_NAME == "Darwin" ]; then
echo 'macOS:'
for PRD in $JB_PRODUCTS; do
rm -rf `~/Library/Preferences`/${PRD}*/eval
rm -rf ~/Library/Application\ Support/JetBrains/${PRD}*/eval
done
elif [ $OS_NAME == "Linux" ]; then
echo 'Linux:'
for PRD in $JB_PRODUCTS; do
rm -rf ~/.${PRD}*/config/eval
rm -rf ~/.config/${PRD}*/eval
done
else
echo 'unsupport'
exit
fi
echo 'done.'
8. Mac下触控板失效
打开【活动监视器(Activity Monitor)】,找到【Dock】或者是【程序坞】将其强制退出。
9. 密码重置
参考: https://sspai.com/post/34023
10. 笔记本升级到BigSur几个小问题
10.1. 电池显示
系统偏好>程序坞与菜单栏>电池
10.2. 系统偏好设置提示密码不正确
系统偏好信息,解决方案:https://support.apple.com/zh-cn/HT203127
如果您在点按锁形图标来更改设置时,“系统偏好设置”不接受有效的管理员密码,请尝试本文中所述的解决方法。
- macOS 用户帐户的密码为空。如果您已使用空白密码登录 Mac,请在“用户与群组”偏好设置中更改密码。请勿使用空白密码。
- 在使用
macOS Big Sur 11.1
时,搭载Apple T2
安全芯片的Mac
机型存在需要重置SMC
的问题。在您重置SMC
后,“系统偏好设置”应该会接受您的密码。
10.3. 笔记本重置SMC
重置SMC:https://support.apple.com/zh-cn/HT201295
10.4. 尝试1
我的19款Mac Pro可行,尝试2没有进行
- 将Mac关机。
- 按住电源按钮 10 秒钟,然后松开这个按钮。
- 等待几秒钟,然后按下电源按钮以将 Mac 开机。
10.5. 尝试2
- 将Mac关机。
- 在内建键盘上,按住键盘左侧的
Control+Option (Alt)
+键盘右侧的Shift
(Mac可能会开机) - 按住以上三个按键不松7秒钟,然后不松按键的情况下按住电源按钮,如果Mac处于开机状态,它将按住这些按键时候关机
- 继续按住全部四个按键7秒钟,然后松开这些按键。
- 等待几秒钟,然后按下电源按钮以将
Mac
开机。

11. MAC下进程跟踪
可以通过关闭保护模式,或者cp二进制命令再跟踪,亦或是通过-f跟踪子命令三种方式;
系统完整性保护状态关闭,因为储在每台Mac的NVRAM中,只能在恢复环境中对其进行修改 Command + R。您将进入恢复环境。单击“实用程序”菜单,然后选择“终端”以打开终端窗口。
$ csrutil status
System Integrity Protection status: enabled.
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.3
BuildVersion: 19D76
// 1. 系统完整性保护状态关闭
csrutil disable
// 2. 开启
csrutil enabled
// 2. CP方式
cp $(which whoami) .
dtruss ./whoami
12. 新旧MAC同步
12.1. /data目录文件迁移
- 迁移助手
- 新版本MacOS Catalina不支持直接创建
/data
目录解决方案,创建初始化挂载/etc/synthetic.conf
- 注意从以下目录
/System/Volumes/Data/Users/Shared/Relocated\ Items/
中拷贝出data相关内容
$ cat /etc/synthetic.conf
data private/data
company private/company
13. Mac的开发环境配置
13.1. Mac Awesome仓库
Mac Awesome仓库,包含了各类Mac相关软件,和Awesome系列仓库有类似的效果
地址: https://github.com/jaywcjlove/awesome-mac#developer-tools`
13.2. Iterm推荐终端环境
13.2.1. Mac下无权限操作
在Iterm2
下操作dd
或者ls
查看磁盘内容,提示Operation not permitted
解决方法:通用 > 安全和隐私 > 完全磁盘访问权限
,把iTerm.app勾选上,重启iTerm.app就可以了
13.2.2. bash-it
bash-it类似于,oh-my-zsh,只是针对bash环境,功能包括自动完成,主题,别名,自定义功能等
地址:https://github.com/Bash-it/bash-it
13.2.3. oh-my-zsh
oh-my-zsh之前一直在用,安装也较为容易,配合iterm
终端+一些字体配置就可作出比较炫酷开发环境;
建议将个人的相关配置信息(命令别名、PATH路径导出、环境参数设定等)与原有的~/.zshrc
分离,通过source ~/.my.sh
方式加载,与zsh表现样式、插件相关配置分离,更好的管理。
地址:https://github.com/robbyrussell/oh-my-zsh
13.3. Iterm常用其他插件或配置
13.3.1. zsh-completions自动提示
$ brew info zsh-completions
$ brew install zsh-completions
// 配置之前先做dump
rm -f ~/.zcompdump; compinit
chmod go-w '/usr/local/share'
// 配置到.zshrc
fpath=(/usr/local/share/zsh-completions $fpath)
类似的bash shell
可以采用bash-completions
13.3.2. autojump 快速cd跳转
autojump是一种更快捷的文件系统导航方式。它的工作原理是从命令行维护您最常使用的目录的数据库。该autojump -s命令显示数据库的当前内容。
每天都在命令行下不断的cd
到不同的目录,autojump做到了一个简单的统计概率,利用j keywords
可以基于权重值(反映了您在目录中花费的时间)快速jump到指定的目录
参考:https://github.com/wting/autojump/wiki
也可以基于man autojump
查看更多
// 安装
$ brew install autojump
// 命令
j keywords: 跳转到keyworks相关目录
jc keywords: 跳转到当前子目录中包含关键字的目录
jo : 从终端打开,在Finder、Explorer中所在目录
jo keywords: 在Finder、Explorer中打开文件所在目录
jco: 子目录打开在Finder、Explorer中
jco keywords: 子目录中含关键字打开在Finder、Explorer中
// 统计
$ j --stat
10.0: /tmp
10.0: /data/docker/services/centos-perf
14.1: /data/docker
20.0: /data
22.4: /Users/Terry/.oh-my-zsh
33.2: /data/www/tkstorm.com
________________________________________
109: total weight
6: number of entries
10.00: current directory weight
data: /Users/Terry/Library/autojump/autojump.txt
// j其实是个bash函数调用
$ which j
13.4. Iterm2下上传或下载 rz/sz
https://github.com/lupguo/iterm2-zmodem
- Install lrzsz on OSX:
brew install lrzsz
- Save the
iterm2-send-zmodem.sh
anditerm2-recv-zmodem.sh
scripts in /usr/local/bin/ - Set up
Triggers
(Profiles > YourProfile > Advanced > Triggers
) in iTerm 2 like so:
Regular expression: rz waiting to receive.\*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Instant: checked
Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
Instant: checked
To send a file to a remote machine:
- Type rz on the remote machine
- Select the file(s) on the local machine to send
- Wait for the coprocess indicator to disappear
The receive a file from a remote machine
- Type
sz filename1 filename2 … filenameN
on the remote machine - Select the folder to receive to on the local machine
- Wait for the coprocess indicator to disappear Future plans (patches welcome)
- Visual progress bar indicator
13.5. git命令行下GUI工具
lazygit是一款在命令行下的,ACSII图像化的基于Golang开发的git仓库管理工具
参考:https://github.com/jesseduffield/lazygit
13.6. 终端key的绑定
通过终端中输入cat
可以查看组合键,然后追加函数调用,实现一些命令绑定,做到类似快捷键的作用
# bindkey
bindkey "^U" backward-kill-line
bindkey "^u" backward-kill-line
bindkey "^[l" down-case-word
bindkey "^[L" down-case-word
# alt+<- | alt+->
bindkey "^[f" forward-word
bindkey "^[b" backward-word
# ctrl+<- | ctrl+->
bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word
类似的bash shell
中可以采用bind
来绑定命令
14. 其他Mac小Tips
14.1. 另存为到指定目录
在另存为过程中,通过Command+Shift+G
– 显示“前往文件夹”对话框,配合Alfred
可以快速保存到指定位置
14.2. 构建应用程序的命令行快捷命令
sublime快速打开文件:
ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime
14.3. Paste在Mac下的快捷粘贴
// 复制
$ echo hello|pbcopy
// 粘贴
$ pbpaste
14.4. MAC套接字打开的文件调整(ulimit资源调整)
Error: listen tcp 127.0.0.1:1313: socket: too many open files in system
- 对于OS X Sierra(10.12.X):
// 编辑配置文件:
vim /Library/LaunchDaemons/limit.maxfiles.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>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>64000</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
// 更改配置权限
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
// 加载设定配置
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
// 检测限制参数
launchctl limit maxfiles
14.5. 无插件如何在Chrome下完成HTML页面截图
- 打开Chrome开发者工具
- 选择
Element
Html元素标签页,鼠标点击Body元素 - 按住组合键
cmd+shift+p
,打开调试命令行 - 输入
screen
关键字,选择Capture full screenshot
,另存为即可截取全屏图片; - 同时该功能支持,截取部分元素,强大的Chrome!!
14.6. 在VSCODE下的zsh工具命令行乱码问题
通过cmd+,
,选择字体'Meslo LG M for Powerline', Monaco, 'Courier New', monospace, Menlo
列表作为第一个字体名称
14.7. “Developer tools access” 需控制另一个进程才能继续调试 解决方案
DevToolsSecurity --status 查看状态
DevToolsSecurity --enable 输入密码,修改为enable,即可用
DevToolsSecurity --disable 输入密码,修改为disable,即关闭