前言
Linux 的進階用戶,基本上都是透過 Terminal 和指令/命令 (command) 來操控電腦運作的。
甚至有些電腦沒有熒幕,也只能用指令來控制,例如伺服器、raspberry pi等。
因此,如果你想更了解更多關於Linux或command line interface的操作,那麼就繼續看下去吧
介紹
其實電腦的指令大部分都是在進行文件目錄之間的處理,例如比如把文件 B 移動到 資料夾A, 新建文件 C, 改寫文件 B 的內容等等。
試想像有黑客入侵了你的電腦,多數就是為了找到你電腦裏重要的文件,然後複製過去他的電腦。
其實整個互聯網都是一個文件傳輸器,它能將你的網頁以文件的形式發送到你的電腦。
因此,學會如何在Linux擺弄文件十分重要。接下來的內容,我們就介紹一些基礎的處理文件方法:
以下內容會從 目錄管理、文件管理、資料夾管理、文件查看與編輯 方面進行介紹,讀者可從左邊目錄查詢相關指令內容
目錄管理
pwd 顯示目前目錄
打開Terminal,我們第一件事需要知道現在自己的路徑在哪,輸入pwd後按Enter即可立即查看
pwd 是 Print Working Directory 的縮寫,也就是顯示目前所在目錄的命令。
1 | root@icthk:~$ pwd |
ls 列出目錄資訊
1 | root@icthk:~/home/icthk$ ls |
透過輸入ls命令,可以看到我的目錄下有file1.txt文件和folder1資料夾
我們也可以給命令加上不同的參數,使用更進階的功能,例如
1)輸出詳細資訊 -l (long 的簡寫) 這個指令會打印出文件的權限、用戶名、文件大小、修改日期、文件名
1 | root@icthk:~/home/icthk$ ls -l |
2) 顯示所有文件 -a (all 的簡寫) 這裏會顯示隱藏的文件 (以.開頭的文件)
1 | $ ls -a |
3)人性化顯示 -lh (human) 這裡的文件大小使用了 K、MB、GB換算顯示,為了方便給人觀看
1 | $ ls -lh |
4)還有很多不同的功能,我們可以通過 –help 來查看
1 | $ ls --help |
cd 切換目錄
介紹完顯示目錄,和查看文件的命令之後,當然要試試如何去到另外一個目錄(地方)了,這裡我們會介紹cd指令
cd 就是change directory的簡稱,其實每次打開Terminal,它都會默認你在用戶目錄 (Home)路徑
而Terminal 中的 ~ $ 就是說你輸入指令將在 ~ 這個目錄下執行,而 ~ 這個符號代表的是你的 Home 目錄
想從 Home 去 Documents 這個資料夾的話,輸入下面的命令就可以了
1 | ~$ cd Downloads |
接著你會看到它在下一行跳出了以下這個東西,在 $ 前面的 ~/Documents 就說明你現在已經在 Documents 這個資料夾裡了,你現在要執行的命令將會在這個目錄下生效
1 | ~/Downloads$ |
接著我們來列舉其他常用的 cd 指令:
1)返回上一级目录
1 | ~/Documents$ cd .. |
2)前往子資料夾
1 | ~$ cd Documents/folder1/ |
3)返回你剛剛所在的目錄
1 | ~/Documents/folder1$ cd - |
4)向上返回兩次
1 | ~/Documents/folder1$ cd ../../ |
5)去往Home
1 | ~/Documents/folder1$ cd ~ |
6)去往任何一個資料夾(目錄),需要絕對路徑
1 | ~$ cd /home/icthk/Documents/folder1 |
文件管理
接下來就要介紹的功能是文件管理中最主要的 新建、複製、移動、移除功能
touch 新建
touch 的使用很簡單,我們先cd到 Documents 的資料夾,裏面已經有了 folder1 和 file1.txt文件了
如果我們想新建一個file2.txt文件的話,使用下面的語句就好,一個空文件就建立好了。
1 | $ touch file2.txt |
如果你想同時新建多個文件也是可以的
1 | $ touch file3.txt file4.txt file5.txt |
cp 複製
cp (copy) 是覆制文件或者資料夾的指令,常用的方式是從 “舊文件名” 複製出 “新文件名”
1)我們用之前建立好的 file1.txt 來舉例, 將 file1.txt 複製出 file1copy.txt
1 | $ cp file1.txt file1copy.txt |
2)複製到資料夾
1 | $ cp file1.txt folder1/ |
3)複製資料夾,需要加上 -r (recursive)
1 | $ cp -r folder1 folder2 |
4)複製多個指定文件,例如下面把file1copy和file2.txt 複製到 folder1/,它 會默認最後一個選項是複製去的資料夾
1 | $ cp file1copy.txt file2.txt folder1/ |
mv 移動(+重命名)
在了解了 cp 和 mv後就好理解多了,因為操作和概念大致相同
1)移動file1.txt文件到folder1資料夾
1 | $ mv file1.txt folder1/ |
2)重新命名文件
想像成移動文件到原來的地點,但是以不同的文件名,這樣=重命名!
1 | $ mv file1.txt file1rename.txt |
rm 移除文件
想要移除單個文件,我們可以使用 rm 命令來實現。但要注意,執行了 rm 以後是不能進行返回操作的
因此,在移除文件前必須要仔細確認,而且也別嘗試執行像這樣的操作 rm /,這會清空你的電腦!
1)移除單個文件
1 | $ rm file1.txt |
2)-i (interactive) 避免誤刪
避免直接刪除文件,我們在 cp 後面加一個選項 -i,在這句問句後面打上 “Yes”, “Y”, 或者任何大小寫形式的 “y” 和 “yes”,它將進行移除操作。直接回車或者打其他字母, 就會放棄這項操作。
1 | $ rm -i file1.txt |
3)-r (recursive) 移除資料夾
此命令可以一次移除資料夾以及資料夾內的文件,與rmdir不同
1 | $ rm -r folder1 |
資料夾管理
mkdir建立資料夾
mkdir (make directory) 照字面解釋就是創建一個資料夾的意思
1 | $ mkdir folder2 |
若想在folder2內再新建一個文件也是可以的
1 | $ mkdir folder2/folder3 |
rmdir 移除資料夾
rmdir (remove directory) 命令可移除資料夾,但前提是要移除的資料夾必須是空的,否則會失敗
1 | $ rmdir folder3 |
若要刪除整個資料夾(包括裡面的文件),需要使用 rm -r 命令
1 | $ rm -r folder3 |
查看以及編輯文件
接著,我們想要了解的是在 linux 中,怎樣可以查看和編輯文件內容,這裡將會介紹nano 和 cat 指令完成基本操作
nano 文字編輯工具
nano 是 linux自帶的一款文字編輯工具,我們使用它做為最基本的 terminal 端的文本編輯,甚至可以寫代碼 (比vi編輯器容易上手)
下面我們用 touch 創建一個txt文件,然後用nano編輯其內容
1 | $ nano script.txt |
然後輸入你想編輯的內容!按 “Ctrl + x” 來保存和退出,如果提示你保存,你就按一下 “y” 鍵,然後Enter確認文件名就可以保存了
cat 顯示文件內容
現在,我們可以用cat (catenate) 來顯示剛才編輯過的文件內容了
1 | $ cat script.txt |
而文件內容便會隨即顯示在Terminal中!