首页 >运维 >Nginx >有趣的宝藏!六个独特而惊人的 Linux 实用工具

有趣的宝藏!六个独特而惊人的 Linux 实用工具

PHPz
PHPz转载
2023-06-15 12:59:461023浏览

我们将对 /usr/bin 进行深入探索,并发掘一些更加有趣的宝藏。尽管看起来可能有些过时,但我们将探索一些独特有趣的程序,它们在当今仍然非常实用。

让我们重上探险之路,继续发现 Linux 为我们提供的更多精彩之处。

1、fold

我们拥有一个非常实用的小工具,可以帮助您按照指定的长度将输入行进行换行。您可以通过指定字节数或空格数来定义长度。使用 fold 工具,您可以快速处理具有不同长度的文件。

例如,假设我们有一行输入,长度为六个字符。我们希望将每行限制为只有五个字符,并将剩余部分换行。使用 fold,我们可以使用以下命令实现:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ echo "12345678" | fold -w 7

相应的输出应为:

12345678

有趣的宝藏!六个独特而惊人的 Linux 实用工具

现在我们可以快速将一些文本符合我们的长度限制。这在长文本流分解或对代码或其他配置文件施加行长度限制时非常有用。

详细了解使用 fold 的更多细节,请查看维基页面。

2、column

这是另一个非常有用的格式化工具。您可以通过命令行使用column工具来创建列,甚至生成整个表格,以方便文本输出。

虽然使用awk等工具也可以实现相同的功能,但 column工具专为此特定用途而设计,因此使用起来非常简单,而且记住其语法也很容易。

如果我们想根据几行输入构建一个简单的表格,可以执行以下命令:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ echo -e "one two three\n1 2 3\n93139 777777 999999" | column -t

该命令的输出应如下所示:

onetwo three12 393139777777999999

有趣的宝藏!六个独特而惊人的 Linux 实用工具

正如您所见,输出被自动格式化为整齐对齐的列。一个小表格会在输出中形成,根据每行输入的长度自动调整其大小。

如果您在命令行上处理稍长的非结构化数据集,并希望快速创建一些表格形式,这个工具将会帮上大忙。

column 的 man 页面提供了更多用法细节和处理不同输入的独特方法。

3、sg

您可能听说过 newgrp 命令。有一种更简便的工具能够达到相同的效果,它不需要用其他组的身份来执行命令。sg 实用程序允许您使用指定的另一个组的权限直接执行命令。只要指定一个组和一个命令,就不用使用管道或更改现有的 Shell 组。

要使用 sudo 组的权限执行 ls 命令,可以输入以下命令:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ sg sudo ls

有趣的宝藏!六个独特而惊人的 Linux 实用工具

这将切换 ls 命令以使用 sudo 组的权限运行。一旦命令执行完毕,您将返回到执行前的正常组权限。

sg 命令对于测试新的组权限或快速切换上下文以从另一个组运行程序非常有帮助。

详细了解使用信息,请参阅 sg 的 man 页面

4、xxd

xxd 实用程序是在 Linux 上执行十六进制转储的众多方法之一。有许多具有类似功能的实用程序,但 xxd 程序略有不同。您可以使用这个实用程序来进行十六进制的转储和还原,其额外的优势在于此。还有许多可配置的标志,您还可以对二进制文件执行修补操作。

假设我们想对以下名为 linuxmi  的文件进行十六进制转储:

linuxmi

我们只需提供输入,xxd 将自动将文件编码到 stdout(对于较短的输入文件,这是一个很方便的默认功能):

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ xxd linuxmi00000000: 6c69 6e75 786d 690a

有趣的宝藏!六个独特而惊人的 Linux 实用工具

您还可以通过传递一个额外的文件名参数来直接将输出发送到转储文件:

xxd linuxmi 93139

有趣的宝藏!六个独特而惊人的 Linux 实用工具

这将将十六进制转储发送到名为 93139 的文件中。

xxd 的 man 页面可以在此处找到。

5、pwdx

这个实用的小程序源于广为人知、备受喜爱的古老 PS 实用程序家族。pwdx 实用程序可以让您获取运行中进程的当前工作目录。只要您提供进程的 PID,它就能告诉您该进程的工作目录所在位置。

假设我们想找出 cron 进程在我们的机器上的工作目录。我们可以通过使用 ps 命令搜索并获取其 PID,示例如下:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ ps aux | grep cron

有趣的宝藏!六个独特而惊人的 Linux 实用工具

在这里,我们可以看到cron的PID是612。这时,我们只需将该进程的PID传递给pwdx,就能确定它的工作目录

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ sudo pwdx 691

如下图:

有趣的宝藏!六个独特而惊人的 Linux 实用工具

To access information about cron, you need to use sudo as it is a system process.。我们成功获取了cron的当前工作目录,即 /var/spool/cron,在命令执行完成后。当您需要跟踪目录范围问题时,这将是一个非常有价值的故障排除工具。您可以使用 pwdx 快速检查确定一个进程认为其应从哪个位置运行,以达到准确的目的。

这里查看 pwdx 的 man 页面。

6、write

这个强大的小程序可能不会像您一开始想的那样执行某个特定任务。这个存在于Linux中已经有几十年了,可以追溯到1975年Unix的第6版。

The write utility actually allows you to send messages to other users on the same system.。您可以针对任何其他登录的用户发送消息。输入您的用户名,然后您可以进入一个交互式shell,用来书写任何您想要的文本。您键入的所有内容(包括换行符)都将出现在目标用户的控制台上。

这里是一个快速示例:

write <用户名>

这将使您进入一个交互式控制台,以向相应的用户发送消息。请记住,这是一种相当侵入性的与其他用户通信的方式。这将使他们的终端显示您输入的文本,而无需任何警告或提示。对他们来说,这将出现在他们的终端上,就像自动出现的信息一样。由于这是单向通信,他们也无法回复。

虽然目前有更优秀的处理用户间消息传递的方法,但这仍然是计算历史的一部分。我相信今天仍然可以有一些创造性的用途。

这里查看官方的 man 页面。

以上是有趣的宝藏!六个独特而惊人的 Linux 实用工具的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:51cto.com。如有侵权,请联系admin@php.cn删除