如何 Save Linux 命令输出到图像或文本文件

您是否曾经遇到过想将 Linux 命令的输出发送给您的同事或朋友以寻求帮助的情况? 这个简单的 Linux hack 肯定会对你有用。 您可以将 Linux 命令输出保存到图像或文件中。 你所需要的只是 ImageMagick. 当您需要将输出发送给技术支持人员或同事时,这会很有帮助。

Save Linux 命令输出到图像

首先安装 ImageMagick 工具。 它在大多数 Linux 发行版的默认存储库中可用。

为了 example,要在 Arch Linux 及其衍生产品中安装 ImageMagick,请运行:

$ sudo pacman -S imagemagick

在 Debian、Ubuntu 和其他基于 DEB 的系统上,您可以安装它,如下所示。

$ sudo apt-get install imagemagick

在 Fedora:

$ sudo dnf install ImageMagick

在 CentOS 上:

$ sudo yum install ImageMagick

在 openSUSE 上:

$ sudo zypper install ImageMagick

现在,要将任何 Linux 命令的输出保存到映像文件,只需运行以下命令:

$ ip a | convert label:@- myipaddress.png

上述命令会将 ifconfig 命令输出保存到一个 Image 中,并保存在当前工作目录中。 让我们整理一下上面的命令,看看每个选项的作用。

  • ipa 将显示您的 Linux 系统的 IP 地址。
  • 转变 命令将输出保存到图像。
  • 标签:@- myipaddress.png 将命令输出保存到名为 我的IP地址.png.

这是我的 Ubuntu 18.04 桌面系统中上述命令的输出。

这是另一个。 我将我的 Linux 内核输出保存到图像中。

$ uname -a | convert label:@- mylinuxkernel.png

样本输出:

我们在上面看到的是我们已经将命令的输出保存在一个图像文件中。我们也可以将输出保存在一个现有的图像文件中。 为此,请运行:

$ convert -font -misc-fixed-*-*-*-*-*-*-*-*-*-*-*-* -fill black -draw "text 270,260 " `lsb_release -a` "" image.png systemdetails.png

该命令将打印输出 “lsb_release -a” 命令到一个名为的图像 图像.png 并用新名称保存 “系统详细信息.png”.

以下是上述命令的输出:

Save  使用 Convert 命令将 Linux 命令输出到图像文件

很容易,不是吗? 您可以将任何命令的输出保存在图像文件中,并将其发送给任何可以帮助您修复系统的人。

故障排除

在最近的 Ubuntu Linux 发行版中,出于安全原因,某些转换操作受到限制。 如果您在 Ubuntu OS 中尝试上述命令,您可能会遇到以下错误消息:

convert-im6.q16: not authorized `@-' @ error/property.c/InterpretImageProperties/3516.
convert-im6.q16: no images defined `myipaddress.png' @ error/convert.c/ConvertImageCommand/3258.

在这种情况下,您需要编辑 策略.xml 配置文件并更改策略。

$ sudo nano /etc/ImageMagick-6/policy.xml

找到以下行:

<policy domain="path" rights="none" pattern="@*" />

注释掉或删除以下行:

[...]
<!--  <policy domain="path" rights="none" pattern="@*"/> -->
[...]

Save 和 close 文件。 现在您可以将命令保存在图像文件中。

Save Linux 命令输出到文本文件

我们知道如何将命令的输出保存到图像中。 我们也可以将 Linux 命令的输出保存到文件中。

为了 example保存 “ip地址” 命令的输出到一个名为 我的IP地址.txt, 跑:

$ ip addr > myipaddress.txt

要验证它,请使用您喜欢的文本查看器查看文本文件。 或者,我们可以使用下面的“cat”命令。

$ cat myipaddress.txt

以下命令会将我的 pacman.log 保存到一个名为 我的日志.txt.

$ tail -f /var/log/pacman.log  > mylogs.txt

而且,我们可以使用以下命令轻松保存 IP 详细信息:

$ ip a > mynetworkdetails.txt

您可能希望将命令的输出写入多个文件。 这是如何做到的。

$ uname -a | tee file1 file2

上面的命令将写入输出 “未命名-a” 命令 文件 1文件2. 如果文件不存在,它将创建它们。

默认情况下,它将覆盖 file1 和 file2 的内容。 如果要将输出附加到现有内容,请使用 -一种 像下面这样的标志。

$ ip a | tee -a file1 file2

此命令不会覆盖 file1 和 file2 的现有内容。 相反,它只会将 ifconfig 命令的输出附加到 file1 和 file2。 换句话说,这两个文件现在具有“uname -a”和“ip a”命令的输出。

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!