Linux 簡介 === ###### tags: `Ubuntu` `winter_camp` `tutorial` [TOC] ## 基本指令 ``` $ <指令明稱> -<簡寫參數> --<全稱參數> ``` ### ls : list,查看檔案及子目錄 - ```$ ls [參數] [路徑]``` - 常用參數 - ```a``` : all, 顯示所有檔案集目錄,包括隱藏檔案目錄 - ```l``` : long, 顯示檔案的完整資訊 ### cd : change directory,移動進入資料夾 - ```$ cd 路徑``` ### pwd : print work directory,印出目前工作目錄 - ```$ pwd``` ### mkdir : make directory,創建新資料夾 - ```$ mkdir [欲建立的目錄]``` - ```$ mkdir [欲建立的目錄1] [欲建立的目錄2] [欲建立的目錄3]``` :建立多個目錄 - ```$ mkdir -p[欲建立的目錄1]/ [欲建立的目錄2]/ [欲建立的目錄3]``` :建立多層目錄 ### cp : copy,複製檔案或是資料夾 - ```$ cp [參數] <要複製的檔案路徑>... <目標資料夾路徑>``` - 常用參數 - ```r``` : 遞迴,複製整個資料夾的時候需要用 - ```v``` : 顯示已複製的檔案 - ```i``` : 若目標檔已經存在時,在覆蓋時會先詢問 - ```f``` : 強制執行 - 其他詳細說明: [鳥哥](http://linux.vbird.org/linux_basic/0220filemanager.php#cp) ### mv : move,移動檔案或是重新命名檔案 - 移動 : ```$ mv [參數] <要複製的檔案路徑>... <目標資料夾路徑>``` - 重新命名 : ```$ mv [參數] <原檔名> <新檔名>``` - 常用參數 - ```v``` : 顯示已複製的檔案 - ```i``` : 若目標檔已經存在時,在覆蓋時會先詢問 - 其他詳細說明: [鳥哥](http://linux.vbird.org/linux_basic/0220filemanager.php#mv) ### rm : remove,刪除檔案 - ```$ cp [參數] <要複製的檔案路徑>... <目標資料夾路徑>``` - 注意! **一但用rm刪除的檔案,就幾乎無法復原,垃圾桶也不會有** - 常用參數 - ```r``` : 遞迴,刪除整個資料夾的時候需要用 - ```v``` : 顯示已移除的檔案 - ```i``` : 準備刪除時先詢問 - ```f``` : 強制執行 - 其他詳細說明: [鳥哥](http://linux.vbird.org/linux_basic/0220filemanager.php#rm) ### man : manual,說明書 - ```$ man <指令名稱>``` - 按```q```離開 ### cat : 將文件內容印在終端機上 - ```$ cat <文件名稱>...``` ### more : 一次只顯示一個螢幕輸出的資料 - ```$ more <文件名稱>...``` ## Linux 檔案系統架構 - Linux將所有的檔案視為同一個邏輯區,只有一個最高節點 - Windows可以有多個最高節點,```C:\```, ```D:\``` - ![](https://i.imgur.com/o6sR5Cc.png) 1. ```/bin``` : binary,使用者可使用的指令 2. ```/home``` : 使用者的家目錄,有幾個使用者```/home```裡面就有幾個資料夾 3. ```/dev``` : device,顯示所有硬體,cpu,硬碟,相機 4. ```/tmp``` : 暫存目錄, 若一段時間沒存取,會被自動清理 ## 路徑 #### 相對路徑 : 以執行指令當下的目錄為出發點 ```catkin/bin``` ```../../pidcal/bin``` #### 絕對路徑 : 以```/```開頭 ```/dev/vedio0``` ```~/work``` ## 萬用字符 - ```*``` : 代表0到無窮多個任意字元 - ```*.jpg``` : 所有的.jpg檔```cat.jpg```, ```.jpg``` - ```*pic*``` : 所有包含pic的檔案 - ```?``` : 代表1個任意字元 - ```???``` : 檔名有三個字的檔案 ```123``` - ```*```和```?```可以混合使用,而且可以用於資料夾上 ## 檔案權限 - 參考 : [鳥哥](http://linux.vbird.org/linux_basic/0210filepermission.php) ![](https://i.imgur.com/gP3tcDn.png) ### ```chmod```指令 : 用來改變檔案權限 - 用3個2進位數字表示 - ```$ chmod 744 test.py``` - 用```+```, ```-```配上```r```, ```w```, ```x``` - ```$ chmod +x test.py``` # 練習 #### 準備 1. 看看有無```git```指令,如果沒有,用```apt```安裝git 2. 用```$ git clone https://github.com/EasonHuang-tw/LinuxEx.git```下載練習文件 #### 練習一 - 把資料夾```2```中的文件,依照```a, b, c```分成三個資料夾 #### 練習二 - 將```sample```改成可執行檔,並執行 # 其他指令 ### sudo : 以系統管理員權限執行後面的指令,第一次使用會需要打密碼 - ```$ sudo ...``` ### apt-get : 套件管理工具 - 更新套件資料庫列表 :```sudo apt-get update``` - 升級套件並下載安裝套件 : ```sudo apt-get upgrade``` - 安裝套件 : ```$ sudo apt-get install <套件名>``` - 移除套件 : ```$ sudo apt-get remove <套件名>``` ### ```|``` : pipe(管線命令),將前方執行的結果當成後方的指令的輸入 - 範例 : ```$ ls -al | more``` - 其他詳細說明: [鳥哥](http://linux.vbird.org/linux_basic/0320bash.php#pipe) ### ```>``` : 標準輸出重新導向 - 範例 : ```$ ls > ls.txt``` ### ```>>```: 加到末尾 - 範例 : ```$ ls >> ls.txt``` ### ```ps``` : 將某個時間點的程序運作情況擷取下來 - 範例 : ```$ ps -ef```, ```ps -ef | more``` - 其他詳細說明: [鳥哥](http://linux.vbird.org/linux_basic/0440processcontrol.php#ps) ### ```grep``` : 只列出含有某字串的列 - 範例 : ```$ ps -ef | usr``` - 其他詳細說明 :https://blog.gtwang.org/linux/linux-grep-command-tutorial-examples/ ### ```htop``` :監控 Linux 即時的系統狀態