您是否曾经遇到过想将 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”.
以下是上述命令的输出:
很容易,不是吗? 您可以将任何命令的输出保存在图像文件中,并将其发送给任何可以帮助您修复系统的人。
故障排除
在最近的 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”命令的输出。
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!