在 Linux 中如何使用命令行管理文件
在如 GNOME 或 KDE 等圖形桌面中使用鼠標(biāo)點(diǎn)擊管理文件。你點(diǎn)擊文件的圖標(biāo),將它移動(dòng)到另一個(gè)文件夾中,或者移動(dòng)到回收站里。圖形交互使得桌面計(jì)算機(jī)便于使用。
但是在 Linux 中,我們并不總是與圖形界面交互。如果你在服務(wù)器上工作,那么你可能需要使用命令行來(lái)解決問(wèn)題。即使像我這樣使用桌面的用戶,可能也更喜歡使用終端和命令行和系統(tǒng)交互。我傾向于通過(guò)命令行運(yùn)行命令來(lái)管理我的文件:
使用 ls 顯示文件
ls
對(duì)任何使用命令行的人來(lái)說(shuō),如果不知道有什么文件,工作將很難進(jìn)行下去。??ls 命令??? 會(huì)羅列出文件夾中的文件。例如,要查看 Web 服務(wù)器的文檔根目錄 ??/var/www/html?
? 中的內(nèi)容,你可以鍵入:
ls /var/www/html
大多數(shù)情況,我使用 ??ls?
?? 命令查看當(dāng)前文件夾內(nèi)的文件。只需要輸入 ??ls?
?? 即可查看所有文件。例如,當(dāng)我在我的網(wǎng)頁(yè)項(xiàng)目的根目錄時(shí),輸入 ??ls?
? 后可以看到這些:
$ ls
about fontawesome fonts index.php styles
docs fontawesome.zip images prism
??ls?
?? 命令包含 60 種選項(xiàng),可以以任意方式顯示文件和目錄。??-l?
? 是一個(gè)很有用的選項(xiàng),可以詳細(xì)的顯示文件,包含權(quán)限、文件大小以及所有者等信息。
$ 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é)為單位,或許看起來(lái)有點(diǎn)吃力。想要以方便我們閱讀的格式查看文件大小,只需要添加 ??-h?
?? 或 ??--human-readable?
?? 選項(xiàng),能以 ??G?
?? 、??M?
?? 、??K?
? 為單位顯示文件大小。
現(xiàn)在,??ls?
?? 將 zip 文件顯示為 ??6.1M?
?? 或剛剛超過(guò) 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
當(dāng)顯示出文件后,需要檢查文件夾中的內(nèi)容。使用很少幾個(gè)命令即可做到。以我的 Web 服務(wù)器中的 ??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
這些文件是什么?我不知道,幸運(yùn)的是該目錄中有一個(gè) ??readme.txt?
?? 文件,我猜它包含了這個(gè)項(xiàng)目目錄中文件的描述。如果該文件不是很長(zhǎng),那我可以使用 ??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.
如果這個(gè)文件很長(zhǎng),則可以使用 ??head?
?? 命令查看文件的前幾行。該命令通常顯示前 10 行的內(nèi)容,不過(guò)你也可以使用 ??-n?
?? 或者 ??--lines?
?? 選項(xiàng)來(lái)指定行數(shù)。例如,使用這兩個(gè) ??head?
?? 命令的選項(xiàng)查看 ??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
如果我想要查看文件的最后幾行的內(nèi)容,可以以相同方式使用 ??tail?
?? 命令。同樣,這兩個(gè) ??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?
?? 命令在服務(wù)器中查看日志文件十分有用。我有一個(gè)小型 Web 服務(wù)器運(yùn)行在家庭網(wǎng)絡(luò),用于在網(wǎng)站上線前的測(cè)試。最近我發(fā)現(xiàn) Web 服務(wù)器的日志很長(zhǎng),我好奇它存在多久了。使用 ??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?
?? 文件并不屬于該項(xiàng)目。讓我們用 ??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?
?? 命令刪除的文件會(huì)直接刪除,而不會(huì)放入回收站,因此它很危險(xiǎn)。安裝 ??trash?
?? 命令比較安全,例如 ??trashy??? 或 ??trash-cli?? 命令。這樣你可以在文件永久刪除前,將其放入暫存區(qū)。
$ rm docs/lorem.txt
只需很少的命令即可在命令行中管理文件。使用 ??ls?
?? 命令顯示目錄中的文件,使用 ??cat?
?? 、??head?
?? 和 ??tail?
?? 命令查看文件中的內(nèi)容。使用 ??rm?
?? 或者安全的 ??trash?
?? 命令將不需要的文件刪除。這五個(gè)命令足以幫你在 Linux 中管理文件。想要了解更多,可以使用 ??--help?
?? 選項(xiàng)來(lái)查看如何使用這些命令。例如使用 ??ls --help?
?? 查看 ??ls?
? 命令如何使用。