GNU/Linux >> Linux Esercitazione >  >> Linux

Come salvare l'output dei comandi di Linux in un'immagine o in un file di testo

Ti sei mai trovato in una situazione in cui volevi inviare l'output di un comando Linux al tuo collega o amico per ottenere aiuto? Questo semplice trucco di Linux ti sarà sicuramente utile. È possibile salvare l'output di un comando Linux in un'immagine o in un file. Tutto ciò che devi avere è solo ImageMagick . Questo può essere utile quando devi inviare l'output a una persona del supporto tecnico oa un collega.

Salva l'output del comando Linux su un'immagine

Installa prima lo strumento ImageMagick. È disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.

Ad esempio, per installare ImageMagick in Arch Linux e suoi derivati, eseguire:

$ sudo pacman -S imagemagick

Su Debian, Ubuntu e altri sistemi basati su DEB, puoi installarlo come mostrato di seguito.

$ sudo apt-get install imagemagick

Su Fedora:

$ sudo dnf install ImageMagick

Su CentOS:

$ sudo yum install ImageMagick

Su openSUSE:

$ sudo zypper install ImageMagick

Ora, per salvare un output di qualsiasi comando Linux in un file immagine, esegui semplicemente il comando seguente:

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

Il comando precedente salverà l'output del comando ifconfig in un'immagine e lo salverà nella directory di lavoro corrente. Analizziamo il comando precedente e vediamo cosa fa ciascuna opzione.

  • ip un visualizzerà l'indirizzo IP del tuo sistema Linux.
  • convertire il comando salverà l'output in un'immagine.
  • etichetta:@- myipaddress.png salverà l'output del comando nell'immagine denominata myipaddress.png .

Ecco l'output del comando precedente nel mio sistema desktop Ubuntu 18.04.

Eccone un altro. Ho salvato il mio output del kernel Linux in un'immagine.

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

Risultato di esempio:

Quello che abbiamo visto sopra è che abbiamo salvato l'output del comando in un file immagine. Possiamo anche salvare l'output su un file immagine esistente. Per fare ciò, esegui:

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

Questo comando stamperà l'output di "lsb_release -a" comando a un'immagine chiamata image.png e lo salva con un nuovo nome "systemdetails.png" .

Ecco l'output del comando precedente:

Abbastanza facile, non è vero? Puoi salvare l'output di qualsiasi comando in un file immagine e inviarlo a chiunque possa aiutarti a riparare il tuo sistema.

Risoluzione dei problemi

Nelle recenti distribuzioni Ubuntu Linux, alcune operazioni di conversione sono limitate per motivi di sicurezza. Se hai provato i comandi precedenti nel sistema operativo Ubuntu, potresti riscontrare il seguente messaggio di errore:

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

In tal caso, devi modificare policy.xml file di configurazione e modificare la politica.

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

Trova la seguente riga:

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

Commenta o rimuovi la seguente riga:

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

Salva e chiudi il file. Ora puoi salvare i comandi nel file immagine.

Salva l'output dei comandi Linux in un file di testo

Sappiamo come salvare l'output di un comando in/in un'immagine. Possiamo anche salvare l'output di un comando Linux in un file.

Ad esempio, per salvare "ip addr" l'output del comando in un file chiamato myipaddress.txt , esegui:

$ ip addr > myipaddress.txt

Per verificarlo, visualizza il file di testo utilizzando i tuoi visualizzatori di testo preferiti. Oppure, possiamo farlo usando il comando "cat" come di seguito.

$ cat myipaddress.txt

Il comando seguente salverà il mio pacman.log in un file chiamato mylogs.txt .

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

E possiamo facilmente salvare i dettagli IP usando il comando:

$ ip a > mynetworkdetails.txt

Potresti voler scrivere l'output di un comando su più file. Ecco come farlo.

$ uname -a | tee file1 file2

Il comando precedente scriverà l'output di "uname -a" comando su file1 e file2 . Se i file non esistono già, li creerà.

Per impostazione predefinita, sovrascriverà il contenuto di file1 e file2. Se vuoi aggiungere l'output ai contenuti esistenti, usa -a segnala come sotto.

$ ip a | tee -a file1 file2

Questo comando non sovrascriverà il contenuto esistente di file1 e file2. Invece, aggiungerà semplicemente l'output del comando ifconfig a file1 e file2. In altre parole, questi due file ora hanno gli output dei comandi "uname -a" e "ip a".


Linux
  1. Come aggiungere testo alla fine del file in Linux

  2. Come assegnare l'output di un comando Linux a una variabile

  3. Come acquisire l'output di un comando top in un file in Linux?

  4. Come reindirizzare l'output del comando time su un file in Linux?

  5. Come salvare l'output di questo comando awk su file?

Come salvare l'output del comando in un file utilizzando il terminale Linux

Come bloccare un file di testo in Linux usando il comando flock

Come stampare righe duplicate in un file di testo in Linux

Come mescolare le linee in un file in Linux

Come usare il comando lsof in Linux

Come utilizzare il comando shred Linux