4

在 Linux 中如何使用命令行管理文件

 1 year ago
source link: https://www.51cto.com/article/716332.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
e6cb523828974dd0fe5895f4c4d7f2fe5b5278.jpg

在如 GNOME 或 KDE 等图形桌面中使用鼠标点击管理文件。你点击文件的图标,将它移动到另一个文件夹中,或者移动到回收站里。图形交互使得桌面计算机便于使用。

但是在 Linux 中,我们并不总是与图形界面交互。如果你在服务器上工作,那么你可能需要使用命令行来解决问题。即使像我这样使用桌面的用户,可能也更喜欢使用终端和命令行和系统交互。我倾向于通过命令行运行命令来管理我的文件:

使用 ls 显示文件

ls

对任何使用命令行的人来说,如果不知道有什么文件,工作将很难进行下去。​​ls 命令​​​ 会罗列出文件夹中的文件。例如,要查看 Web 服务器的文档根目录 ​​/var/www/html​​ 中的内容,你可以键入:

    ls /var/www/html

大多数情况,我使用 ​​ls​​​ 命令查看当前文件夹内的文件。只需要输入 ​​ls​​​ 即可查看所有文件。例如,当我在我的网页项目的根目录时,输入 ​​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

上方的文件大小是以字节为单位,或许看起来有点吃力。想要以方便我们阅读的格式查看文件大小,只需要添加 ​​-h​​​ 或 ​​--human-readable​​​ 选项,能以 ​​G​​​ 、​​M​​​ 、​​K​​ 为单位显示文件大小。

现在,​​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​​​ 选项来指定行数。例如,使用这两个 ​​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 服务器运行在家庭网络,用于在网站上线前的测试。最近我发现 Web 服务器的日志很长,我好奇它存在多久了。使用 ​​head​​ 命令,我只打印第一行,可以看到该日志文件是在 2020 年 12 月创建的:

    $ 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​​​ 文件中包含 “乱数假文Lorem Ipsum” 文本。这只是印刷行业中使用的虚拟文本,因此 ​​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​​ 命令。这样你可以在文件永久删除前,将其放入暂存区。

    $ rm docs/lorem.txt

只需很少的命令即可在命令行中管理文件。使用 ​​ls​​​ 命令显示目录中的文件,使用 ​​cat​​​ 、​​head​​​ 和 ​​tail​​​ 命令查看文件中的内容。使用 ​​rm​​​ 或者安全的 ​​trash​​​ 命令将不需要的文件删除。这五个命令足以帮你在 Linux 中管理文件。想要了解更多,可以使用 ​​--help​​​ 选项来查看如何使用这些命令。例如使用 ​​ls --help​​​ 查看 ​​ls​​ 命令如何使用。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK