Existe-t-il des outils de ligne de commande sous Linux qui vous permettent de publier le résultat de commandes ou de fichiers texte directement sur un service de partage tel que pastebin.com?
Existe-t-il des outils de ligne de commande sous Linux qui vous permettent de publier le résultat de commandes ou de fichiers texte directement sur un service de partage tel que pastebin.com?
Réponses:
Il existe plusieurs services qui fournissent cela, mais 2 qui sont assez faciles à utiliser depuis la ligne de commande sont fpaste
et pastebinit
. Ces 2 outils sont liés aux sites paste.fedoraproject.org et pastebin.com .
NOTE: Ceci est une option uniquement Fedora / CentOS / RHEL
Si vous utilisez l'une des distributions Red Hat, vous pouvez installer le package fpaste
qui vous fournit un outil de ligne de commande pour la publication de contenu paste.fedoraproject.org
.
Pour l’enregistrement de base d’un seul fichier texte, vous pouvez procéder comme suit.
$ fpaste hello_unixnlinux.txt
La commande ci-dessus renverra une URL où d'autres personnes pourront désormais accéder à votre contenu.
...
Uploading (0.1KiB)...
http://ur1.ca/gddtt -> http://paste.fedoraproject.org/66894/89230131
Il y a bien sûr une foule d'autres options.
fpaste -i
fpaste --sysinfo
Voir la page de manuel man fpaste
pour plus de détails.
C'est probablement le plus populaire des 2 outils. Il est pris en charge sur la plupart des distributions que je fréquente, telles que Fedora, CentOS et Ubuntu, pour n'en nommer que quelques-unes. Il a des fonctionnalités similaires à, fpaste
mais vous pouvez en faire beaucoup plus, par exemple:
Pour commencer, nous pouvons obtenir une liste de toutes les URL "prises en charge" via le -l
commutateur.
$ 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
Si vous ne prenez pas la peine d'en sélectionner un à l'aide du -b
commutateur, il en choisira un en fonction de votre distribution, en supposant qu'il en existe un, sinon il reviendra à pastebin.com. Notez qu'il prend également en charge fpaste.org
, pour Fedora, de sorte que vous pouvez également utiliser cet outil pour couvrir ce service de collage.
Pour poster un exemple de fichier sur pastebin.com
.
$ pastebinit -i hello_unixnlinux.txt -b http://pastebin.com
http://pastebin.com/d6uXieZj
Vous pouvez également savoir que le contenu que vous collez est un code utilisant le -f
commutateur. Par exemple, voici un script Bash. Nous allons également nommer le téléchargement à l'aide du -a
commutateur, afin qu'il apparaisse avec le nom "ex_bash_1".
$ pastebinit -i sample.bash -f bash -a ex_bash_1 -b http://pastebin.com
http://pastebin.com/jGvyysQ9
Une liste complète de la syntaxe prise en charge est présentée dans la FAQ de pastebin.com sous la rubrique intitulée: Pour quelles langues proposez-vous la coloration syntaxique? .
Pour plus de détails, consultez les pages de manuel man pastebinit
.
Voici 2 exemples du fichier que j'ai posté sur chaque service.
fpaste - http://ur1.ca/gddtt
pastebin - http://pastebin.com/jGvyysQ9
pastebinit -l
.
J'aime les deux outils de ligne de commande utilisés curl
, répertoriés dans Arch Wiki :
<command> | curl -F 'sprunge=<-' http://sprunge.us
<command> 2>&1 | curl -F 'f:1=<-' ix.io
Vous pouvez créer une fonction simple pour vous éviter de devoir vous rappeler les détails sanglants, comme ceci:
sprung() { curl -F "sprunge=<-" http://sprunge.us <"$1" ;}
Vous pouvez envoyer à une URL améliorée si vous souhaitez une coloration syntaxique de votre code. Pour ix, vous ajoutez soit /ID/
à l'URL ( http://ix.io/ID/ ) pour la syntaxe par défaut basée sur la détection automatique, soit /ID/<language>/
pour définir explicitement la langue pour la surbrillance des pygments.
Pour http://sprunge.us , ajoutez ?<language>
le même effet.
J'avais besoin de quelque chose pour partager la sortie du terminal même lorsque le serveur X n'était pas chargé. J'ai donc créé ce service: termbin.com . La seule chose dont vous avez besoin est netcat, alors vous pouvez facilement partager avec tout le monde tout ce qui peut être affiché dans un terminal. Voici un exemple:
cat /etc/fstab | nc termbin.com 9999
Après avoir exécuté cette commande, vous obtiendrez une adresse URL de réponse avec un fichier texte.
Pour vous simplifier la vie, vous pouvez ajouter un tel alias à votre fichier .bashrc:
echo 'alias tb="nc termbin.com 9999"' >> .bashrc
Maintenant, le partage sera beaucoup plus simple:
uname -a | tb
Vous pouvez obtenir des sauvegardes, par exemple, en utilisant curl. Vous trouverez plus d'exemples sur termbin.com .
Vous pouvez également héberger votre propre serveur. Il existe un référentiel github: https://github.com/solusipse/fiche . Si vous souhaitez le rendre privé, n'oubliez pas de définir le paramètre de liste blanche.
nc -v
vous aurez nc: connect to termbin.com port 9999 (tcp) failed: No route to host
.
J'ai écrit ce site Web spécialement conçu pour être collé par curl, car je pensais que personne ne devrait avoir à se souvenir d'une syntaxe spécifique comme dans sprunge. Il est également non seulement open source, mais totalement portable, vous permettant ainsi de configurer facilement votre propre "curlpaste" avec n’importe quel autre domaine. c'est-à-dire un serveur de collage privé.
curl --data-binary @your-file-here.txt https://curlpaste.com
si vous visitez le site Web, vous disposez également d’une interface Web proposant d’autres options, telles que lecture unique et suppression.
Voici un autre service qui semble offrir ceci: https://ctrlv.link/
Ajoutez le code dans un fichier input.txt
et exécutez cette commande à partir d'une fenêtre de terminal:
$ curl --form "expiration=0" --form "code_type=nohighlight" \
--form "content=<input.txt" https://ctrlv.link/insert.php
Un exemple avec le code C / C ++ (test.cpp):
$ curl --form "expiration=0" --form "code_type=cpp" \
--form "content=<test.cpp" https://ctrlv.link/insert.php`
J'ai récemment créé un outil de ligne de commande pour pastebin https://notepad.pw/ que j'utilise fréquemment.
coller votre fichier est aussi simple que
npw -lo filename linkpath
Donc, fondamentalement, il colle le contenu à https://notepad.pw/
L' l
indicateur est destiné à la mise à jour en direct, car si quelqu'un d'autre visualise la page, celle-ci sera mise à jour sans rechargement.
le drapeau "o" sert à écraser si vous ne l'utilisez pas, le contenu sera ajouté au contenu existant.
Vous pouvez installer l'outil via pip
en utilisant la commande.
pip install npw
Voici la page github.
disclaimer: Ceci est mon propre projet
Anypaste supporte actuellement une douzaine de services de type pastebin (notamment Hastebin et ix.io ). Vous pouvez diriger quelque chose some_command | anypaste
ou lister explicitement un fichier anypaste my_code.c
. Le téléchargement de média est également pris en charge sur des sites comme Imgur et Gfycat; anypaste détecte automatiquement le type de fichier pour déterminer où télécharger l'entrée.
Le moyen le plus rapide d’installer est de télécharger le fichier exécutable (c’est un gros script shell):
sudo curl -Lo /usr/local/bin/anypaste https://anypaste.xyz/sh
Beaucoup de pastebins ne nécessitent aucun outil spécial. Curl ou wget fera l'affaire.
https://paste.c-net.org/ en est un exemple.
Voici un extrait du "manuel":
Télécharger du texte en utilisant curl:
$ curl -s --data 'Hello World!' ' http://paste.c-net.org/ '
Télécharger du texte en utilisant wget:
$ wget --quiet -O- --post-data = 'Bonjour tout le monde!' ' http://paste.c-net.org/ '
Télécharger un fichier en utilisant curl:
$ curl --upload-file '/ tmp / file' ' https://paste.c-net.org/ '
Télécharger un fichier en utilisant wget:
$ wget --quiet -O- --post-file = '/ tmp / file' ' http://paste.c-net.org/ '
Téléchargez la sortie d'une commande ou d'un script à l'aide de curl:
$ ls / | curl --upload-file ' http://paste.c-net.org/ '
$ ./bin/hello_world | curl --upload-file - ' http://paste.c-net.org/ '
Vous pouvez aussi simplement diriger des trucs vers Netcat
$ ls / | nc paste.c-net.org 9999
À la différence de termbin, paste.c-net.org n'expire pas si votre script prend plus de 5 secondes pour produire sa sortie.
$ {sommeil 10; ls /; } | nc termbin.com 9999
$ {sommeil 10; ls /; } | nc paste.c-net.org 9999
La page fournit également des fonctions Bade prédéfinies pour votre fichier .bashrc.