标签 文件管理 下的文章

如果你更喜欢用终端与系统交互,请了解一下我最喜欢的管理文件的命令。

在如 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 选项,能以 GMK 为单位显示文件大小。

$ 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

现在,ls 将 zip 文件显示为 6.1M 或刚刚超过 6 MB 的文件大小,而不是 6365962

使用 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.

使用 headtail 命令在服务器中查看日志文件十分有用。我有一个小型 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 命令比较安全,例如 trashytrash-cli 命令。这样你可以在文件永久删除前,将其放入暂存区。

$ rm docs/lorem.txt

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


via: https://opensource.com/article/22/7/manage-files-linux-command-line

作者:Jim Hall 选题:lkxed 译者:Donkey 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

试试这个轻量级的开源工具,不用离开终端就可以预览文件。

Filing cabinet for organization

查看你的文件和文件夹的最基本方法是使用命令 lsll。但是有时候,我不仅想看到文件的元数据,还想一目了然地看到文件的内容。为此,我使用 ranger。

如果你喜欢在控制台中工作,并使用 Vim 或 Vi,而且你不想因为任何原因离开你的终端,那么 ranger 就是你最好的新朋友。ranger 是一个精简的文件管理器,它不仅可以让你浏览文件,还可以预览它们。ranger 与 rifle 捆绑在一起,rifle 是一个文件执行器,可以有效地选择与特定文件类型相关的程序。

在 Linux 上安装 ranger

ranger 可以在 Fedora 或任何基于 RPM 的发行版中安装,方法是运行:

$ sudo dnf install ranger

ranger 也可以用于 其他发行版和 macOS

第一次使用 ranger

作为一个用户,你可以在你喜欢的终端上简单地输入 ranger 来启动 ranger。可以用方向键浏览。这张截图是一个很好的例子,我可以预览存储在 Kernel-tests 中的 config.example 文件的代码。

Screenshot of terminal showing config.example highlighted and a preview of the file in the terminal to the right

选中任何文件并按下 F4 键,就可以打开你的默认编辑器,让你立即编辑这些文件!

图像和视频怎么办?

使用 rifle 和 ranger 可以让你快速找到与某一文件相关的程序。将鼠标悬停在图片上,然后试图打开它是非常简单的,只要点击回车即可。下面是它的样子:

Screenshot of a PNG file preview over a terminal window

在一个图像文件上点击 i 会给用户提供所有的 EXIF 数据。点击 Shift+Enter 将打开这个 PDF 文件。

A screenshot showing a preview of a PDF file (tickets to a museum) floating over the terminal window

同样的组合键将在系统默认的支持该编解码器的视频播放器中打开并开始播放视频。下面的例子是一个 mp4 视频,它在 VLC 上播放得很好。

Screenshot of a Bugcrowd University Cross Site Scripting video in VLC media player, previewed over the terminal

文件操作

除非 Vim 用户另有配置,否则下面的键绑定工作良好。

  • j:下移
  • k:上移
  • h: 移动到父目录
  • gg:移到列表的顶部
  • i:预览文件
  • r:打开文件
  • zh:查看隐藏文件
  • cw:重命名当前文件
  • yy:复制文件
  • dd:剪切文件
  • pp:粘贴文件
  • u:撤销
  • z:改变设置
  • dD:删除文件

控制台命令

有时我在起草文章时,有一个文件夹包含某个软件的截图。通过点击空格选择或标记文件,然后输入 :bulkrename,可以帮助我把所有奇怪的时间戳变成如:lorax1、lorax2 等等。下面是一个例子。

Screenshot of terminal showing timestamped files that can be renamed with the bulkrename command

其他有用的控制台命令包括:

  • :openwith:用你选择的程序打开一个选择的文件
  • :touch FILENAME:创建一个文件
  • :mkdir FILENAME:创建一个目录
  • :shell <command>:在 shell 中运行一个命令
  • :delete:删除文件

在 tty2/3/4 中能工作吗?

作为一个从事质量保证(QA)工作的人,我发现搜索日志和阅读日志从未如此简单。即使我的 Gnome 显示管理器崩溃了,我也可以切换到我的 tty2,用我的用户名和密码登录,并以超级用户权限启动 ranger,然后我就可以尽情地探索了!

ranger 是一个很好的工具,可以在不离开终端的情况下处理文件。ranger 是精简的,也是可定制的,所以不妨一试吧!

图片来源:(Sumantro Mukherjee,CC BY-SA 4.0)


via: https://opensource.com/article/22/7/manage-files-linux-terminal-ranger

作者:Sumantro Mukherjee 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出