使用 mac 差不多有4、5年了,期間各種不適應到現在感覺脫離不了了。
mac 上有許多蠻有意思的軟體,付費的免費的都有,如果你願意折騰,還可以嘗試開源專案。
對於第一次接觸 mac 的人可能會遇到各種問題想放棄,甚至會產生恐懼:怎麼安裝軟體?pkg、dmg是什麼?怎麼關閉程式?等等。其實這些都不是問題,只要你安心的接納它,你會發現很美好。so easy ~
Mac Keyboard Shortcuts
幾個常用的功能鍵
-
Command 鍵 ⌘
-
Shift 鍵 ⇧
-
Option 鍵 ⌥
-
Control 鍵 ⌃
-
Caps Lock 鍵 ⇪
-
Fn 鍵
快捷鍵 | 說明 |
---|---|
Command-X | 剪下:移除所選專案,然後拷貝到剪貼簿。 |
Command-C | 將所選專案拷貝到剪貼簿。這也可以用在 Finder 的檔案上。 |
Command-V | 將剪貼簿的內容貼上目前的檔案或 app 中。這也可以用在 Finder 的檔案上。 |
Command-Z | 還原前一個指令。您可以按 Command-Shift-Z 以重做,反轉還原指令。在某些 app 中,您可以還原與重做多個指令。 |
Command-A | 全選專案。 |
Command-F | 尋找:開啟 Find 視窗或在檔案中尋找專案。 |
System Preferences
觸控板
-
游標與點按
-
輕點來點按
用單指輕點來進行點按 -
輔助點按
用雙指點按或輕點來進行等同按住 Control 鍵並點按或右鍵點按的操作。
-
-
滾動縮放
-
滾動方向:自然
雙指上下滑動來滾動。 -
放大或縮小
雙指開合可放大或縮小。 -
智慧縮放
用雙指輕點兩下可放大網頁或 PDF,或縮小回原來的大小。 -
旋轉
雙指互相以對方為中心移動,即可旋轉照片或其他專案。
-
-
更多手勢
-
三指拖移
用三根手指拖移螢幕上的專案,然後點按或輕點以放下。可在“輔助功能”偏好設定中開啟此功能。 -
查詢和資料檢測器
用三根手指輕點可查詢字詞,或者進行其他與日期、地址、電話號碼和其他資料相關的操作。 -
顯示桌面
將拇指和另外三根手指同時展開,即可顯示桌面。 -
Launchpad
將大拇指和另外三根手指合攏到一起,即可顯示 Launchpad。 -
Mission Control
用四根手指向上輕掃3,即可開啟 Mission Control。 -
App Exposé
用四根手指向下輕掃3,即可檢視正在使用的應用的所有視窗。 -
在全屏應用之間輕掃
用四根手指向左或向右輕掃,即可在桌面與全屏應用之間移動。
-
Homebrew
包管理工具可以讓你安裝和更新程式變得更方便,目前在 OS X 系統中最受歡迎的包管理工具是 Homebrew.
Install
在安裝 Homebrew 之前,需要將 Xcode Command Line Tools
安裝完成。
在終端輸入:
xcode-select --install
xcode command tools 安裝完之後,接著再輸入:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
耐心等待一段時間,等 homobrew 安裝好之後,再執行這一條語句:
echo `export PATH="/usr/local/bin:$PATH"` >> ~/.bash_profile
後面的 .bash_profile
請根據你使用 shell 的情況來修改。
Usage
以下都列舉了一些簡單常用的命令,通常還會有引數,具體的使用方式可以去官方網站上檢視。
命令 | 說明 |
---|---|
brew | 直接回車,顯示所有常用命令 |
brew –version | 顯示版本 |
brew config | 檢視配置 |
brew doctor | 診斷問題 |
brew help | 檢視幫助 |
brew update | 更新版本 |
brew outdated | 顯示過期的版本 |
brew upgrade | 更新過期的版本 |
brew list | 列出已安裝的包 |
brew info | 檢視這個包的資訊 |
brew install | 安裝包 |
brew uninstall | 解除安裝包 |
brew tap | 新增倉庫 |
brew untap | 刪除倉庫 |
Cask
Cask 是建立在 homebrew 基礎上的 Mac 軟體安裝命令列工具。
安裝
brew tap caskroom/cask
note: 老版本的 homebrew 需要執行
brew install brew-cask
,最新的版本預設整合了 Cask。
常用命令
-
brew cask list 列出所有可以被安裝的軟體
-
brew cask search google 查詢所有和 google 相關的應用
-
brew cask info qq 檢視qq應用的資訊
-
brew cask install qq 安裝 QQ
-
brew cask uninstall qq 解除安裝 QQ
一鍵裝機 App
brew cask install sublime-text cheatsheet key-codes iterm2 dropbox google-chrome evernote qq mou alfred the-unarchiver
note: Cask 軟體更新策略,
brew cask uninstall APP && brew cask install APP
先刪除 App,再重新安裝
一鍵安裝 QuickLook 外掛
brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlprettypatch quicklook-csv betterzipql qlimagesize webpquicklook suspicious-package quicklookase qlvideo
Homebrew 中一些路徑的解釋
Caskroom Frameworks bin include opt share
Cellar Homebrew etc lib sbin var
-
Cellar : 資料夾存放的是所有包安裝所在路徑,包括二進位制,文件和配置檔案,按照這樣Cellar/包名/版本號/ 的形式來安放。
-
opt : 由於版本號隨著跟新而改變的,所以需要一個固定不變的路徑作為我們訪問二進位制和文件的路徑,這就是opt 的作用。
-
Homebrew : brew 程式所在路徑。
-
bin : 所有包安裝之後二進位制都會連結到這個路徑下。
-
share : 所有包安裝之後的文件都會連結到這個路徑下。
-
etc : 同上,所有包的配置檔案。
-
lib : 同上,所有包相關庫檔案。
-
Caskroom : app 檔案。
Zsh
mac 自帶 Shell 是 bash,已經很長時間沒更新了。(其實我也不確定這就成了換 zsh 的理由、尷尬)
所以我也說不出 zsh 比 bash 好在哪方面 -_-#
en~ 不過我可以給你們說說 zsh & oh-my-zsh 的使用體驗:逼 ~ 格 ~ 高 ~
上面是段玩笑話,現在進入主題吧。
安裝 zsh
note: mac 預設自帶 zsh。 通過
cat /etc/shells
,可以檢視系統已存在幾種 Shell。
在終端執行:
brew install zsh
然後再執行 vi /etc/shells
,將新安裝的 zsh 新增進去。
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/zsh
note: 使用 vi 儲存時,如果遇到這個問題:E45: ‘readonly’ option is set (add ! to override),可以用這條命令
:w !sudo tee %
。
安裝 oh-my-zsh
選擇 curl
或者 wegt,
在終端執行:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
or
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
等下載安裝完成後,再手動修改和新增 .zshrc
檔案。步驟如下:
-
如果原先存在一個 ~/.zshrc 檔案,需備份。
cp ~/.zshrc ~/.zshrc.orig
-
新建一個 ~/.zshrc 檔案。
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
-
切換 Shell, 這樣 oh-my-zsh 就算完成了。
chsh -s /usr/local/bin/zsh
note: 執行
echo $SHELL
可確定當前是哪個 Shell
自定義 ~/.zshrc
找到 plugins
, 新增以下擴充套件:
plugins=(git nvm npm zsh-completions brew autojump osx zsh-syntax-highlighting catimg extract d zsh-autosuggestions)
note: zsh-syntax-highlighting , zsh-autosuggestions , autojump 需要單獨安裝。
在 ~/.zshrc
最後新增下面兩行:
# Add env.sh
source ~/yourpath/env.sh
新建一個 env.sh
:
#!/bin/zsh
# EDITOR
export EDITOR=`subl -w`
# export EDITOR=vim
# Owner
export USER_NAME="Richie"
# FileSearch
function f() { find . -iname "*$1*" ${@:2} }
function r() { grep "$1" ${@:2} -R . }
#mkdir and cd
function mkcd() { mkdir -p "$@" && cd "$_"; }
# nvm settings
export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
# autojump
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
# Ruby by rbenv
export RBENV_ROOT=/usr/local/var/rbenv
eval "$(rbenv init -)"
# Java by jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# JAVA_HOME
export JENV_ROOT=/usr/local/var/jenv
# JAVA_HOME=`/usr/libexec/java_home`
export JAVA_HOME=`/usr/libexec/java_home`
# zsh-completions
fpath=(/usr/local/share/zsh-completions $fpath)
source ~/.git-flow-completion.zsh
autoload -U compinit && compinit
# zsh-syntax-highlighting
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
#啟用 cd 命令的歷史紀錄,cd -[TAB]進入歷史路徑
setopt AUTO_PUSHD
# 如果連續輸入的命令相同,歷史紀錄中只保留一個
setopt HIST_IGNORE_DUPS
# 為歷史紀錄中的命令新增時間戳
setopt EXTENDED_HISTORY
# 自動補全功能
setopt AUTO_LIST
setopt AUTO_MENU
# Aliases
# Proxy
alias pc=`proxychains4`
alias cppcompile=`c++ -std=c++11 -stdlib=libc++`
# Use sublimetext for editing config files
alias zshconfig="subl ~/.zshrc"
alias envconfig="subl ~/yourpath/env.sh"
# Download by axel
alias dl="axel -o ~/Downloads"
# source .zshrc
alias sourcezsh="source ~/.zshrc"
# Command prompt
autoload -U promptinit && promptinit
alias cd~=`cd ~`
alias ..=`cd ..`
alias ...=`cd ../../`
alias cls=`clear`
alias ll=`ls -l`
alias la=`ls -a`
alias vi=`vim`
alias javac="javac -J-Dfile.encoding=utf8"
alias grep="grep --color=auto"
# Default open with application
alias -s html=subl
alias -s rb=subl
alias -s py=vi
alias -s js=vi
alias -s c=vi
alias -s java=vi
alias -s txt=vi
alias -s gz=`tar -xzvf`
alias -s tgz=`tar -xzvf`
alias -s zip=`unzip`
alias -s bz2=`tar -xjvf`
手動更新 oh-my-zsh
在終端執行:
upgrade_oh_my_zsh
解除安裝 oh-my-zsh
在終端執行:
uninstall_oh_my_zsh
Mac Proxy
經過一番努力,現在我們的 mac 可以做更多有趣的事情了。但唯一不開心的是、網路不好,下載慢,國外很多優質的資源無法訪問。
但這一切怎麼可能難住我們偉大的程式猿呢!(☆_☆)
shadowsocks 是國內作者 @clowwindy 在 github 上發起的開源專案。(因為一些原因,目前已從 github 移除)
privoxy 和 proxychains-ng 同樣也是 github 上的開源專案。
Proxy SwitchyOmega 是 Chrome 外掛。
iTerm2 是命令列工具。
LaunchRocket 用來管理 Homebrew 安裝的服務。
-
ShadowsocksX + Proxy SwitchyOmega + Chrome 上網無國界
-
安裝 ShadowsocksX
如果有 shadowsocks 賬號,開啟 ShadowsocksX 直接填寫。預設埠是
1080
。brew cask install shadowsocksx
-
安裝 Proxy SwitchyOmega。 Chrome Store
note: Proxy SwitchyOmega,配置比較簡單,略過。
-
使用 Proxychains-ng 代理 iTerm2
-
安裝 Proxychains-ng。
brew install proxychains-ng
-
Proxychains-ng,
vi /usr/local/etc/proxychains.conf
:socks5 127.0.0.1 1080
-
設定 iTerm2 字首補全,
Preferences -> Profiles -> Keys
,新建一個快捷鍵⌥ + p
,Action 選擇Send Hex Code
,鍵值為0x1 0x70 0x63 0x20 0xd
, 儲存生效。使用時,輸入
brew intall source
,再按⌥ + p
,輸出:pc brew install source
-
使用 Privoxy 將 socks 代理轉化為 http 代理
-
安裝 Privoxy。
brew install privoxy
-
Privoxy,
vi /usr/local/etc/privoxy/config
:listen-address 0.0.0.0:9998 forward-socks5 / 127.0.0.1:1080 .
note: 9998是要監聽的 http 埠;1080 是 shadowsocks 監聽埠
-
安裝 LaunchRocket。
brew cask install launchrocket
-
檢視 Privoxy 程式是否啟動,執行:
ps aux | grep privoxy
-
檢視埠監聽是否成功,執行:
netstat -an | grep 9998
-
設定代理
// 設定 Aria2 代理 aria2c --all-proxy=`http://127.0.0.1:9998` -D // 設定 Shell 代理,之後在 shell 裡的操作都會走代理,包括 git http_proxy=http://127.0.0.1:9998 https_proxy=http://127.0.0.1:9998 // 設定 Sublime Text 3 代理 "http_proxy": "http://127.0.0.1:8118", "https_proxy": "http://127.0.0.1:8118",
FQA
git: how to solve “SSLRead() return error -9806” in OSX using brew
macOS 10.12.1 brew 遇到 SSLRead() return error 9086 ?
ShadowsocksX 更新不了 pac 檔案
gfwlist 更新失敗