Простой способ вставить вывод командной строки, чтобы вставить службы bin?


38

Существуют ли в Linux инструменты командной строки, которые позволяют публиковать выходные данные команд или текстовых файлов непосредственно в службу общего доступа, например pastebin.com?


2
Мой любимый, в сочетании с хорошим сценарием оболочки, это Sprunge .
DopeGhoti

Проверьте https://paste.c-net.org/ Он поставляется с функциями Bash, которые можно легко использовать из командной строки без дополнительных программ для установки. Ну, кроме скручивания, которое у вас, вероятно, есть в любом случае :)
болт

Ответы:


34

Есть несколько сервисов, которые предоставляют это, но 2, которые довольно просты в использовании из командной строки, fpasteи pastebinit. Эти 2 инструмента связаны с сайтами paste.fedoraproject.org и pastebin.com .

fpaste

ПРИМЕЧАНИЕ. Это только для Fedora / CentOS / RHEL.

Если вы используете какой-либо из дистрибутивов Red Hat, вы можете установить пакет, fpasteкоторый предоставляет вам инструмент командной строки для публикации контента paste.fedoraproject.org.

Основные команды

Для основной публикации одного текстового файла вы можете сделать следующее.

$ fpaste hello_unixnlinux.txt 

Приведенная выше команда вернет URL-адрес, по которому ваш контент теперь смогут получить доступ другие.

...
Uploading (0.1KiB)...
http://ur1.ca/gddtt -> http://paste.fedoraproject.org/66894/89230131

Другие команды

Есть, конечно, целый ряд других вариантов.

  • вставить буфер обмена: fpaste -i
  • вставить системную информацию: fpaste --sysinfo
  • пробный запуск: `fpaste --printonly somefile.txt

Смотрите man-страницу, man fpasteдля более подробной информации.

pastebinit

Это, наверное, самый популярный из 2 инструментов. Он поддерживается на большинстве распространяемых мной дистрибутивов, таких как Fedora, CentOS и Ubuntu, и это лишь некоторые из них. Он имеет схожие функции, fpasteно вы можете сделать с ним гораздо больше, например:

список услуг

Для начала мы можем получить список всех «поддерживаемых» URL через -lкоммутатор.

$ 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

Если вы не удосужились выбрать один из них с помощью -bпереключателя, он выберет один в зависимости от вашего дистрибутива, при условии, что есть один для него, в противном случае перейдите на pastebin.com. Обратите внимание, что это также поддерживаетfpaste.org и Fedora, так что вы можете использовать этот инструмент и для этой службы вставки.

Размещение простого текстового файла

Чтобы отправить образец файла в pastebin.com.

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

Почтовый код

Вы также можете сказать, что контент, который вы вставляете, является кодом с помощью -fпереключателя. Например, вот скрипт Bash. Мы также будем называть загрузку с помощью -aпереключателя, чтобы он отображался с именем «ex_bash_1».

$ pastebinit -i sample.bash -f bash -a ex_bash_1 -b http://pastebin.com
http://pastebin.com/jGvyysQ9

Полный список поддерживаемых синтаксисов приведен в разделе часто задаваемых вопросов pastebin.com по этой теме: Для каких языков вы предлагаете подсветку синтаксиса? ,

Для получения более подробной информации обращайтесь к справочным страницам man pastebinit.

образцы

Вот 2 примера файла, который я разместил в каждом сервисе.

fpaste - http://ur1.ca/gddtt

   сс фпасте

pastebin - http://pastebin.com/jGvyysQ9

   сс пастибинит

Ссылки


Все это бледно по сравнению с Sprunge и Hastebin , IMO. (:
DopeGhoti

Да, я слышал о том, какой классный Sprunge, BTW никогда не слышал об этом до сегодняшнего дня. Веб-сайт похож на / dev / null, и я нахожу интерфейс неудобным по сравнению с реальным инструментом, таким как те, которые я перечислил. Но именно поэтому у нас так много вариантов, чтобы каждый мог выбрать то, что ему нравится 8-). Хастебин, с другой стороны, выглядит немного более отточенным, мне нравится, что вы можете разместить свой собственный экземпляр, максимальная продолжительность 30 дней для меня прерывает сделку.
SLM

Также обратите внимание, что pastebinit может публиковать сообщения на sprunge.us. Это в списке, предоставленном pastebinit -l.
SLM

Пожалуйста, добавьте примечание, что пример команды pastebinit использует ваше локальное имя пользователя в качестве заголовка вставки, что было неприятным сюрпризом
Dubslow

22

Мне нравятся два инструмента командной строки, которые curlперечислены в Arch Wiki :

<command> | curl -F 'sprunge=<-' http://sprunge.us

<command> 2>&1 | curl -F 'f:1=<-' ix.io

Вы можете сделать простую функцию, чтобы избавить вас от необходимости запоминать кровавые детали, например так:

sprung() { curl -F "sprunge=<-" http://sprunge.us <"$1" ;}

Вы можете отправить на расширенный URL-адрес, если вы хотите подсветку синтаксиса для вставки кода. Для ix вы добавляете либо /ID/к URL ( http://ix.io/ID/ ) для синтаксиса по умолчанию, основанного на автоопределении, либо /ID/<language>/для явной установки языка для выделения фрагментов.

Для http://sprunge.us добавьте ?<language>тот же эффект.


Можете ли вы их стилизовать или выбрать тип кода, или подсветка синтаксиса, если таковая имеется, автоматически основана на том, что вставлено?
SLM

Не то, чтобы я знал: это просто вставляет текст. Но я не стал вдаваться в подробности, так как это все, что мне нужно.
Джейсонвриан

Очень хорошо, я просто не был уверен, есть ли еще что-то в интерфейсе curl с точки зрения дополнительных переключателей и т. Д., Которые вы могли бы включить в запрос.
SLM

Я нашел это. Вы можете прикрепить? затем имя языка, чтобы получить подсветку и номера строк. Смотрите пример: sprunge.us/MFMY?bash
ОДС

просто лучшее и самое простое решение. Люблю сообщество archlinux :)
nXqd

19

Мне нужно было что-то, чтобы делиться выводом терминала, даже когда X-сервер не был загружен, поэтому я создал этот сервис: termbin.com . Единственное, что вам нужно, это netcat, тогда вы можете легко поделиться с кем-либо чем-либо, что может быть показано в терминале, вот пример:

cat /etc/fstab | nc termbin.com 9999

После выполнения этой команды вы получите в ответе URL-адрес с текстовым файлом.

Чтобы сделать вашу жизнь проще, вы можете добавить такой псевдоним в ваш файл .bashrc:

echo 'alias tb="nc termbin.com 9999"' >> .bashrc

Теперь обмен будет намного проще:

uname -a | tb

Вы можете получить сохраненные, например, с помощью curl. Вы найдете больше примеров на termbin.com .

Вы также можете разместить свой собственный сервер, есть github-репозиторий: https://github.com/solusipse/fiche . Если вы хотите сделать его приватным, не забудьте установить параметр белого списка.


Есть также pastebin-cli , и добро пожаловать в U & L.SE
eyoung100

@solusipse; как долго паста будет оставаться на вашем сервере. это может быть навсегда? или есть ссылка для удаления постов
r004

1
@ r004 Как они упоминали на termbin.com, «срок службы одной пасты составляет один месяц. Старые пасты удаляются».
Veerendra

Очень интересно, но бесполезно, если вы находитесь за брандмауэром с заблокированным портом 9999. Используя nc -vвы получите nc: connect to termbin.com port 9999 (tcp) failed: No route to host.
Пабло А

5

Я использую clitxt, поскольку учетная запись не требуется, и нет никаких параметров или настроек, которые нужно помнить. Вы просто передаете команду в clitxt, и она возвращает URL. например

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

3

Я написал этот веб-сайт, специально предназначенный для вставки с помощью curl, поскольку я чувствовал, что никто не должен помнить конкретный синтаксис, как в sprunge. Он также не только с открытым исходным кодом, но и полностью переносим, ​​так что вы можете легко настроить собственную "curlpaste" с любым другим доменом. т.е. частный сервер вставки.

curl --data-binary @your-file-here.txt https://curlpaste.com

Если вы посещаете веб-сайт, есть также веб-интерфейс, который предоставляет другие опции, такие как чтение один раз и удаление.


curlpaste.com, кажется, не работает
Давиде Икарди

2

Вот еще один сервис, который предлагает это: https://ctrlv.link/

Добавьте код в файл input.txtи выполните эту команду из окна терминала:

$ curl --form "expiration=0" --form "code_type=nohighlight" \
     --form "content=<input.txt" https://ctrlv.link/insert.php

Пример с кодом C / C ++ (test.cpp):

$ curl --form "expiration=0" --form "code_type=cpp" \
     --form "content=<test.cpp" https://ctrlv.link/insert.php`

1

Недавно я создал один инструмент командной строки для пастбина https://notepad.pw/, который я часто использую

Вставить файл так же просто, как

npw -lo filename linkpath

поэтому в основном он вставляет содержимое в https://notepad.pw/

lФлаг для живого обновления Асин , если кто - то просматривает страницу , на странице будет обновляться без перезагрузки.

флаг 'o' предназначен для перезаписи, если вы его не используете, контент будет добавлен к существующему.

Вы можете установить инструмент через пункт

используя команду.

pip install npw

Вот страница GitHub.


0

Anypaste

отказ от ответственности: это мой собственный проект

В настоящее время Anypaste поддерживает около дюжины похожих на пастин сервисов (особенно это касается Hastebin и ix.io ). Вы можете передать что-то some_command | anypasteили явно перечислить файл anypaste my_code.c. Загрузка медиа также поддерживается на такие сайты, как Imgur и Gfycat; anypaste автоматически определяет тип файла, чтобы определить, куда загрузить данные.

Самый быстрый способ установки - загрузить исполняемый файл (это большой скрипт оболочки):

sudo curl -Lo /usr/local/bin/anypaste https://anypaste.xyz/sh


0

Многие пастбины не требуют специальных инструментов. Скручивание или wget подойдет.

https://paste.c-net.org/ является одним из таких примеров.

Вот фрагмент из "руководства":

Загрузить текст с помощью curl:

$ curl -s --data 'Hello World!' ' http://paste.c-net.org/ '

Загрузить текст с помощью wget:

$ wget --quiet -O- --post-data = 'Hello World!' ' http://paste.c-net.org/ '

Загрузите файл, используя curl:

$ curl --upload-file '/ tmp / file' ' https://paste.c-net.org/ '

Загрузите файл с помощью wget:

$ wget --quiet -O- --post-file = '/ tmp / file' ' http://paste.c-net.org/ '

Загрузите вывод команды или скрипта, используя curl:

$ ls / | curl --upload-файл ' http://paste.c-net.org/ '

$ ./bin/hello_world | curl --upload-file - ' http://paste.c-net.org/ '

Вы также можете просто передать материал в Netcat

$ ls / | nc paste.c-net.org 9999

В отличие от termbin, paste.c-net.org не будет иметь тайм-аут, если вашему скрипту потребуется более 5 секунд для вывода.

$ {спать 10; лс /; } | nc termbin.com 9999

$ {спать 10; лс /; } | nc paste.c-net.org 9999

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

На странице также представлены готовые функции Bash для вашего файла .bashrc.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.