Esistono strumenti da riga di comando su Linux che ti consentono di inviare output da comandi o file di testo direttamente a un servizio di condivisione come pastebin.com?
Esistono strumenti da riga di comando su Linux che ti consentono di inviare output da comandi o file di testo direttamente a un servizio di condivisione come pastebin.com?
Risposte:
Esistono diversi servizi che forniscono questo, ma 2 che sono piuttosto facili da usare dalla riga di comando sono fpaste
e pastebinit
. Questi 2 strumenti si collegano ai siti, paste.fedoraproject.org e pastebin.com .
NOTA: questa è un'opzione solo Fedora / CentOS / RHEL
Se stai usando una delle distro basate su Red Hat puoi installare il pacchetto fpaste
che ti offre uno strumento da riga di comando per pubblicare contenuti paste.fedoraproject.org
.
Per la pubblicazione di base di un singolo file di testo è possibile effettuare le seguenti operazioni.
$ fpaste hello_unixnlinux.txt
Il comando sopra restituirà un URL in cui i tuoi contenuti possono ora essere accessibili da altri.
...
Uploading (0.1KiB)...
http://ur1.ca/gddtt -> http://paste.fedoraproject.org/66894/89230131
Naturalmente ci sono molte altre opzioni.
fpaste -i
fpaste --sysinfo
Vedi la pagina man, man fpaste
per maggiori dettagli.
Questo è probabilmente il più popolare dei 2 strumenti. È supportato sulla maggior parte delle distro che frequento come Fedora, CentOS e Ubuntu solo per citarne alcune. Ha funzionalità simili a fpaste
, ma puoi fare molto di più, ad esempio:
Per i principianti possiamo ottenere un elenco di tutti gli URL "supportati" tramite lo -l
switch.
$ pastebinit -l
Supported pastebins:
- cxg.de
- fpaste.org
- p.defau.lt
- paste.debian.net
- paste.drizzle.org
- paste.kde.org
- paste.openstack.org
- paste.pocoo.org
- paste.pound-python.org
- paste.ubuntu.com
- paste.ubuntu.org.cn
- paste2.org
- pastebin.com
- pastie.org
- pb.daviey.com
- slexy.org
- sprunge.us
Se non ti preoccupi di selezionarne uno usando l' -b
interruttore, ne sceglierà uno in base alla tua distribuzione, supponendo che ce ne sia uno, altrimenti tornerà a pastebin.com. Notate che supporta anche fpaste.org
, per Fedora, quindi potete usare questo strumento anche per coprire quel servizio di incollaggio.
Per pubblicare un file di esempio in pastebin.com
.
$ pastebinit -i hello_unixnlinux.txt -b http://pastebin.com
http://pastebin.com/d6uXieZj
Puoi anche dire che il contenuto che stai incollando è codice usando l' -f
opzione. Ad esempio, ecco uno script Bash. Daremo anche un nome al caricamento utilizzando l' -a
opzione, in modo che venga visualizzato con il nome "ex_bash_1".
$ pastebinit -i sample.bash -f bash -a ex_bash_1 -b http://pastebin.com
http://pastebin.com/jGvyysQ9
Un elenco completo delle sintassi supportate è riportato nelle FAQ di pastebin.com in questo argomento intitolato: Per quali lingue offri l'evidenziazione della sintassi? .
Per ulteriori dettagli, consultare le pagine man man pastebinit
.
Ecco 2 esempi del file che ho pubblicato per ciascun servizio.
fpaste - http://ur1.ca/gddtt
pastebin: http://pastebin.com/jGvyysQ9
pastebinit -l
.
Mi piacciono i due strumenti da riga di comando che usano curl
, elencati su Arch Wiki :
<command> | curl -F 'sprunge=<-' http://sprunge.us
<command> 2>&1 | curl -F 'f:1=<-' ix.io
Puoi fare una semplice funzione per evitare di dover ricordare i dettagli cruenti, in questo modo:
sprung() { curl -F "sprunge=<-" http://sprunge.us <"$1" ;}
Puoi inviare a un URL avanzato se desideri evidenziare la sintassi per il tuo incolla di codice. Per ix, aggiungi /ID/
l'URL ( http://ix.io/ID/ ) per la sintassi predefinita basata sul rilevamento automatico o /ID/<language>/
per impostare esplicitamente la lingua per l'evidenziazione dei pigmenti.
Per http://sprunge.us , aggiungi ?<language>
per lo stesso effetto.
Avevo bisogno di qualcosa per condividere l'output del terminale anche quando il server X non era caricato, quindi ho creato questo servizio: termbin.com . L'unica cosa di cui hai bisogno è netcat, quindi puoi facilmente condividere con chiunque tutto ciò che può essere mostrato nel terminale, c'è un esempio:
cat /etc/fstab | nc termbin.com 9999
Dopo aver eseguito questo comando riceverai in risposta l'indirizzo URL con il file di testo.
Per semplificarti la vita puoi aggiungere tale alias al tuo file .bashrc:
echo 'alias tb="nc termbin.com 9999"' >> .bashrc
Ora la condivisione sarà molto più semplice:
uname -a | tb
Puoi ottenere quelli salvati, ad esempio, usando l'arricciatura. Troverai altri esempi su termbin.com .
Puoi ospitare anche il tuo server, c'è un repository github: https://github.com/solusipse/fiche . Se vuoi renderlo privato, non dimenticare di impostare il parametro whitelist.
nc -v
otterrai nc: connect to termbin.com port 9999 (tcp) failed: No route to host
.
Ho scritto questo sito web appositamente creato per essere incollato con il ricciolo, dal momento che sentivo che nessuno avrebbe dovuto ricordare una sintassi specifica come in Sprunge. Inoltre, non è solo open source, ma completamente portatile, quindi puoi facilmente impostare il tuo "curlpaste" con qualsiasi altro dominio. cioè un server incolla privato.
curl --data-binary @your-file-here.txt https://curlpaste.com
se visiti il sito web c'è anche un'interfaccia web che fornisce altre opzioni come leggere una volta ed eliminare.
Ecco un altro servizio che sembra offrire questo: https://ctrlv.link/
Aggiungi il codice in un file input.txt
ed esegui questo comando da una finestra del terminale:
$ curl --form "expiration=0" --form "code_type=nohighlight" \
--form "content=<input.txt" https://ctrlv.link/insert.php
Un esempio con codice C / C ++ (test.cpp):
$ curl --form "expiration=0" --form "code_type=cpp" \
--form "content=<test.cpp" https://ctrlv.link/insert.php`
Di recente ho creato uno strumento da riga di comando per il pastebin https://notepad.pw/ che uso frequentemente
incollare il tuo file è semplice come
npw -lo filename linkpath
quindi sostanzialmente incolla il contenuto su https://notepad.pw/
Il l
flag è per l'aggiornamento in tempo reale se qualcuno sta visualizzando la pagina che verrà aggiornata senza ricaricare.
il flag 'o' serve per sovrascrivere se non lo usi, il contenuto verrà aggiunto a quello esistente.
È possibile installare lo strumento tramite pip
usando il comando
pip install npw
Ecco la pagina di github.
disclaimer: questo è il mio progetto
Anypaste attualmente supporta circa una dozzina di servizi simili a pastebin (in particolare Hastebin e ix.io ). Puoi reindirizzare qualcosa some_command | anypaste
o elencare esplicitamente un file anypaste my_code.c
. Il caricamento multimediale è supportato anche su siti come Imgur e Gfycat; anypaste rileva automaticamente il tipo di file per determinare dove caricare l'input.
Il modo più rapido per installare è scaricare l'eseguibile (è un grosso script di shell):
sudo curl -Lo /usr/local/bin/anypaste https://anypaste.xyz/sh
Molte pastebine non richiedono strumenti speciali. Curl o wget lo faranno.
https://paste.c-net.org/ è uno di questi esempi.
Ecco uno snippet dal "manuale":
Carica testo usando arricciatura:
$ curl -s --data 'Hello World!' " http://paste.c-net.org/ "
Carica testo usando wget:
$ wget --quiet -O- --post-data = 'Ciao mondo!' " http://paste.c-net.org/ "
Carica un file usando curl:
$ curl --upload-file '/ tmp / file' ' https://paste.c-net.org/ '
Carica un file usando wget:
$ wget --quiet -O- --post-file = '/ tmp / file' ' http://paste.c-net.org/ '
Carica l'output di un comando o di uno script usando curl:
$ ls / | curl --upload-file ' http://paste.c-net.org/ '
$ ./bin/hello_world | curl --upload-file - ' http://paste.c-net.org/ '
Puoi anche semplicemente reindirizzare roba a netcat
$ ls / | nc paste.c-net.org 9999
A differenza di termbin, paste.c-net.org non scadrà se lo script impiega più di 5 secondi per produrre il suo output.
$ {sonno 10; ls /; } | nc termbin.com 9999
$ {sonno 10; ls /; } | nc paste.c-net.org 9999
La pagina fornisce anche funzioni Bash predefinite per il tuo file .bashrc.