不定期更新
移动存储的格式问题
- NTFS:比较强大,硬盘分区这种格式很普遍,Windows系统里的硬盘都是这种格式。(来回读写频繁,U盘貌似会缩短寿命),它不兼容Mac的系统。这就是为啥很多在Windows系统上用着的移动设备无法连接Mac进行操作的原因。
- FAT:微软发明,供MS-DOS使用,几乎所有个人计算机都支持,现在说FAT一般就是说FAT32。缺陷是当文件删除后写入新数据,FAT不会将文件整理成完整片段再写入,长期使用后会使文件数据变得逐渐分散,而减慢了读写速度。碎片整理是一种解决方法,但必须经常重组来保持FAT文件系统的效率。
- FAT32:新一代FAT,单文件不能超过4GB
- exFAT:也可以叫做FAT64,微软专为闪存(u盘和存储卡)设计,单文件能最大16EB!(目前是256GB),在某些旧设备(如个人数码助理(PDA)和数字相机)无法使用exFAT格式的存储卡,Windows XP SP3之前的旧版Windows暂时不支持exFAT,Linux操作系统需要通过exfat工具支持exFAT,Mac OS X可通过升级至10.6.5来全面支持exFAT
- 结论:小U盘就
FAT32
(在Mac系统里直接选FAT就行了,他会自动选择最新的FAT技术),之后的新的大移动硬盘尽量选择exFAT
格式。
默认输入法
大写键的怪异行为
- 使用Mac自带的输入法,和输入法相关的设置,在偏好里的“键盘”里
- 在“输入源”选项卡里,最下有一个“自动切换输入法”的选项,勾选了的话,就会根据你的习惯,在你进入一个新的可输入的环境的时候,自动帮你切换到你习惯的输入法。
- 但是呢,如果你登录一些服务器,服务器没有安装中文包,所以导致输入法强制被切会英文。又因为使用的是默认的输入法,所以是大写键会被切换。
- 因此建议把“自动切换输入法”取消。
升级Mac OS X Sierra之后的大写键设置
- 在System Preferance里找到键盘设置Keyboard,进入Input Source选项卡
- 底下新增了一项:切换苹果默认的中文输入法后,长按和短按大小写按键的效果
- 刚更新后,如果不勾选这一项,在一些编辑器/IDE的命令行里,会出现大写键短按直接切换成大写英文输入法的表现
- 所以想要维持以前习惯的,就要勾选。之后长按的效果就是切换大写英文。
一些常用的快捷键
- 锁屏:shift+control+power
- 截屏:(会自动保存到桌面)
shift + command + 3
全屏shift + command + 4
区域
- 剪切(文件):复制后,粘贴操作
⌘ + v
的同时按下⌥
。 ctrl+空格
唤出的spotlight可以直接拿来当计算器
命令行
- 现在Mac自带的terminal可以直接使用command + F组合键唤出搜索,直接搜索所有字符。
一些命令
chmod +x <file>
可以授予文件权限,比如chmod +x ./fixs.sh
这样之后就可以直接通过.fixs.sh
来执行这个文件而不用通过sh .fixs.sh
来执行了
Terminal
设置locale
- Mac原生Terminal下,
command + ,
进入设置,-> Profiles -> Advanced - 最下面有一个
Set locale environment variables on startup
这个选项 - 如果勾选,那么从Mac打开一个Terminal之后,不管之后进入什么环境,都会带入你Mac的设置
- 坑就在于进入Linux机器的时候,可能会遇到编码问题。所以应该将它关掉。
- iTerm2的话没有这个问题,因为iTerm2默认选项是:
Set locale environment variables automatically
但是关掉这个选项之后,Mac原生的Teminal里不能正确的显示中文了。解决方法是在自己的
~/.bash_profile
里去做设置,(utf8是编码方式,zh_CN或者en_US是字符集,选前者),在source ~/.bash_profile
增加:1
2export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
Vi/Vim的显示优化
- 复制配置文件到个人配置
cp /usr/share/vim/vimrc ~/.vimrc
(如果是Linux,则是cp /etc/vimrc ~/.vimrc
) 编辑
~/.vimrc
在最后增加内容,启用“语法高亮、行号显示、自动缩进”1
2
3syntax on
set nu!
set autoindent
App无法运行,提示unidentified developer
为什么会有这种情况
- 提示信息是:“App can’t be opened because it is from an unidentified developer”
- 这个问题不仅在Mac上发生。只要该App的开发者没有将App放在所谓的已知可信的平台上,比如Apple’s App Store,或者 Android’s Play Store。开发者没这么做的原因可能是:
- 直接和系统文件交互的,会被App store拒掉。权限申请在plist中会声明,但是只能申请开放的比如相册、通讯录之类的(沙盒机制,不像Android,都直接申请个访问文件权限,权限蛮大的。)
- 因为App涉及一些金融的敏感领域,可能不过审(特定时期造成的)
- App store上收费问题
- 在苹果系统上,阻止这类App的安全功能security feature被称作门卫GateKeeper。
- 但这并不意味着无法在Mac上运行未经认证的app。可以暂时绕过或者永久关闭。
暂时绕过GateKeeper
- 打开Finder,在Applications目录下找到不能运行的App
- 右键点击,选择open,在弹出的warning框里选择open
- 当然,这样比较麻烦,因为每一次你都得这样去运行App
禁用GateKeeper
- 在使用者有一定鉴别能力,知道哪些app可以信任,哪些不可以信任的时候可以这么做。
- System Preferences -> Security & Privacy -> General -> 左下角unlock -> Allow applications downloaded from -> Anywhere
- 在之后的版本,隐藏了这个Anywhere,需要我们打开Terminal,输入
sudo spctl --master-disable
- 如果日后出于安全考虑又想启用GateKeeper:
sudo spctl --master-enable
- 更新:从MacOS ver10.13.4开始,运行被GateKeeper阻止的App,会提示是否允许,选择“仍然打开”并确认之后也能正常打开App,不用去改上面的设置了。
用户应该有的判断常识
- 看开发者,看他们的官方网站、曾经做过的app、以及一些直觉……(you may have to make a gut call)
- 上网搜索其他使用者的评论,还能顺便收获一些使用心得。
- 看隐私政策Privacy Policy里,特别是涉及你的哪些数据和如何使用你的个人数据的。如果一个App在下载后就开始收集你系统里的敏感数据,并且在没有明显理由的情况下去申请获取这些数据,你就应该避免继续使用它
- 避免长期放置这些第三方App,如果很久不使用了,就卸载他们。避免将有价值的数据在非必要的情况下泄露给这些App
- 但是说到底,大部分时候还是靠直觉your gut feeling,或者你了解这个开发者,或者这个App是来自值得信任的社交圈子的推荐。
Bug
在一时弄不明白问题原因的情况下,先试试重启电脑是最经济且有效率的。
休眠后声音输出不正常
- 原因:Bug,系统核心音频守护进程(coreaudiod)出了问题。
- 重启当然能搞定,但没必要
- 打开活动监视器Activity Monitor
- 找到
coreaudiod
这个进程(可以在右上角直接搜索audiod,比较快找到) - 结束这个进程(可以点击活动指示器左上角的x),它会自动重启,声音就回来了。
外接显示器的微信截屏Bug
- 如果两个显示器是对角相连的摆放,用微信的快捷键截图的时候,会发生屏幕变成缩微图的情况——就是看到外界屏幕和主屏幕被缩小到一个屏幕里,以摆放的对角方式排列
- 结果就是无法截出能看清内容的图片
- 解决方法:不要把两个屏幕角对角相连的摆放,两个角要稍微错开一点。(专治非要把角对的正正的强迫症)
迁移后要重新配置开发环境
- Mac提供了很方便的迁移工具,在Application里Others里,叫Migration Assistant(迁移助手)
但是迁移并不是完美无缺的,作为程序员会发现许多,比如openssl。我是在想要运行Nginx的时候看到如下报错:
1
2
3dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/bin/nginx
Reason: image not found解决的办法就是重装openssl:
brew uninstall openssl --force
(不加force参数,brew也会提醒你加的)。brew install openssl
,然后就可以见到如下提示了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
openssl is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
If you need to have openssl first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
For compilers to find openssl you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
For pkg-config to find openssl you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"