全新 Mac 安裝指南(編程篇)(環境變量、Shell 終端、SSH 遠程鏈接) 注

注:本文專門用於指導對計算機編程與設計(尤爲是互聯網產品開發與設計)感興趣的 Mac 新用戶,如何在 Mac OS X 系統上配置開發與上網環境,另有《全新 Mac 安裝指南(通用篇)》做爲本安裝指南的基礎篇。php

在 《爲何說每一個程序員都應該有臺Mac電腦》一文中我有提到 Mac 系統的命令行環境與 Linux 系統十分相似,這是由於 Mac OS X 的操做系統內核是 Darwin,它和 Linux 同樣是一種優秀的類 Unix 系統。掌握 Linux Shell 命令行的使用,能夠說是全棧工程師的基本要求之一,而使用 Mac 的初學者會比使用 Windows 系統的有着更大的優點。html

接下來,咱們先來了解幾個 Mac (及 Linux )下的基礎概念 環境變量Shell 終端SSH 遠程鏈接前端

環境變量

環境變量(environment variables)是全部操做系統中的一個通用概念,簡單來講就是系統啓動以後,會預設一些全局的變量信息供全部應用程序來使用。打個比方,若是我聲明「接下來文章裏說的 env 是表示 environment variables 的意思」,其實就是在這篇文章的環境下,定義了一個環境變量 $env = "environment variables"node

在一個操做系統中,能夠把一個目錄名、命令行語句、數值或字符串定義成一個環境變量。如下截圖展現了 Windows 操做系統中預設的一些環境變量:android

windows系統環境變量

其中有一個比較特殊的環境變量叫作 系統 path 變量,它的用途是定義一組全局目錄路徑。當在命令行終端下運行一個命令行時,若當前路徑中不存在該命令,則會在系統 path 變量所定義的目錄中按前後順序一一查找,查找到則執行,若是遍歷完 path 中全部目錄都未查找到,則返回沒法找到該命令。git

Windows CMD 與 Mac Terminal 下打印系統 path 變量

Shell 終端

Shell 能夠用來執行命令行,在 Mac 下打開 Terminal(終端)程序,會自動開啓一個 Shell 命令行界面,而 Shell 每次在被打開(或執行)的時候會自動加載默認配置文件。Mac 和 Linux 默認的 shell 都是 bash,其中 Mac 的 bash 默認配置文件是 .bash_profile ,Linux 的是 .bashrc 。Mac 下經過修改 .bash_profile 文件能夠進行一些環境變量的配置。程序員

接下來實際操做演示如何使用 Terminal 在 .bash_profile 中配置 ll 快捷命令,其中我會順帶使用一些經常使用命令,它們含義以下:github

  • cd 跳轉至目錄
  • ls 列出當前目錄下的文件及文件夾
  • ls -l ls 命令加 -l 參數表示列出更多詳細信息
  • mv 移動 / 重命名文件
  • touch 新建文件
  • rm -r 刪除文件,-r 參數表示遞歸刪除目錄
  • pwd 顯示當前目錄
  • ~ 波浪號表示當前用戶根目錄,通常用戶的配置文件都放在這裏
  • echo 打印字符串或變量
  • > 將結果輸出至某文件中
  • cat 輸出文件全文內容
  • source 執行某一個文件,一般 .bash_profile 修改以後須要執行下 source 命令(或者新開一個 shell)來保證配置生效

Terminal Shell 演示

此外,管道命令 | 也是 Shell 中十分經常使用的命令,它用於將前一個命令的輸出結果做爲後一個命令的輸入參數web

例如使用如下命令查看 7070 端口是否有進程佔用:chrome

netstat -an | grep 7070

Mac 下默認的 Terminal + bash 不夠強大,推薦換成 iTerm2 + zsh ,如下是具體的配置方法:

一、安裝 iTerm2

安裝後打開 iTerm2,按下 ⌘, 進行如下配置用來提高逼格:

  • 設置窗口透明度。以下圖,Preferences -> Profiles -> Window -> Window Appearance 設置 Transparency

    iTerm2 窗口透明度設置

  • 設置打開窗口快捷鍵。Preferences -> Keys -> Hotkey 推薦把快捷鍵設置成 control+反引號(數字1左邊那個鍵) iterm2-hotkey

iTerm2 支持窗口切分,使用 ⌘d 可橫向切分紅兩個 shell。

二、安裝 zsh

安裝完成後還須要進行必定的配置,讓 zsh 複用 bash 的環境變量配置,具體步驟以下:

  • 在線自動安裝 zsh 。在 iTerm2 中執行如下命令 sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • 使用 vim 編輯器打開用戶 zsh 配置文件,vim ~/.zshrc ,vim 與普通編輯器有很大差別,使用方法可自行百度學習
  • 文件打開後,先按字母鍵大寫 G(跳至文件末尾),再按下字母鍵小寫 o(新插入一行,同時進入編輯模式),輸入如下字符 source ~/.bash_profile ,而後按下 Esc 鍵退出編輯模式,再依次按下 :wq 保存關閉文件

三、安裝 brew

Mac 安裝其餘命令行,須要一個相似 Linux apt-get 這樣的包管理工具,運行如下命令便可自動完成安裝 brew 命令:

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

安裝完成後,如想安裝 wget 命令行(一款經常使用的爬蟲下載工具),只需在 shell 中運行 brew install wget。大多數命令行均可以經過 brew 進行安裝和管理。

SSH 遠程鏈接

ssh 是 Mac/Linux 下一個遠程鏈接主機的命令行工具,兩臺機器創建一個 ssh 鏈接以後能夠進行一系列的加密指令和數據傳輸。ssh 十分重要,每一個愛編程自由的人都應該掌握。

在開始學習 ssh 以前,咱們須要有一臺 Linux 的主機(或者另一臺 Mac 電腦)用來做爲遠程被訪問的機器。因爲國內的 阿里雲、騰訊雲 價格略高,建議能夠買一個國外的 VPS(虛擬獨立服務器),Linode / Vultr 加州機房在國內的訪問速度不錯,Vultr 最便宜的主機 30RMB/月,不過網速最快的還屬 Google Compute Engine 。使用 Google 的雲服務須要解決這樣一個悖論:一方面你須要能打開 Google 的網站才能購買他的 VPS 服務,另一方面你須要有了他的 VPS 主機才能經過 SSH 打開他的網站。(這是老大哥留給咱們這代人的難題)。

假設你已經有了另一臺 Linux 主機,IP地址 爲 1.2.3.4,用戶名爲 root ,使用如下命令可發起創建 ssh 鏈接:

ssh root@1.2.3.4

此時會要求輸入 root 用戶的密碼,輸入完成後便可登陸至遠程機器。若是不想每次都輸入密碼,則可使用 ssh 密鑰文件鑑權。在使用 git/scp/rsync 等命令時,配置 ssh 密鑰文件能省去每次輸入密碼的麻煩,其配置方法只需三步:

  1. 安裝 ssh-copy-id 命令行工具 brew install ssh-copy-id
  2. 生成本機密鑰/公鑰文件 ssh-keygen -t rsa
  3. 將本機公鑰上傳到遠程服務器上 ssh-copy-id root@1.2.3.4

注:ssh 端口映射

ssh 協議默認使用 22 端口鏈接,經過 -D 參數可指定將該 ssh 鏈接通道映射到本機的某個端口,而且該加密通道支持 SOCKS 代理協議,這意味着本地應用程序經過此端口傳輸數據時,其實是使用遠程服務器的網絡請求的數據。如下命令行演示了靜默映射 ssh 鏈接至本地 7070 端口:

ssh -g -N -D 7070 -f root@1.2.3.4

接下來咱們驗證下是否映射成功。打開 System Preferences -> Network ,點擊當前使用中的網卡 -> Advanced..(高級) 配置面板,進行如下設置:

配置 SOCKS

設置完成後在百度搜索IP看看本地網絡是否變成了遠程機器的IP。使用 Vultr VPS 的同窗能夠嘗試打開下 Google.com 透透氣,學會使用 Google/Stackoverflow/Github 找到技術問題的解決方案,是高級程序員的基礎素質。

經常使用軟件推薦

在瞭解了 環境變量Shell 終端SSH 遠程鏈接 以後,基礎的命令行編程環境和網絡環境已經配置完成。如下是我經常使用的開發軟件,推薦給各位,但願有所幫助。

通用

編輯器IDE

網絡編程

前端開發

服務端開發

其餘

  • Synergy 局域網內共享鼠標鍵盤
  • OmniFocus / OmniPlan 任務、項目管理
  • Poedit 語言文件編輯工具
  • Dropbox Dropbox 同步文件不會出錯,不過要先學會設置代理

另外,相信很多程序員朋友有據說過神之編輯器 Emacs 與編輯器之神 VIM,在 Mac 下有一個十分關鍵的隱藏配置,開啓以後,可助普通程序員直接步入大神級別。關注微信公衆號 「貓哥學前班」,回覆 hhkb 關鍵詞便可揭曉答案:)

相關文章
相關標籤/搜索