配置我自己的Mac

Mac的目录结构

因为 Mac 属于一种类 Unix 系统,因此 Mac OS X 目录 = Unix 系统通用目录 + 独有目录,Mac OS X 已经是被认证的 Unix 系统,所以其目录结构基本符合 Unix 系统目录结构。

Unix 通用目录

  1. /bin 传统 unix 命令的存放目录,如 ls,rm,mv 等。
  2. /sbin 传统 unix 管理类命令存放目录,如 fdisk,ifconfig 等等。
  3. /usr 第三方程序安装目录。
  4. /dev 设备文件存放目录,如何代表硬盘的/dev/disk0。
  5. /usr/bin, /usr/sbin, /usr/lib,其中/usr/lib 目录中存放了共享库(动态链接库)。
  6. /etc 标准 unix 系统配置文件存放目录,如用户密码文件/etc/passwd。此目录实际为指向/private/etc 的链接。
  7. /tmp 临时文件存放目录,其权限为所有人任意读写。此目录实际为指向/private/tmp 的链接。
  8. /var 存放经常变化的文件,如日志文件。此目录实际为指向/private/var 的链接。

MacOS 独有目录

  1. /Applications 应用程序目录,默认所有的 GUI 应用程序都安装在这里
  2. /Library 系统的数据文件、帮助文件、文档等等
  3. /Network 网络节点存放目录
  4. /System 只包含一个名为 Library 的目录,这个子目录中存放了系统的绝大部分组件,如各种 framework,以及内核模块,字体文件等等。
  5. /Users 存放用户的个人资料和配置。每个用户有自己的单独目录。
  6. /Volumes 文件系统挂载点存放目录。
  7. /cores 内核转储文件存放目录。当一个进程崩溃时,如果系统允许则会产生转储文件。
  8. /private 里面的子目录存放了/tmp, /var, /etc 等链接目录的目标目录。

关于/usr/local 和 opt 目录

  1. /usr/local 下一般是你安装软件的目录,这个目录就相当于在 windows 下的 programefiles 这个目录
  2. /opt 这个目录是一些大型软件的安装目录,或者是一些服务程序的安装目录

预装软件工具

  • xcode
  • homebrew
    • node.js
    • npm
      • typescript
      • eslint
      • tslint
      • vue-cli
      • hexo-cli
      • @angular/cli
      • alfred-google-translate
      • express-generator
      • npm-check-updates
    • yarn
    • git
    • nginx
    • go
    • fish(已弃用,改投oh-my-zsh大法)
    • autojump
    • docker
    • go
    • java11
    • python3
    • yarn
    • mysql
    • mongodb
    • maven
    • ffmpeg
  • alfred
  • vscode
  • dash
  • chrome
  • git
  • shadowsocks

rar 压缩工具的安装

  • brew intsall unrar

环境变量的加载顺序

  • /etc/profile
  • /etc/paths
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile
  • ~/.bashrc
  • ~/.zshrc

/etc/profile 和/etc/paths 是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面 3 个按照从前往后的顺序读取,如果/.bash_profile 文件存在,则后面的几个文件就会被忽略不读了,如果/.bash_profile 文件不存在,才会以此类推读取后面的文件。~/.bashrc 和 ~/.zshrc 没有上述规则,它是 bash shell 和 zsh shell 打开的时候载入的。

java 的安装

brew cask install java默认应该会下载最新 jdk,也可以指定下载版本brew cask install java6
注意:brew install java是找不到 java 的安装源的.

补充:如果查不到版本,使用brew tap caskroom/versions增加,目前 java7 被移除了

遇到的一些问题

  • 在用 graphicsmagick 时 gm 命令被 git 占用

    在 mac 下 gm 是git merge的 alias,可通过which gm查看这个命令,取消这个别名使用命令unalias gm,再次whcih gm显示为/usr/local/bin/gm。此时就可以正常使用了

  • Charles 与 Shadowsocks 冲突,Charles失效

    Charles 和 Shadowsocks 都是系统级别代理,不过Charles是网页代理(http),而ss是自动代理配置(pac),优先度比网页代理高,所以所有的请求都不会走Charles,其就会失效。搜到一个方法挺不错的charles与shadowsocks共存,做成两级代理,Charles在第一级,ss在它的后面,所有请求都通过 macOS > 系统偏好设置 > 网络 > 代理网页代理(http)安全网页设置(https)设置请求地址为127.0.0.1:8888(Charles中的端口默认为8888,如果修改了这边要跟那边的一致)。这一步设置完之后所有的请求都会走Charles。接下来在Charles中设置代理都走ss。Proxy > External Proxy Settings 中设置Web ProxySecure Web Proxy的服务为127.0.0.1:1087(ss中的默认http代理接口为1087,如果修改了那边这里跟那边的一致)。