入手新 Mac 后的环境搭建

    Mac

搬家都是耗时的,为了尽可能节省时间,在这里记录下个人基本环境搭建。


Command Line Tools

虽然通过完整安装 Xcode 就能获得 Command Line Tools ,但 Xcode 太大,太费时间,推荐使用以下方法:

打开 Mac 自带的终端 Terminal.app 输入以下指令

$ git

Mac 会提示你 git 这一命令不存在,需要安装 Command Line Tools ,接着就根据提示联网安装即可

下面这个是正式的安装命令,幂等的哦

$ xcode-select --install

Homebrew

安装 Hombrew

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

Homebrew 常用指令

## 安装(软件),更新,检查可更新的软件
$ brew install [formulae]
$ brew update
$ brew outdated

更多信息可以参考官网这里,包括重新安装 Homebrew


Git

安装好 Command Line Tools 之后,就已经有 Git 了,但并非最新版,追求最新版 Git 需要使用 Homebrew 来安装

$ brew install git

安装好之后要记得设置一下 Git 的一些参数

$ git config --global user.name "xxx xxx"        ## Git 用户名
$ git config --global user.email "xxx@xxx.com"   ## Git 邮箱
$ git config --global color.ui true              ## Git 命令的输出文字色彩化

### Example
$ git config --global user.name "chpwang"        
$ git config --global user.email "chpwang@gmail.com"

Git 的一些常用命令整理见这里


Rails 开发环境搭建

安装 ImageMagick 函数库 - 用于今后 Rails 开发中处理图片

$ brew install imagemagick

安装 PostgreSQL - Rails 网站开发常用数据库

$ brew install postgresql
$ brew services start postgresql  ## 启动数据库服务

安装 RVM - Ruby Version Manager 用来管理 Ruby 的版本

$ \curl -sSL https://get.rvm.io | bash -s stable
$ source ~/.rvm/scripts/rvm    ## 安装完 rvm 会提示使用该命令来让 rvm 生效

如果用的是 Fish Shell 而不是 Bash Shell, 则 RVM 需要用以下方法安装,参考RVM 官网说明,因为 Fish 不兼容 Bash (not bash-compatible)
此外,如果是从 Bash Shell 切换到 Fish Shell ,发现各种 RVM 等开发的相关种命令都找不到了,也可通过以下设置来使得 RVM 和原来的 Rails 正常运行

## 这串命令本质上是从 Github 上下载一套指令集放在 Fish Shell 的初始化设置文件夹里,让 Fish Shell 每次启动的时候都运行一次,设置好各种环境变量
$ curl -L --create-dirs -o ~/.config/fish/functions/rvm.fish https://raw.github.com/lunks/fish-nuggets/master/functions/rvm.fish

# activate the default Ruby manually in your config.fish file:
$ echo "rvm default" >> ~/.config/fish/config.fish

安装好 RVM 后再安装一个套件 libxml(后面开发会用到)

$ brew install libxml2

安装所需版本的 Ruby - 以 2.3.1 版本为例

$ rvm install 2.3.1
$ rvm list                ## 该命令可查看本地存在的所有 Ruby 的版本
$ rvm use 2.3.1 --default ## 该命令用于设置默认的 Ruby 版本

$ gem update --system     ## 用于救回安装 rvm 过程中网络等原因造成的中断失败
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/  ## 设置新的 gem 的来源网站

搞定了 Ruby 之后我们就有了 gem 这个命令,接下来用它安装 Rails

$ gem install rails

## 也可以指定 Rails 的版本来安装
$ gem install rails -v 5.0.0

## 看情况可尝试管理员模式安装
$ sudo gem install rails

Hexo 博客环境搭建

按以下方法搭建 Hexo 博客的环境,更多参见多电脑间同步 Hexo 博客

## 通过 Homebrew 安装 Node.js
$ brew install node  

## 使用 Node.js 自带的 npm 安装 Hexo
$ npm install hexo-cli -g

## 安装 SASS - 用 Ruby 语言写的 CSS 开发工具
$ gem install sass   

## 还有以下两个常用命令来更新和查看 package.json 里所记录的套件
$ npm update    #更新套件
$ npm outdated  #查看哪些套件过期(即有新版本)

安装 Sublime

Sublime 是一款常用的编辑器,可以去其官网下载,如果不付费使用,则数个保存操作后会跳出未注册的提示

安装完成后打开 Sublime ,使用快捷键 Command + , 打开设置界面
在右侧 Preferences.sublime-settings - User 页的{}内添加以下两行

  • "translate_tabs_to_spaces": true,
  • "tab_size": 2

注:
第一行末尾有英文输入法的逗号“,”;
第二行是最后一行,可以没有逗号;
这两行是设置 Tap 键Space 键的缩进(indentation)效果:第一行将所有 Tab 转换成 Space,第二行指定每个 Tab 换成 2 个 Space

接着建立快捷方式以便在 Terminal 里快速打开

## 以下命令可以在 /usr/local/bin/ 目录下建立 Sublime 的快捷方式,用于快速调用
$ sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl 

## 建好快捷方式后的使用例子
$ subl .   #打开当前目录

Sublime 的常用操作:

  • 注释代码:选中目标内容后,使用快捷键 Command + / 。 sublime 会自动识别当前文件的语言(也可以在 sublime 窗口右下角手动选择语言类型),并使用当前语言的注释方法注释选中内容。如果当前文件包含多语言,那注释的时候就要右下角手动选择语言,注释完后再改回来

安装并设置 iTerm2

官网下载 iTerm2 安装完后,再下载主题样式(Theme)Solarized (你也可去找其他的 Theme,安装同理)

解压刚刚下载的 solarized.zip 文件之后,打开 iTerm2 做以下操作:

  • Preferences -> Profiles -> Colors -> Color Presets -> Import,载入 iterm2-colors-solarized 目录下的两个 itermcolors 文件
  • Preferences -> Profiles -> Colors -> Color Presets ,选择 Solarized Dark
  • Preferences -> Profiles -> Text -> Change Font,可选择字体和字号(建议 Menlo 字体)

将 Mac 键盘上的左 option 键映射为 Esc+ ,以便在 iTerm2 里就可以使用 option + delete 组合来删除一个单词,设置方法如下:

  • Preferences -> Profiles -> Keys

安装 Fish Shell

Fish 是一款更好用的 shell ,各种操作都比较符合直觉,在 MacOS 上安装也方便

## 成功安装 fish 后会提示如何设置才能开始正常使用 fish shell
$ brew install fish
==> Installing fish
==> Downloading https://homebrew.bintray.com/bottles/fish-2.7.1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring fish-2.7.1.high_sierra.bottle.tar.gz
==> Caveats
You will need to add:
  /usr/local/bin/fish
to /etc/shells.

Then run:
  chsh -s /usr/local/bin/fish
to make fish your default shell.

## 如果已经安装过 fish shell , 可以使用以下方式来升级 fish
$ brew upgrade fish

根据上面的提示,fish 默认会安装在 /usr/local/bin/fish 目录下,所以还需要将其添加到 /etc/shells
因为只有在 /etc/shells 文档里记录的 shell 才能正常访问电脑(正常登陆)

## 此操作会更改 /etc/shells 内容,需要输入管理员密码
$ echo "/usr/local/bin/fish" | sudo tee -a /etc/shells

## 查看当前所有可用的 shell
$ cat /etc/shells

## 查看当前正在使用的 shell
$ echo $SHELL

接着将 fish 设置成终端默认的 shell

$ chsh -s /usr/local/bin/fish

最后是一些常用的自定义设置,更多教程可参看官网或者这篇博客

## 建立 config.fish 文件,该文件相当于 ~/.bashrc 或者 ~/.zshrc 文件,用于 shell 的初始化设置
$ mkdir -p ~/.config/fish
$ vi ~/.config/fish/config.fish

## 在 fish 中注销变量
$ set -e [变量]
## Example
$ set -e https_proxy

## 环境变量 $PATH 包含了各种命令(软件)的路径,各个 shell 们运行命令时都会从里面找
## 在 fish shell 中,环境变量 $PATH 的数据类型是一个列表(List),而不是一个包含分号(;)的字符串(String)
## 登陆 Terminal 时,fish 预载入的环境变量其实是  $fish_user_paths + $PATH ,所以常用以下方式来初始化当前用户的环境变量
## 以下命令会将 /usr/local/bin 永久添加到 $fish_user_paths ,进而每次登陆 Terminal 都会自动载入该路径
$ set -U fish_user_paths /usr/local/bin $fish_user_paths

## fish_user_paths = /Users/user1/gems /Users/user1/ruby /Users/user1/.rvm
## 永久移除(影响今后每次的登陆)变量 $fish_user_paths 中右起第 2 个元素
$ set --erase --universal fish_user_paths[2]
$ echo $fish_user_paths
/Users/user1/gems /Users/user1/.rvm

自定义 fish shell 的提示符内容(Customize Prompt)可以通过更改配置文件 fish_prompt.fish 中的函数 fish_prompt 来实现:

## ~/.config/fish/functions/fish_prompt.fish
### Example ###
function fish_prompt --description 'Write out the prompt'
        set -l home_escaped (echo -n $HOME | sed 's/\//\\\\\//g')
   set -l pwd (echo -n $PWD | sed "s/^$home_escaped/~/" | sed 's/ /%20/g')
   set -l prompt_symbol ''
   switch $USER
       case root toor; set prompt_symbol '#'
       case '*';  set prompt_symbol '$'
   end
   printf "%s@%s: %s%s%s %s " $USER (hostname -s) (set_color $fish_color_cwd) $pwd (set_color normal) $prompt_symbol
end

###########################
## 上述配置下提示符的输出格式为:
## username@hostname: ~ $

打赏