為什麼要學習linux
為什麼要用 Linux ?
北京的(包擴矽谷)的職業開發者一般都用蘋果本( Macbook )做開發(寫程式碼)。我們是做 Web 開發的,Web 專案要執行在伺服器( server )上,伺服器的業界標準是使用 Linux 做作業系統呢。
幸運的是, MacOS 和 Linux 都是 Unix 的變種,使用起來大同小異。所以我們課程中使用 Linux 做開發也是非常棒一個選擇。Peter 本人用 Linux 做開發,用了5年。
開啟命令列介面
Ctrl-Alt-T 是深度 Linux 系統上開啟命令列視窗的快捷鍵。命令列視窗中可以執行的程式不唯一。預設啟動的程式叫做 Bash ,這個是我們這個要學習的核心。在 Bash 下就可以來輸入各種 Linux 命令了。
但是,命令列視窗中也能啟動其他的程式,例如 Python/Javascript 的解析器。
命令列能幹什麼?
命令列和滑鼠(圖形化的介面)一樣是人類操作電腦的一種方式。基本上滑鼠能幹得活,命令列都能幹(個別的像 Photoshop 的一些操作不太好弄)。
同時,只要命令列能幹的事情,都會比滑鼠更高效,因為命令列是可以批處理的。實際開發中,我們用命令列最經常的操作就是,建立檔案,刪除移動檔案等。
舉個例子,如果我要在桌面上建立一個資料夾,可以用滑鼠右鍵來建立,同時如果用命令列,操作如下
cd Desktop
mkdir FolderName
最終操作結果是等價的。但是如果要學習命令列操作,第一步就是要掌握檔案系統結構。
插播一個 Linux 八卦
Linux 系統執行在所有的 Andriod 手機上,全球最強的十臺 super computer 其中有九臺(或者十臺)執行 Linux 。80% 的伺服器都用 Linux 。
所以說 Linux 很牛,但是它的價格是:0元。它的價值是多少?大約200億美元。到底是誰做成了200億的東西,卻 give it for free 。這個人就是 Linus 。
Linus 是芬蘭人,他父親是政治家(共產主義者)。Linus 在大二的時候創作 Linux 作業系統。69年出生,今天依然在寫程式碼。
繼續來聊檔案系統( File System )
如果我們想對檔案進行,增刪改查( touch rm mv vim ),或者說進行檔案的建立,刪除,移動,重新命名等操作,首先要解決是什麼呢?要能找到它。或者說,就是要知道檔案在檔案系統上的位置。
所以,我們首先要聊的是檔案系統的結構。實際上就是說一下,Linux 系統預設的那些資料夾的結構。實際上這個結構是非常簡單的。
Windows 系統上還分 C/D 盤,Linux 這裡其實更簡單。所有的資料夾都會存在一個頂級老祖宗資料夾之內。這個老祖宗的名字叫做 /
。
圖片中,位置非常獨特的資料夾還有一個,就是 /home/peter
,它通常被稱為使用者主目錄 ,它還有個外號叫 ~
。使用者預設登陸進系統之後,預設的著陸位置就是這個資料夾。同時,預設使用者只是在這個資料夾裡有寫許可權,而在這個之外的地方是沒有寫許可權的。
要真正找到檔案,需要我們學會如何在檔案系統內做跳轉 。
如何在檔案系統內做跳轉?
這裡我們會使用到的一個核心命令叫 cd
( Change Directory 改變資料夾 ) 。所以說檔案系統內做跳轉,其實就是改變當前資料夾。
檢視當然資料夾中的內容,就用
ls
這個命令。我們可以看到的輸出結果大概是
$ ls
Desktop Application Download
那麼,現在如果我們想要跳轉到桌面(或者說就是把當然資料夾改變為桌面),那就來執行
cd Desktop
這樣就可以跳轉到桌面了。到桌面執行 mkdir FolderName
來看看這個新的資料夾,是否真正建立到了桌面上( mkdir 全稱就是 make Directory ,建立一個資料夾)。
如何跳轉到上一級資料夾
cd ..
其中 ..
就是上一級資料夾的外號。
如何快速的回到使用者主目錄呢?
cd ~
或者
cd
都可以。
知道了,如何在檔案系統中跳轉了,我們就可以進一步學習各種檔案操作了(建立,移動,重新命名,刪除等等)。
建立檔案或者資料夾
建立資料夾
mkdir project
注意:建立的位置要在使用者主目錄內部,不然會遇到許可權不夠的問題。
進入這個專案資料夾
cd project
這樣,當前資料夾 就切換到了 project 之內。
插播一個小技巧:可以用 pwd
( Print Working Directory 列印當前資料夾)來顯示精確的位置。
建立一個檔案,可以用
touch fileName
注意:Windows 系統上,一般檔案都是要有後綴,但是 Linux 下沒有這個要求。
但是,一般我們都是用 atom 編輯器來建立檔案。
atom .
注:.
代表當前位置(當前資料夾)。
刪除檔案或者資料夾
刪除一個檔案
rm fileName
刪除一個資料夾
rm -r folderName
移動
移動用到的是 mv
命令
mv 被移動的檔案或者資料夾的路徑 目標資料夾位置
重新命名
mv 被移動的檔案或者資料夾的路徑 不存在的位置/檔名
這樣進行的就是原來檔案的重新命名操作。
複製貼上
用 cp
這個命令。
cp 被拷貝的的檔案 目標位置
拷貝資料夾[email protected]:xwxsummer/sleep.git
cp -r 被拷貝的的資料夾 目標位置