Linux 10 个鲜为人知的命令
Linux 是一种流行的操作系统,因其灵活、稳定和安全而被广泛使用。它还以其命令行界面而闻名,该界面为用户提供了一种强大的方式与系统交互。虽然许多 Linux 命令广为人知且被广泛使用,但也有一些鲜为人知的命令在某些任务中非常有用。在本文中,我们将探讨其中一些鲜为人知的 Linux 命令。
xargs
xargs 命令用于执行从标准输入读取参数的命令。当您需要对大量文件或目录执行命令时,此命令特别有用。例如,假设您有一个包含数千个文件的目录,需要将其移动到另一个位置。与其为每个文件键入命令,不如使用 xargs 命令一次性完成。以下是一个示例 -
$ find . -type f -name '*.txt' | xargs -I{} mv {} /tmp
在此示例中,find 命令用于搜索当前目录及其子目录中所有扩展名为 '.txt' 的文件。然后将此命令的输出通过管道传递给 xargs,xargs 从标准输入读取每个文件名并将其作为参数传递给 mv 命令。-I{} 选项告诉 xargs 将字符串 '{}' 替换为文件名。
tee
tee 命令用于将输出重定向到文件和标准输出 (stdout) 流。当您希望将命令的输出保存到文件并在终端屏幕上查看时,此命令特别有用。以下是一个示例 -
$ ls | tee output.txt
在此示例中,ls 命令列出当前目录及其子目录中的所有文件和目录。然后将此命令的输出通过管道传递给 tee,tee 将其保存到文件 output.txt 并将其显示在终端屏幕上。
Learn Linux/Unix in-depth with real-world projects through our Linux/Unix certification course. Enroll and become a certified expert to boost your career.
nl
nl 命令用于向文件添加行号。当您希望引用大型文件中的特定行时,此命令特别有用。以下是一个示例 -
$ nl myfile.txt
在此示例中,nl 命令向文件 myfile.txt 添加行号并在终端屏幕上显示输出。
watch
watch 命令用于以指定的时间间隔重复运行命令。当您希望实时监控命令的输出时,此命令特别有用。以下是一个示例 -
$ watch -n 1 'ls -l'
在此示例中,watch 命令每秒运行一次 ls -l 命令并在终端屏幕上显示输出。
sort
sort 命令用于按指定顺序对文件的行进行排序。当您希望对大型文件的内容进行排序时,此命令特别有用。以下是一个示例 -
$ sort -n myfile.txt
在此示例中,sort 命令按数字顺序对文件 myfile.txt 的行进行排序并在终端屏幕上显示输出。
split
split 命令用于将文件拆分为较小的片段。当您需要通过文件大小限制有限的网络传输大型文件时,此命令特别有用。以下是一个示例 -
$ split -b 1m bigfile.txt smallfile
在此示例中,split 命令将文件 bigfile.txt 拆分为每个 1 MB 的较小文件。生成的这些文件分别命名为 smallfileaa、smallfileab、smallfileac 等。
du
du 命令用于显示文件和目录的磁盘使用情况。当您想知道哪些文件或目录占用硬盘驱动器上最大空间时,此命令特别有用。以下是一个示例 -
$ du -sh *
在此示例中,du 命令显示当前目录中所有文件和目录的磁盘使用情况。-s 选项告诉 du 只显示每个文件或目录的总大小,-h 选项告诉它以人类可读的格式显示输出(例如“1.2G”而不是“1234567890”)。
comm
comm 命令用于逐行比较两个已排序的文件。当您想知道哪些行在两个文件中是公共的或哪些行是每个文件独有的时,此命令特别有用。以下是一个示例 -
$ comm file1.txt file2.txt
在此示例中,comm 命令比较文件 file1.txt 和 file2.txt 并显示三列输出:file1.txt 中独有的行、file2.txt 中独有的行以及两个文件中都共有的行。
df
df 命令用于显示文件系统上的可用和已用磁盘空间量。当您想知道硬盘驱动器或其他存储设备上还有多少可用空间时,此命令特别有用。以下是一个示例 -
$ df -h
在此示例中,df 命令显示计算机上每个文件系统的磁盘使用情况和可用空间。-h 选项告诉 df 以人类可读的格式显示输出。
rev
rev 命令用于反转文件每一行中字符的顺序。当您希望反转文件的内容时,此命令特别有用。以下是一个示例 -
$ rev myfile.txt
在此示例中,rev 命令反转文件 myfile.txt 中每一行中字符的顺序并在终端屏幕上显示输出。
timeout
timeout 命令用于在时间限制内执行命令。当您希望为可能无限期运行的命令设置时间限制时,此命令特别有用。以下是一个示例 -
$ timeout 10s sleep 20s
在此示例中,timeout 命令运行 sleep 命令 20 秒,但由于 timeout 命令设置的时间限制,在 10 秒后终止它。
tac
tac 命令用于以相反的顺序显示文件的内容,最后一行排在第一位,第一行排在最后一位。当您希望以相反的顺序查看文件或检查日志文件的内容时,此命令特别有用。以下是一个示例 -
$ tac access.log
在此示例中,tac 命令以相反的顺序显示文件 access.log 的内容。
yes
yes 命令用于重复输出字符串或字符。当您希望模拟用户输入或自动化需要大量重复的过程时,此命令特别有用。以下是一个示例 -
$ yes "yes" | rm -i *
在此示例中,yes 命令重复输出“yes”,它通过管道传递到带有 -i 选项的 rm 命令以确认删除当前目录中的每个文件。
pgrep
pgrep 命令用于根据其名称查找正在运行的进程的进程 ID (PID)。当您希望查找需要终止或监视的进程的 PID 时,此命令特别有用。以下是一个示例 -
$ pgrep firefox
在此示例中,pgrep 命令查找 Firefox 网页浏览器进程的 PID。
结论
Linux 是一种强大的操作系统,为用户提供了大量与系统交互的命令。虽然许多 Linux 命令广为人知且被广泛使用,但也有一些鲜为人知的命令在某些任务中非常有用。在本文中,我们探讨了一些鲜为人知的 Linux 命令,包括 xargs、tee、nl、watch、sort、split、du、comm、df 和 rev。通过学习和使用这些命令,您可以在使用 Linux 时变得更高效和有效。