在 Linux 中如何使用命令行管理文件
在如 GNOME 或 KDE 等圖形桌面中使用鼠標點擊管理文件。你點擊文件的圖標,將它移動到另一個文件夾中,或者移動到回收站里。圖形交互使得桌面計算機便于使用。
但是在 Linux 中,我們并不總是與圖形界面交互。如果你在服務器上工作,那么你可能需要使用命令行來解決問題。即使像我這樣使用桌面的用戶,可能也更喜歡使用終端和命令行和系統(tǒng)交互。我傾向于通過命令行運行命令來管理我的文件:
使用 ls 顯示文件
ls
對任何使用命令行的人來說,如果不知道有什么文件,工作將很難進行下去。??ls 命令??? 會羅列出文件夾中的文件。例如,要查看 Web 服務器的文檔根目錄 ??/var/www/html?
? 中的內容,你可以鍵入:
ls /var/www/html
大多數(shù)情況,我使用 ??ls?
?? 命令查看當前文件夾內的文件。只需要輸入 ??ls?
?? 即可查看所有文件。例如,當我在我的網(wǎng)頁項目的根目錄時,輸入 ??ls?
? 后可以看到這些:
$ ls
about fontawesome fonts index.php styles
docs fontawesome.zip images prism
??ls?
?? 命令包含 60 種選項,可以以任意方式顯示文件和目錄。??-l?
? 是一個很有用的選項,可以詳細的顯示文件,包含權限、文件大小以及所有者等信息。
$ ls -l
total 6252
drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 about
drwxr-xr-x. 2 jhall jhall 4096 Jun 25 16:35 docs
drwxr-xr-x. 2 jhall jhall 4096 Jun 7 00:00 fontawesome
-rw-r--r--. 1 jhall jhall 6365962 Jun 2 16:26 fontawesome.zip
drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 fonts
drwxr-xr-x. 2 jhall jhall 4096 Jun 25 13:03 images
-rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php
drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 prism
drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 styles
上方的文件大小是以字節(jié)為單位,或許看起來有點吃力。想要以方便我們閱讀的格式查看文件大小,只需要添加 ??-h?
?? 或 ??--human-readable?
?? 選項,能以 ??G?
?? 、??M?
?? 、??K?
? 為單位顯示文件大小。
現(xiàn)在,??ls?
?? 將 zip 文件顯示為 ??6.1M?
?? 或剛剛超過 6 MB 的文件大小,而不是 ??6365962?
?。
$ ls -l --human-readable
total 6.2M
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 about
drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 16:35 docs
drwxr-xr-x. 2 jhall jhall 4.0K Jun 7 00:00 fontawesome
-rw-r--r--. 1 jhall jhall 6.1M Jun 2 16:26 fontawesome.zip
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 fonts
drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 13:03 images
-rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 prism
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 styles
使用 cat、head 和 tail 命令查看文件
cat
head
tail
當顯示出文件后,需要檢查文件夾中的內容。使用很少幾個命令即可做到。以我的 Web 服務器中的 ??docs?
? 文件夾為例:
$ ls docs
chapter1.tex chapter4.tex chapter7.tex lorem.txt
chapter2.tex chapter5.tex chapter8.tex readme.txt
chapter3.tex chapter6.tex chapter9.tex workbook.tex
這些文件是什么?我不知道,幸運的是該目錄中有一個 ??readme.txt?
?? 文件,我猜它包含了這個項目目錄中文件的描述。如果該文件不是很長,那我可以使用 ??cat?
? 命令查看它:
$ cat docs/readme.txt
This is the workbook for the C programming self-paced
video series. The main file is the workbook.tex file,
which includes the other chapters.
如果這個文件很長,則可以使用 ??head?
?? 命令查看文件的前幾行。該命令通常顯示前 10 行的內容,不過你也可以使用 ??-n?
?? 或者 ??--lines?
?? 選項來指定行數(shù)。例如,使用這兩個 ??head?
?? 命令的選項查看 ??lorem.txt?
? 文件的前三行:
$ head -n 3 docs/lorem.txt
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Nullam at ligula eget nunc feugiat pharetra. Nullam
nec vulputate augue. Suspendisse tincidunt aliquet
$ head --lines=3 docs/lorem.txt
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Nullam at ligula eget nunc feugiat pharetra. Nullam
nec vulputate augue. Suspendisse tincidunt aliquet
如果我想要查看文件的最后幾行的內容,可以以相同方式使用 ??tail?
?? 命令。同樣,這兩個 ??tail?
?? 命令分別顯示 ??lorem.txt?
? 文件的最后三行:
$ tail -n 3 docs/lorem.txt
egestas sodales. Vivamus tincidunt ex sed tellus tincidunt
varius. Nunc commodo volutpat risus, vitae luctus lacus
malesuada tempor. Nulla facilisi.
$ tail --lines=3 docs/lorem.txt
egestas sodales. Vivamus tincidunt ex sed tellus tincidunt
varius. Nunc commodo volutpat risus, vitae luctus lacus
malesuada tempor. Nulla facilisi.
使用 ??head?
?? 和 ??tail?
?? 命令在服務器中查看日志文件十分有用。我有一個小型 Web 服務器運行在家庭網(wǎng)絡,用于在網(wǎng)站上線前的測試。最近我發(fā)現(xiàn) Web 服務器的日志很長,我好奇它存在多久了。使用 ??head?
? 命令,我只打印第一行,可以看到該日志文件是在 2020 年 12 月創(chuàng)建的:
$ ls -l --human-readable /var/log/httpd
total 13M
-rw-r--r--. 1 root root 13M Jun 25 16:23 access_log
-rw-r--r--. 1 root root 45K Jun 2 00:00 error_log
$ sudo head -n 1 /var/log/httpd/access_log
10.0.0.177 - - [05/Dec/2020:14:58:35 -0600] "GET / HTTP/1.1" 403 5564 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
使用 rm 命令刪除文件
rm
在包含示例文本文件的目錄中,??lorem.txt?
?? 文件中包含 “亂數(shù)假文Lorem Ipsum” 文本。這只是印刷行業(yè)中使用的虛擬文本,因此 ??lorem.txt?
?? 文件并不屬于該項目。讓我們用 ??rm?
? 命令刪除這樣的文件:
$ ls docs
chapter1.tex chapter4.tex chapter7.tex lorem.txt
chapter2.tex chapter5.tex chapter8.tex readme.txt
chapter3.tex chapter6.tex chapter9.tex workbook.tex
$ rm docs/lorem.txt
$ ls docs
chapter1.tex chapter4.tex chapter7.tex readme.txt
chapter2.tex chapter5.tex chapter8.tex workbook.tex
chapter3.tex chapter6.tex chapter9.tex
由于用 ??rm?
?? 命令刪除的文件會直接刪除,而不會放入回收站,因此它很危險。安裝 ??trash?
?? 命令比較安全,例如 ??trashy??? 或 ??trash-cli?? 命令。這樣你可以在文件永久刪除前,將其放入暫存區(qū)。
$ rm docs/lorem.txt
只需很少的命令即可在命令行中管理文件。使用 ??ls?
?? 命令顯示目錄中的文件,使用 ??cat?
?? 、??head?
?? 和 ??tail?
?? 命令查看文件中的內容。使用 ??rm?
?? 或者安全的 ??trash?
?? 命令將不需要的文件刪除。這五個命令足以幫你在 Linux 中管理文件。想要了解更多,可以使用 ??--help?
?? 選項來查看如何使用這些命令。例如使用 ??ls --help?
?? 查看 ??ls?
? 命令如何使用。