从 Linux 到 macOS

一个月前更新机器,从我大 Fedora 转到了 macOS, 虽然都继承了Unix的衣钵, 但很多地方还是有些区别的. 入手一个月, 感觉已经可以小用下, 虽然很多地方还是不适应, 至少可以好好写代码了. 抽点时间写下一些 log, 希望能帮助到谁.

Mac 打开后会有个初始化过程, 大致就是让你弄个 apple 的账号, 绑定信用卡, 不同的地区进入不同的市场, 相比之下美帝的市场貌似多了一些东西. 但你选择美国的话, 就需要一个来自美国能付钱的信用卡 — 这个自行考虑吧.

Mac 默认的 terminal 是 bash, 和我大 Linux 一样, 不过貌似有些人认为 zsh 要更好, 其实就看你怎么习惯了, 只有一点很奇怪, 我在 bash 下
cp dira/ dirb/ -r
是不可以的, 必须用
cp -r dira/ dirb/
这个有点蛋疼. 然后默认的 C 编译器从 gcc 变成了 clang, 不过 gcc 同样可以很容易的安装好, linux 下写的 c/c++ 代码可以直接搬过来, 很少遇到要修改什么的情况.

总体上说, Mac 的使用和 Linux 相差不是很大, 稍微调教下基本还是可以一样. 用的若之前使用过 FreeBSD 的话, 调教起来更加自然了. 不过 Mac 下社区环境不太好, 比如你说”我想要实现xxx”, 在linux社区一般可以找到的回应是”修改xxx配置可以搞定”或者”你这都不会, 修改xxx配置可以搞定”. 然后你在 google 的搜索栏里面加上”Mac”或者”osx”之类字样, 得到的结果基本都是和你谈情怀谈产品教育”你们这些傻逼 windows 用户要向 Linux 用户和我们靠齐”不要改这些东西云云,若你找中文搜索结果,那你基本找不到其它类型的回答.不过你大多数问题(除了UI方面的),你可以丢开mac/osx这些关键词,你会在linux或者bsd的社区找到结果,所以除了不爽也没太多问题.

HomeBrew

rh家有yum,debian家有apt,arch的pacman也很利索,*nix怎能没有软件仓库?mac有port和brew两个包管理系统,有兴趣玩配置的可以使用port,尤其是若对freeBSD的port念念不忘.不过个人比较懒直接就用brew了. brew的官网是http://brew.sh/index.html,你可以在它的首页的末尾看到安装的代码.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

不同于很多linux distribution,mac默认带有ruby,果然够ruby.然后很快(若你网渣的话就当我没说)它就会下完代码执行完安装. 最初你可以先检查下环境 — 不是必须,但高度建议.

brew doctor

然后一番静默后它会亮出啥啥啥有问题,一般是一堆warning,大致意思大多是:”/usr/local/lib”之类目录被homebrew承包了,然后现在看到有其它文件–干了丫么–这个你酌情看着办,反正不干掉以后你brew会继续报这个warning.或者会说在path的次序中,”/usr/bin”目录在我们前面,所以如果你装了系统自带软件比如git后,你依然会默认执行mac自带的,解决办法是在你的脚本~/.bash_profile之类末尾补充一句

PATH=/usr/local/bin:$PATH
export PATH

一番折腾后再doctor

$ brew doctor
Your system is ready to brew.

problem resloved. 然后你就可以用了。

它的使用很简单

brew install/remove/uninstall/reinstall package_name # 安装/删除/卸载/重装 某个特定的包
brew search text|/text/ # 搜索某个包
brew update # 和服务器同步包信息
brew upgrade # 更新包

总之命令下去，哗啦啦一堆下东西，最后还给你画个酒杯cheer up表示安装/重装/删除之类已经搞定.这个的确蛮小资的我都想去来一点了. 有时候出了错误,基本按照提示无脑加上 –overwrite 参数就可以. 反正还想了解更多 man brew就可以.

Bash completion

bash自动补全的package名字叫bash-completion,在哪个*nix下都一样.

$ brew install bash-completion

直接搞定.

homebrew的东西都在/usr/local/Cellar目录下,”安装”会让它们被link到/usr/local的bin,lib之类目录下,安装后还要加上它的脚本才能用。我们运行某bash的时候需要执行下bc的脚本.比如在启动脚本(~/.bash_profile)中加一句

if [ -f /usr/local/etc/bash_completion ]; then
. /usr/local/etc/bash_completion
fi

这样就行了.

再打开个新的terminal或者当前terminal使用命令

source ~/.bash_profile

就生效了.

我们可以测试下效果。随便找个目录写个Makefile文件

.PHONY: all install clean

all:install
@echo "make all"

install:
@echo "make install"

clean:
@echo "make clean"

保存好后，输入”make “然后按tab键,可以发现终于可以提示all,install和clean而不是无脑的一堆文件名了.

LaTeX

brew不自带latex,我们搜索可以发现:

$ brew search latex
latex-mk latex2html latex2rtf pplatex rtf2latex2e

后面还有一堆相关提示说你不要安装latex因为这玩意儿在mac下很麻烦很麻烦,我们建议你安装mactex，mactex的官网是http://www.tug.org/mactex/.

但是brew中也没有mactex,而且官网上提供的下载也巨慢无比–至少我这儿是这样的,现在你们可以嘲笑我的网了–总之我超级没耐心的等了一段时间后cancel掉了这种dmg安装的方法.

然后还有一种叫Homebrew Cask的东西.

$ brew install caskroom/cask/brew-cask
....
$ brew cask install mactex
==> Caveats
To use mactex, zsh users may need to add the following line to their
~/.zprofile. (Among other effects, /usr/texbin will be added to the
PATH environment variable):

eval `/usr/libexec/path_helper -s`

==> Downloading http://mirror.ctan.org/systems/mac/mactex/mactex-20140525.pkg
######################################################################## 100.0%
==> Running installer for mactex; your password may be necessary.
Password:
==> installer: Package name is MacTeX-2014
==> installer: Installing at base path /
==> installer: The install was successful.
[此处有个酒杯] mactex installed to '/opt/homebrew-cask/Caskroom/mactex/20140525' (2.3G)

然后就装完了 — 想了下其实和之前的没啥不一样,但我就是那么奇怪就是不喜欢dmg这也是没办法的事情.

然后你在Launchpad上可以看到多了个目录,里面一坨相关的程序,随便点开看看就可以玩了.不过这时候你开terminal还是不能通过命令行来编译.tex代码.解决也很简单,把/usr/texbin加入path即可.

mactex其实并不是最好的,texstudio可以构建一个latex工程,写起paper更加爽,不过这些是在我安装完后而且不怎么要写东西的时候被告知的，而且那logo配色太丑了,所以我还没有装…

axel,下载的神器

人生在世总要下载点东西,哪有处处git+brew帮你打点好一切的，但你必须下载一个很大的一坨数据的时候,xunkai同学及时给了个炒鸡棒的建议:axel。安装很简单

$ brew install axel

使用也很简单

$ axel -n 256 some_url

这货就会开256个进程疯狗一样把数据拖下来. 不过开多开少都不好,需要找个平衡点.

Java

mac 自带 java, 不过万年不变的 jdk6 也真是够了, 我打算来个新点的. 可惜很不幸的, brew 直接装个 jdk 环境的想法泡汤了, 我们必须通过官网下载 pkg 来安装.

安装可以去官网下,官网地址http://www.oracle.com/technetwork/java/javase/downloads/index.html,下个你要的,然后一路next即可

update:

brew 可以安装 jdk。

brew cask install caskroom/versions/java8 # 安装 jdk8
# brew cask install caskroom/versions/java9 # jdk 9

默认环境变量 JAVA_HOME 可以直接设置为 /usr/libexec/java_home 的值

jdk不是jvm,很多同学都不小心下了java的浏览器插件,这货大小还蛮大可惜没人用.若不在意你可以继续下刚才的,否则你可能需要删除点东西. 删除java的浏览器插件可以参考这个简而言之，删除:

sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

上面是官方的说法,不过我另外发现个软链接配置文件在 /Library/Application\ Support/Oracle目录下，检查下目录，发现基本是空的，用途不明反正直接干掉oracle目录先.

若不想用java了想删除jdk或者删除旧版内容,可以参考这个。

远程登录 Windows

mac下远程登录windows的话,个人觉得还是用 Microsoft Remote Desktop 最合适，微软官方出品而且还是免费的.可惜中国市场没有 — 所以,要不你切美国市场要不你用微软官网上可以找到的那个那个巨烂无比的那个,要不你到某些我也不好意思说的地方做你的羞羞的事情,要不就别用.其实我特想硬气的说我就是不连windows怎么着可惜最后还是做了最羞耻的事情,sigh.人生是不圆满的…

总之张上面那样可以编辑和保存多个profile,虽然使用了几下还是有一些问题不过还没看到更好的…

Something else …

计算机就是用来享受生命的,林林总总各种形式的内容总要试试看.mac的store以及各种开源软件我们看到有兴趣尝试下自是应该,也算是玩过几下.

Evernote在mac下强多了,而且左下角没有广告好爽.

GeoGebra用起来感觉也很不错,linux下我就用的它.

MPlayerX播放视频挺有感觉的.

Vienna + inoreader 简直让人爱不释手.

Scrivener 太喜欢了不过目前没啥需求所以还没花那四十五把刀买一个.若哪位有志于搞点写作什么的，不妨试试这个.可以试用一个月呢.

textmate 编辑器中的神器,用起来感觉超爽,四十欧,也不贵.

omnifocus 一个时间管理的工具,感觉蛮好玩的,$39,感觉物有所值

TexPad 是一个 LaTeX Project IDE