Linuxコマンドの出力を同僚や友人に送って助けを求めたいという状況にあったことはありますか?この単純なLinuxハックは間違いなくあなたに役立ちます。 Linuxコマンドの出力を画像またはファイルに保存できます。必要なのはImageMagickだけです 。これは、出力をテクニカルサポート担当者または同僚に送信する必要がある場合に役立ちます。
Linuxコマンド出力を画像に保存
最初にImageMagickツールをインストールします。ほとんどのLinuxディストリビューションのデフォルトのリポジトリで利用できます。
たとえば、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コマンドの出力をイメージに保存し、現在の作業ディレクトリに保存します。上記のコマンドを詳しく見て、各オプションの機能を見てみましょう。
- ip a LinuxシステムのIPアドレスが表示されます。
- 変換 コマンドは出力を画像に保存します。
- label:@-myipaddress.png コマンド出力をmyipaddress.pngという名前の画像に保存します 。
これが私のUbuntu18.04デスクトップシステムでの上記のコマンドの出力です。
これがもう1つです。 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"の出力を出力します image.pngという画像へのコマンド 新しい名前で保存します"systemdetails.png" 。
上記のコマンドの出力は次のとおりです。
とても簡単ですね。コマンドの出力を画像ファイルに保存して、システムの修正を手伝ってくれる人に送信できます。
トラブルシューティング
最近のUbuntuLinuxディストリビューションでは、セキュリティ上の理由から特定の変換操作が制限されています。 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.
その場合は、 policy.xmlを編集する必要があります 構成ファイルを作成し、ポリシーを変更します。
$ sudo nano /etc/ImageMagick-6/policy.xml
次の行を見つけます:
<policy domain="path" rights="none" pattern="@*" />
コメントアウトするか、次の行を削除します:
[...] <!-- <policy domain="path" rights="none" pattern="@*"/> --> [...]
ファイルを保存して閉じます。これで、コマンドを画像ファイルに保存できるようになりました。
Linuxコマンド出力をテキストファイルに保存
コマンドの出力を画像に保存する方法を知っています。 Linuxコマンドの出力をファイルに保存することもできます。
たとえば、 "ip addr"を保存するには myipaddress.txtというファイルへのコマンドの出力 、実行:
$ ip addr > myipaddress.txt
確認するには、お気に入りのテキストビューアを使用してテキストファイルを表示します。または、以下のように「cat」コマンドを使用して実行できます。
$ cat myipaddress.txt
次のコマンドは、pacman.logを mylogs.txtというファイルに保存します。 。
$ tail -f /var/log/pacman.log > mylogs.txt
また、コマンドを使用してIPの詳細を簡単に保存できます:
$ ip a > mynetworkdetails.txt
コマンドの出力を複数のファイルに書き込みたい場合があります。方法は次のとおりです。
$ uname -a | tee file1 file2
上記のコマンドは、 "uname -a"の出力を書き込みます file1へのコマンド およびfile2 。ファイルがまだ存在しない場合は、作成されます。
デフォルトでは、file1とfile2の内容が上書きされます。既存のコンテンツに出力を追加する場合は、 -aを使用します 以下のようなフラグ。
$ ip a | tee -a file1 file2
このコマンドは、file1およびfile2の既存の内容を上書きしません。代わりに、ifconfigコマンドの出力をfile1とfile2に追加するだけです。つまり、これら2つのファイルには、「uname-a」コマンドと「ipa」コマンドの出力が含まれるようになりました。