MacBook 最佳实践

2022-07-26 15:19:21 浏览数 (1)

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-getCentOS中的yum。非常方便实用,一条命令即可安装:

代码语言:javascript复制
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了

代码语言:javascript复制
[ -r ~/.bashrc ] && source ~/.bashrc

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

代码语言:javascript复制
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
alias 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窗口,然后“拖”过去。但是这样未免太麻烦了,其实我们可以这么做:

  1. 首先Cmd C复制文件
  2. 然后找到你想要放到文件夹
  3. 最后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

代码语言:javascript复制
export JAVA_HOME="$(/usr/libexec/java_home)"

修改hostname

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

代码语言:javascript复制
sudo scutil --set HostName <name>

查看USB设备

代码语言:javascript复制
system_profiler SPUSBDataType

常用软件

日常使用的软件首选通过App Store进行安装,默认安装在/Applications下,个人从互联网上单独下载的软件放在这里面即可出现在Launchpad中找到。 对于通过App Store安装的软件,在Launchpad界面,按住Option键可进行删除。但是需要注意一点的时,应用程序一般都会有些历史文件,存放的位置有如下三处

  • ~/Library/Application Support/<Application name>
  • ~/Library/Cache/<Application name>
  • ~/Library/Preferences/<Application name>.plist

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

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

PS: Mac 下有很多非常实用的收费软件,我个人用的并不多,这里就不在列举了。 大家可以参考知乎上的 macOS (OS X) 平台上有哪些值得推荐的常用软件?

图片截屏、编辑

Mac上的截图工具已经很好了,Cmd Shift 3/4就够用了,但是如果想在图片上写些文字,马赛克某部分,就不行了,推荐用 Snip,才 2M 大小,虽说是腾讯开发的,但是不流氓。可以设置快捷键,我设定的是Cmd Shift 6。 更重要的一点是,Snip 可以解决Retina下截屏2x问题(就是截出来的图超大),就光这个特点就足以让你使用snip。

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

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

录屏 gif

很多时候我们需要把自己的操作展示给别人看,比较好的做法是通过录屏软件将自己的操作保存成 gif 格式的图片。 开源免费的licecap 很好的解决了这个问题。

流程图制作工具

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

此外, 有网友补充道 mpv 才是程序员最佳播放器,大家也可以尝试下。

视频播放器

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

音乐频播放器

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

*.webarchive

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

http://sourceforge.net/projects/webarchivext/

虚拟机 Virtualbox

在天朝,很多网站是只支持 IE 的,Mac 下的 Firefox, Chrome, Safari 这时候都显得心有力而不足了,而且很多软件也只有 Windows 版,所以装个虚拟机是非常有必要的。 Virtualbox 是我自用 Ubuntu 以来一直用的虚拟机,开源免费。

常见问题

不能写 NTFS

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

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

Wi-Fi 时常中断

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

  1. 修改网络位置,不是其默认的“自动”就好
  2. 修改路由器,把无线信道改为6或9
  3. 关闭蓝牙,Mac 中,同时打开蓝牙与 Wi-Fi 会冲突。详情

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

总结

Once you get Mac, you never come back!

参考

  • OS X 的一些技巧汇总 PS: 本文外链较多,建议点击https://liujiacai.net/blog/2014/11/23/first-taste-of-macbook/阅读。

0 人点赞