# Linux BASH > 提醒: > 每個範例前方的`$`符號為終端機的提示字元,非指令的一部分,不需要輸入。 ## 檔案與目錄管理 ### `ls`:查看檔案及目錄 ##### 列出基本資料夾資料: ``` $ ls ``` #### 參數 ##### 列出詳細資料和隱藏資料: ``` $ ls -la ``` - `-l`:顯示詳細資料 - `-a`:顯示隱藏資料 ##### 列出符合條件的檔案 ``` $ ls *.txt ``` > 列出為 .txt 的檔案 ``` $ ls ????? ``` > 列出檔名長度為5個字元的檔案 ``` $ ls -R ``` > 列出所有目錄檔案,如果有子目錄,則會連子目錄內的檔案都列出來(遞迴搜尋)。 ###`pwd`:取得目前所在路徑 ``` $ pwd ``` ### `cd`:切換目錄 ``` $ cd Documents ``` > 進入目前路徑下的Documents目錄 ``` $ cd ~ ``` > 回到目前帳號的家目錄 ``` $ cd .. ``` > 跳到上一層目錄 ``` $ cd / ``` > 跳到根目錄 ### `cp`:複製檔案 ``` $ cp a.txt b.txt ``` > 將a.txt內容在同一個目錄下複製一份為b.txt(會同時存在a.txt和b.txt兩個檔案) ``` $ cp * ../ ``` > 將目前目錄下的所有檔案都複製一份到上一層目錄 ``` $ cp a.txt /tmp ``` > 將a.txt複製到/tmp目錄下。 ### `mv`:搬移檔案 ``` $ mv a.txt b.txt ``` > 將a.txt搬移到b.txt,因為在同一目錄下,所以又可以當成幫檔案更改名稱 ``` $ mv a.txt /tmp ``` > 將a.txt檔案搬移到/tmp目錄下。 ### `rm`:刪除檔案 ``` $ rm a.txt ``` > 刪除a.txt檔案 ``` $ rm * ``` > 刪除目前目錄下的所有檔案(使用時須小心,因為不可復原)。 ### `mkdir`:建立目錄 ``` $ mkdir src ``` > 在目前目錄下建立一個名為src的目錄 ``` $ mkdir -p src/cmd/main ``` > 在目前目錄下建立src目錄下的cmd目錄下的main目錄,如果src或cmd目錄不存在會一併被建立。 ### `rmdir`:刪除目錄 ``` $ rmdir src ``` > 刪除src目錄,刪除時src目錄必須為空,否則會刪除失敗。 ### `touch`:新增空白檔案 ``` $ touch main.py ``` > 新增一個main.py檔案,檔案內容為空。 ### `cat`:將文件內容顯示在終端機畫面上 ``` $ cat README.txt ``` > 將README.txt檔案內容顯示到終端機上 ### `head`:指定列出檔案前幾行的內容 ``` $ head -n 10 README.txt ``` > 列出README.txt前面10行內容 ### `tail`:顯示檔案最後幾行內容 ``` $ tail -n 10 README.txt ``` > 列出README.txt最後10行內容 ### `grep`:搜尋檔案內容 ``` $ cat README.txt | grep aaron ``` > 找出README.txt檔案內有出現aaron字串的那一行內容。 ``` $ grep -rn "aaron" * ``` - *:表示當前目錄所有檔案,也可以指定檔名 - -r:包含子目錄(遞迴搜尋) - -n:顯示行號 - -i:忽略大小寫 > 找出內容有aaron字串的所有檔案。 ### `find`:尋找檔案 #### 格式 ```bash $ find /path/to/dir -name "filename" ``` ``` $ find /etc -name "httpd.conf" ``` > 找出/etc目錄下叫httpd.conf的檔案 ``` $ find . -name 'log*' ``` > 找出所有log開頭的檔名,需注意`*`萬用字元必須搭配左右兩邊的單引號才有效。 ## 檔案編輯 ### `vim`:在終端機編輯檔案 ``` $ vim README.txt ``` > 打開README.txt檔案並編輯。 > > 打開後指令, `i` 進入編輯模式,`ESC` 離開編輯模式,`:q` 不儲存離開,`:wq` 儲存離開,`:q!` 強制離開。 ## 系統管理 ### `crontab`:定時任務 ``` # ┌───────────── 分鐘 (0 - 59) # │ ┌─────────── 小時 (0 - 23) # │ │ ┌───────── 日 (1 - 31) # │ │ │ ┌─────── 月 (1 - 12) # │ │ │ │ ┌───── 星期幾 (0 - 7,0 是週日,6 是週六,7 也是週日) # │ │ │ │ │ # * * * * * /path/to/command ``` 範例: ``` # 每天早上 8 點 30 分執行 30 08 * * * /home/gtwang/script.sh --your --parameter # 每週日下午 6 點 30 分執行 30 18 * * 0 /home/gtwang/script.sh --your --parameter # 每週日下午 6 點 30 分執行 30 18 * * Sun /home/gtwang/script.sh --your --parameter # 每年 6 月 10 日早上 8 點 30 分執行 30 08 10 06 * /home/gtwang/script.sh --your --parameter # 每月 1 日、15 日、29 日晚上 9 點 30 分各執行一次 30 21 1,15,29 * * /home/gtwang/script.sh --your --parameter # 每隔 10 分鐘執行一次 */10 * * * * /home/gtwang/script.sh --your --parameter # 從早上 9 點到下午 6 點,凡遇到整點就執行 00 09-18 * * * /home/gtwang/script.sh --your --parameter ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up