MacBook 最佳实践

2017-01-04 10:30:58来源:作者:SegmentFault人点击

MacBook 兼具命令行的高效与图形界面的酷炫,实在是程序员必备利器。本文主要介绍我在两年的使用过程中总结出的一些最佳实践,供大家参考、借鉴。

Mac OS 简介

Mac OS可以被分成操作系统的两个系列:

一个是老旧且已不被支持的“Classic”Mac OS(系统搭载在1984年销售的首部Mac与其后代上,终极版本是Mac OS 9)。采用Mach作为內核,在Mac OS 7.6.1以前用“System vX.X”来称呼。

新的OS X结合 BSD Unix 、OpenStep和Mac OS 9的元素。它的最底层建基于Unix基础,其代码被称为Darwin,实行的是部分开放源代码。

关于为什么Mac系统没有采用Linux内核,而是采用了BSD还有个小故事,感兴趣的大家可以看 Mac OS X 背后的故事(二)——Linus Torvalds的短视 这篇文章。

尽管 Mac 的文件系统目录和 Linux 差不多,但还是有些差距,可参考下面的表格:

Mac 开发环境部署 包管理器 Homebrew

The missing package manager for macOS

brew 相当于 Ubuntu 下的 apt-get , CentOS 中的 yum 。非常方便实用,一条命令即可安装:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 文本编辑器 Atom

Atom 新时代的文本编辑器,功能和 Sublime 差不多,但是免费开源,快捷键也类似,可以无缝迁移。两个非常实用的快捷键:

Multiple Selection Control+Command+G (在 Linux/Windows 下,是 Alt+F3 )

选中多行 Shift+Command+L

终端 iTerm 2

Mac自带的终端不是很强,程序员们需要一个强劲的终端来工作,于是有了 iTerm2,这个终端可以很方便的用快捷键来达到分屏(CMD+D)、开多个Tab(CMD+T)、在多个Tab之间进行切换(CMD+数字),其中有一点不好的是不能按字移动,如果我们在终端上键入"OPTION+向左键",会输入一个特殊字符,我们需要自定义两个Action为Send Escape Sequence的快捷键,效果如下图:

我这里把向前按字移动设为了"OPTION+CMD+向左键",向后按字移动设为了"OPTION+CMD+向右键"

当然,说到了 iTerm2,不得不提到终端复用软件 tmux ,tmux 默认配置文件在 Mac 上很别扭,你可以参考我这里的 配置文件 ,这样 tmux 就可以像 vim 一样实现各种分屏的效果了。如果你还不知道 tmux 为何物,强烈推荐你看这个13分钟的 视频 ,绝对物超所值,感谢 happypeter 的分享。

终端中输入命令时,移动光标有两种方式,一个是 emacs,一个 vi,可以通过 set 命令来设置,默认的是 emacs 模式,也可以通过 set -o emacs 来显式设置,有如下快捷键:

ctrl + a Move cursor to beginning of line

ctrl + e Move cursor to end of line

meta + b Move cursor back one word

meta + f Move cursor forward one word

ctrl + w Cut the last word

ctrl + u Cut everything before the cursor

ctrl + k Cut everything after the cursor

ctrl + y Paste the last thing to be cut

ctrl + _ Undo

如果想使用 vi 模式,可以使用如下命令 set -o vi 开启。

开启vi 模式后,默认是 insert 模式,按下 esc 键进入命令模式。

h Move cursor left

l Move cursor right

A Move cursor to end of line and put in insert mode

0 (zero) Move cursor to beginning of line (doesn't put in insert mode)

i Put into insert mode at current position

a Put into insert mode after current position

dd Delete line (saved for pasting)

D Delete text after current cursor position (saved for pasting)

p Paste text that was deleted

j Move up through history commands

k Move down through history commands

u Undo

参考:

Getting Started with BASH

How To Use the Emacs Editor in Linux

其他一些有用的快捷键:

Ctrl + r 搜索历史命令

!! 执行上条命令

Ctrl+X Ctrl+E 调用默认编辑器去编辑一个特别长的命令

~/.bashrc

Linux 一般通过 ~/.bashrc 进行环境变量的配置,但是在 Mac 下配置后,发现根本没有效果,这是为什么呢?

其实这是个比较基础的问题,shell有两种:登录式shell与非登录式shell,直观理解,登录(login)式shell就是在你打开shell要求你输入用户名与密码的shell,我们在使用桌面Linux时一般只在登录时接触到这种shell,等我们进入系统后,再打开的Terminal就是非登录式shell了。这两种 shell 读取配置的文件是不同的:

登录式Shell启动时会去读取 ~/.profile 文件(Redhat、Mac上为 ~/.bash_profile )

非登录式Shell会去读取 ~/.bashrc 文件

这也就解释了为什么在 Linux 系统上只需要修改 ~/.bashrc 后即可生效的原因。但在 Mac 上有些不同,开机后再通过 Terminal.app(或iTerm.app) 打开终端时,这时的 shell 是登录式shell,因为Terminal.app(或iTerm.app)这个应用程序是通过 /usr/bin/login 这个命令打开终端的,所以不会去 source ~/.bashrc 了。

解决方法也很简单,在~/.bash_profile加上下面一句代码就ok了

[ -r ~/.bashrc ] && source ~/.bashrc

Mac下 ls 命令默认是没有颜色的,不是很直观,可以自己设置一个alias,参考 链接

export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcxalias ls='ls -FG'alias ll='ls -l' 系统快捷键

查看桌面 F11

HOME Command + <-

END Command + ->

锁屏 Shift + Control + 电源键 (Windows 下为 Win+L )

强制关闭程序 Command + Option + esc (Windows 下为 Ctrl+Alt+Delete )

Finder

Finder是Mac上的文件浏览器,其中有个比较严重的问题时,没有“剪贴(cut)”功能,当我们选中一个文件后,菜单中的“Edit”->“Cut”是灰色的,也就是无法使用,这是因为Finder中的“Cut”只适用于文本,对于文件就无能为力了。

我们当然可以通过打开两个Finder窗口,然后“拖”过去。但是这样未免太麻烦了,其实我们可以这么做:

首先 Cmd + C 复制文件

然后找到你想要放到文件夹

最后 Cmd + Option + V 就能实现“剪贴”的效果了。

参考: Why is it not possible to use the “cut” command to manipulate a file in the Finder?

JAVA_HOME

Mac下的使用 *dmg 文件安装JDK后,JAVA_HOME在那里呢,可以通过执行 /usr/libexec/java_home 这个命令来获取JAVA_HOME

export JAVA_HOME="$(/usr/libexec/java_home)" 修改hostname

Mac下修改hostname也和Linux下不同,命令是

sudo scutil --set HostName <name> 查看USB设备 system_profiler SPUSBDataType 常用软件

日常使用的软件首选通过 App Store 进行安装,默认安装在 /Applications 下,个人从互联网上单独下载的软件放在这里面即可出现在 Launchpad 中找到。

对于通过 App Store 安装的软件,在 Launchpad 界面,按住 Option 键可进行删除。但是需要注意一点的时,应用程序一般都会有些历史文件,存放的位置有如下三处

~/Library/Application Support/&lt;Application name&gt;

~/Library/Cache/&lt;Application name&gt;

~/Library/Preferences/&lt;Application name&gt;.plist

使用 find + grep 的方式就能轻松找出来了。网上也有诸如 AppCleaner 、 AppZapper 的小软件,大家可以根据需要自取之。

下面介绍下我日常实用的一些免费软件,供大家参考。

图片截屏、编辑

Mac上的截图工具已经很好了, Cmd + Shift + 3/4 就够用了,但是如果想在图片上写些文字,马赛克某部分,就不行了,推荐用 Snip,才 2M 大小,虽说是腾讯开发的,但是不流氓。可以设置快捷键,我设定的是 Cmd + Shift + 6 。

更重要的一点是, Snip 可以解决Retina下截屏2x问题(就是截出来的图超大),就光这个特点就足以让你使用snip。

我平常用图片编辑就是修改像素大小,mac自带的preview就够用了。 像旋转、添加文字功能Preview也有,基本能够满足大部分人的需求。

如果你依赖于Evernote,可以试试 圈点 ,洋名skitch,同样很好很强大。

录屏 gif

很多时候我们需要把自己的操作展示给别人看,比较好的做法是通过录屏软件将自己的操作保存成 gif 格式的图片。

开源免费 的 licecap 很好的解决了这个问题。

流程图制作工具

对于程序员来说,流程图应该是再亲切不过的了,一张图胜过千言万语。之前我都是用 Keynote 来画,但是实在是不好用,后来在 知乎 上发现了在线版的 ProcessOn ,大大减少了我画流程图的时间,上手也比较快。

视频播放器

Mac下的自带的播放器QuickTime,功能实在是太弱了,支持的格式既少又难用,快进什么的貌似都没快捷键,只能手动点击进度条,试用了一段时间的 Mplayer ,发现效果也不好,会有视频卡顿的现象,最终选择了 VLC ,一直用的还不错。

音乐频播放器

官方的 iTunes 实在是不适应,喜欢简洁清爽的朋友可以试试 VOX

*.webarchive

在windows下保存网页时,如果想把网页上的资源,比如css、js、image等一起下载下来,会单独生成个文件夹,但是用 Mac 上的 Safari 保存整个网页时,是以 webarchive 为后缀名的文件进行保存的,如何把打开这种文件呢?推荐:

http://sourceforge.net/projec...

常见问题 不能写 NTFS

用惯了 Windows 的大家都习惯用 NTFS 文件系统格式,但是很遗憾,这个文件系统是微软自己搞得,不是开放的,所以 Mac 是不支持的,如果你以前的 NTFS 格式的硬盘放到 Mac 上,会发现只能进行读操作,不能写入,这属于正常现象,不要惊慌。

解决的方法也很简单,把移动硬盘格式化成FAT32(单个文件大小不能超过4G)或FAText 格式都可以,Mac 自带的磁盘工具就可以进行格式转化,当然你需要先把移动硬盘上的数据拷贝出来。

Wi-Fi 时常中断

Mac 生于乔帮主之手时,为了凸显尊贵,接口与一般的电脑有很大不同。常见的网线没办法直接连接 Mac 电脑,需要单独购买一个 以太网转接器 ,所以大部分同学都是使用无线连接,但 Mac 这里应该是有个 bug,而且是很久的 bug,我用 Mac 两年了,偶尔会遇到几次,网上解决的方法有如下几种:

修改网络位置,不是其默认的“自动”就好

修改路由器,把无线信道改为6或9

关闭蓝牙,Mac 中,同时打开蓝牙与 Wi-Fi 会冲突。 详情

如果你的 Mac 也遇到了 Wi-Fi 问题,可以试试上面三个解决方法。

总结

Once you get Mac, you never come back!

参考

OS X 的一些技巧汇总

PS: 微信公众号,头条,掘金等平台均有我文章的分享,但我的文章会随着我理解的加深不定期更新,建议大家最好去我的 博客 liujiacai.net 阅读最新版。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台