配置我自己的Mac
Mac的目录结构
因为 Mac 属于一种类 Unix 系统,因此 Mac OS X 目录 = Unix 系统通用目录 + 独有目录,Mac OS X 已经是被认证的 Unix 系统,所以其目录结构基本符合 Unix 系统目录结构。
Unix 通用目录
- /bin 传统 unix 命令的存放目录,如 ls,rm,mv 等。
- /sbin 传统 unix 管理类命令存放目录,如 fdisk,ifconfig 等等。
- /usr 第三方程序安装目录。
- /dev 设备文件存放目录,如何代表硬盘的/dev/disk0。
- /usr/bin, /usr/sbin, /usr/lib,其中/usr/lib 目录中存放了共享库(动态链接库)。
- /etc 标准 unix 系统配置文件存放目录,如用户密码文件/etc/passwd。此目录实际为指向/private/etc 的链接。
- /tmp 临时文件存放目录,其权限为所有人任意读写。此目录实际为指向/private/tmp 的链接。
- /var 存放经常变化的文件,如日志文件。此目录实际为指向/private/var 的链接。
MacOS 独有目录
- /Applications 应用程序目录,默认所有的 GUI 应用程序都安装在这里
- /Library 系统的数据文件、帮助文件、文档等等
- /Network 网络节点存放目录
- /System 只包含一个名为 Library 的目录,这个子目录中存放了系统的绝大部分组件,如各种 framework,以及内核模块,字体文件等等。
- /Users 存放用户的个人资料和配置。每个用户有自己的单独目录。
- /Volumes 文件系统挂载点存放目录。
- /cores 内核转储文件存放目录。当一个进程崩溃时,如果系统允许则会产生转储文件。
- /private 里面的子目录存放了/tmp, /var, /etc 等链接目录的目标目录。
关于/usr/local 和 opt 目录
- /usr/local 下一般是你安装软件的目录,这个目录就相当于在 windows 下的 programefiles 这个目录
- /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 Proxy
和Secure Web Proxy
的服务为127.0.0.1:1087(ss中的默认http代理接口为1087,如果修改了那边这里跟那边的一致)。