GNU/Linux >> Znalost Linux >  >> Linux

Jak uložit výstup příkazů Linuxu do obrázku nebo textového souboru

Ocitli jste se někdy v situaci, kdy jste chtěli poslat výstup linuxového příkazu svému kolegovi nebo příteli, aby vám pomohl? Tento jednoduchý linuxový hack se vám určitě bude hodit. Výstup příkazu Linuxu můžete uložit do obrázku nebo souboru. Vše, co potřebujete, je pouze ImageMagick . To může být užitečné, když potřebujete odeslat výstup osobě technické podpory nebo kolegovi.

Uložení výstupu příkazů Linuxu do obrázku

Nejprve nainstalujte nástroj ImageMagick. Je k dispozici ve výchozích úložištích většiny distribucí Linuxu.

Chcete-li například nainstalovat ImageMagick v Arch Linuxu a jeho derivátech, spusťte:

$ sudo pacman -S imagemagick

Na Debian, Ubuntu a dalších systémech založených na DEB jej můžete nainstalovat, jak je znázorněno níže.

$ sudo apt-get install imagemagick

Na Fedoře:

$ sudo dnf install ImageMagick

Na CentOS:

$ sudo yum install ImageMagick

Na openSUSE:

$ sudo zypper install ImageMagick

Nyní, chcete-li uložit výstup libovolného příkazu Linuxu do souboru s obrázkem, stačí spustit následující příkaz:

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

Výše uvedený příkaz uloží výstup příkazu ifconfig do obrázku a uloží jej do aktuálního pracovního adresáře. Pojďme si projít výše uvedený příkaz a uvidíme, co jednotlivé možnosti dělají.

  • ip a zobrazí IP adresu vašeho systému Linux.
  • převést příkaz uloží výstup do obrázku.
  • štítek:@- myipaddress.png uloží výstup příkazu do obrázku s názvem myipaddress.png .

Zde je výstup výše uvedeného příkazu v mém desktopovém systému Ubuntu 18.04.

Tady je další. Uložil jsem svůj výstup linuxového jádra do obrázku.

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

Ukázkový výstup:

To, co jsme viděli výše, je, že jsme uložili výstup příkazu do souboru obrázku. Výstup také můžeme uložit do existujícího souboru obrázku. Chcete-li to provést, spusťte:

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

Tento příkaz vytiskne výstup "lsb_release -a" příkaz k obrázku s názvem image.png a uloží jej pod novým názvem "systemdetails.png" .

Zde je výstup výše uvedeného příkazu:

Docela snadné, ne? Výstup libovolného příkazu můžete uložit do souboru obrázku a odeslat jej komukoli, kdo vám může pomoci opravit váš systém.

Odstraňování problémů

V nedávných distribucích Ubuntu Linux jsou některé operace převodu z bezpečnostních důvodů omezeny. Pokud jste vyzkoušeli výše uvedené příkazy v OS Ubuntu, může se vám zobrazit následující chybová zpráva:

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

V takovém případě musíte upravit policy.xml konfigurační soubor a změnit zásady.

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

Najděte následující řádek:

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

Zakomentujte nebo odeberte následující řádek:

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

Uložte a zavřete soubor. Nyní můžete uložit příkazy do souboru obrázku.

Uložení výstupu příkazů Linux do textového souboru

Víme, jak uložit výstup příkazu do/do obrázku. Můžeme také uložit výstup příkazu Linuxu do souboru.

Chcete-li například uložit „ip addr“ výstup příkazu do souboru s názvem myipaddress.txt , spustit:

$ ip addr > myipaddress.txt

Chcete-li to ověřit, zobrazte textový soubor pomocí svých oblíbených textových prohlížečů. Nebo to můžeme udělat pomocí příkazu "cat" jako níže.

$ cat myipaddress.txt

Následující příkaz uloží můj pacman.log do souboru s názvem mylogs.txt .

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

A můžeme snadno uložit podrobnosti o IP pomocí příkazu:

$ ip a > mynetworkdetails.txt

Možná budete chtít zapsat výstup příkazu do více souborů. Zde je návod, jak to udělat.

$ uname -a | tee file1 file2

Výše uvedený příkaz zapíše výstup "uname -a" příkaz k souboru1 a soubor2 . Pokud soubory ještě neexistují, vytvoří je.

Ve výchozím nastavení přepíše obsah souborů file1 a file2. Pokud chcete výstup připojit ke stávajícímu obsahu, použijte -a příznak jako níže.

$ ip a | tee -a file1 file2

Tento příkaz nepřepíše existující obsah soubor1 a soubor2. Místo toho jednoduše připojí výstup příkazu ifconfig k souboru1 a souboru2. Jinými slovy, tyto dva soubory nyní mají výstupy příkazů "uname -a" a "ip a".


Linux
  1. Jak přidat text na konec souboru v Linuxu

  2. Jak uložit výstup příkazu do souboru v Linuxu

  3. Jak přesměrovat výstup příkazu time do souboru v Linuxu?

  1. Jak přiřadit výstup příkazu Linux k proměnné

  2. Jak připojit výstup do souboru?

  3. Jak upravit textový soubor v mém terminálu

  1. Jak zachytit výstup top příkazu do souboru v linuxu?

  2. Jak uložit výstup tohoto příkazu awk do souboru?

  3. Jak vytisknout výstup příkazu Linuxu do souboru?