Un modo semplice per incollare l'output della riga di comando per incollare i servizi bin?


38

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?


2
Il mio preferito, se abbinato a una bella shell script, è Sprunge .
DopeGhoti,

Dai un'occhiata a https://paste.c-net.org/ Viene fornito con funzioni Bash, facilmente utilizzabili dalla riga di comando senza programmi aggiuntivi da installare. Bene, tranne per il ricciolo, che probabilmente hai comunque :)
Bolt

Risposte:


34

Esistono diversi servizi che forniscono questo, ma 2 che sono piuttosto facili da usare dalla riga di comando sono fpastee pastebinit. Questi 2 strumenti si collegano ai siti, paste.fedoraproject.org e pastebin.com .

fpaste

NOTA: questa è un'opzione solo Fedora / CentOS / RHEL

Se stai usando una delle distro basate su Red Hat puoi installare il pacchetto fpasteche ti offre uno strumento da riga di comando per pubblicare contenuti paste.fedoraproject.org.

Comandi di base

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

Altri comandi

Naturalmente ci sono molte altre opzioni.

  • incolla appunti: fpaste -i
  • incolla le informazioni sul sistema: fpaste --sysinfo
  • corsa a secco: `fpaste --printonly somefile.txt

Vedi la pagina man, man fpasteper maggiori dettagli.

pastebinit

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:

elenco di servizi

Per i principianti possiamo ottenere un elenco di tutti gli URL "supportati" tramite lo -lswitch.

$ 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' -binterruttore, 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.

Pubblicare un semplice file di testo

Per pubblicare un file di esempio in pastebin.com.

$ pastebinit -i hello_unixnlinux.txt -b http://pastebin.com
http://pastebin.com/d6uXieZj

Codice di pubblicazione

Puoi anche dire che il contenuto che stai incollando è codice usando l' -fopzione. Ad esempio, ecco uno script Bash. Daremo anche un nome al caricamento utilizzando l' -aopzione, 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.

Campioni

Ecco 2 esempi del file che ho pubblicato per ciascun servizio.

fpaste - http://ur1.ca/gddtt

   ss di pasta

pastebin: http://pastebin.com/jGvyysQ9

   ss di pastebinit

Riferimenti


Tutti questi impallidiscono rispetto a Sprunge e Hastebin , IMO. (:
DopeGhoti

Sì, ho sentito quanto sia fantastico Sprunge, BTW non ne ha mai sentito parlare fino ad oggi. Il sito web è come / dev / null e trovo l'interfaccia scomoda rispetto a uno strumento reale come quelli che ho elencato. Ma è per questo che abbiamo così tante opzioni, in modo che tutti possano scegliere ciò che piace Cool. La pattumiera d'altra parte sembra un po 'più raffinata, mi piace che tu possa ospitare la tua istanza, la durata di 30 giorni al massimo è un affare per me.
slm

Si noti inoltre che pastebinit può pubblicare su sprunge.us. È nell'elenco fornito da pastebinit -l.
slm

Si prega di aggiungere una nota che il comando pastebinit di esempio utilizza il nome utente locale come titolo incolla, che è stata una spiacevole sorpresa
Dubslow

22

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.


Puoi modellarli o selezionare un tipo di codice o l'evidenziazione della sintassi è automatica in base a ciò che è incollato?
slm

Non che ne sia consapevole: incolla solo il testo. Ma non ho approfondito la questione poiché è tutto ciò di cui ho bisogno.
Jasonwryan,

Molto bene, non ero sicuro che ci fosse qualcosa di più nell'interfaccia curl in termini di switch extra ecc. Che potresti includere nella richiesta.
slm

L'ho trovato. Puoi puntare su un? seguito dal nome della lingua per ottenere l'evidenziazione e i numeri di riga. Vedi questo esempio: sprunge.us/MFMY?bash
slm

semplicemente la soluzione migliore e più semplice là fuori. Adoro la comunità di archlinux :)
nXqd l'

19

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.


C'è anche pastebin-cli e Welcome to U & L.SE
eyoung100

@solusipse; per quanto tempo la pasta rimarrà sul tuo server. potrebbe essere per sempre? o c'è un link per rimuovere i messaggi
r004

1
@ r004 Come menzionato in termbin.com "La durata della singola pasta è di un mese. Le paste più vecchie vengono eliminate."
Veerendra,

Molto interessante, ma inutile se si è dietro un firewall con la porta 9999 bloccata. Usando nc -votterrai nc: connect to termbin.com port 9999 (tcp) failed: No route to host.
Pablo A

5

Uso clitxt in quanto non è richiesto alcun account e non ci sono parametri o impostazioni da ricordare. È sufficiente reindirizzare il comando a clitxt e restituisce un URL. per esempio

root@server3219-old7 [~]# yum -y update | clitxt
https://clitxt.com/t/ad7-1426995329.txt

3

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.


curlpaste.com sembra essere giù
Davide Icardi,

2

Ecco un altro servizio che sembra offrire questo: https://ctrlv.link/

Aggiungi il codice in un file input.txted 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`

1

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 lflag è 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.


0

Anypaste

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 | anypasteo 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


0

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

https://paste.c-net.org/ExampleOne

La pagina fornisce anche funzioni Bash predefinite per il tuo file .bashrc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.