macos 使用最新的GNU 命令行工具

喜欢使用命令行工具的人,使用惯了linux 发行版的人,在mac 上使用命令行的话,有些命令行要么版本老,不支持一些常用的参数,要么参数不一致,也是头痛。
举几个例子:

  • xargs
    macos 不支持参数 -a
  • ps
    macos 和linux 的参数基本不一样
  • netstat
    macos 和linux 的参数基本不一样

恭喜你,本篇blog 教你搞定这些问题

how

step 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Install GNU core utilities (those that come with OS X are outdated)
brew install coreutils
# Install GNU `find`, `locate`, `updatedb`, and `xargs`, g-prefixed
brew install findutils
# 后面两个选装,如果你使用bash 多的话,可以安装下bash
# Install Bash 4
brew install bash
# Install gnu-tar, g-prefixed
brew install gnu-tar
# Install pcregrep. Learn it, live it, love it.
brew install pcre

step2

配置环境变量$PATH$MANPATH

每执行完一步上面的步骤,安装完这些工具到本地后,注意brew的 提示,它会提示如何更新上面的两个变量
例如

下面是我的配置好了的环境变量 (我没有更新bash ,我用zsh)

1
2
3
4
5
6
7
8
9
10
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export MANPATH="/usr/local/man:$MANPATH"
# install gun updated tools from brew
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
export PATH="/usr/local/opt/findutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/findutils/libexec/gnuman:$MANPATH"

step3

尝试下psnetstat 之类的命令是不是和linux的一样,别忘了尝试下man手册是不是已经可以man到最新的linux command