粘贴命令行输出以粘贴bin服务的简单方法?


38

Linux上是否有任何命令行工具可让您将命令或文本文件的输出直接发布到共享服务(例如pastebin.com)上?


2
当与一个不错的shell脚本搭配使用时,我最喜欢的是Sprunge
DopeGhoti 2014年

查看https://paste.c-net.org/它具有Bash功能,可从命令行轻松使用,而无需安装其他程序。好吧,除了卷曲,反正您可能也有:)
螺栓

Answers:


34

有几种服务可以提供此功能,但是从命令行中很容易使用的两项服务是fpasteand pastebinit。这两个工具链接到站点paste.fedoraproject.orgpastebin.com

糊状

注意:这是仅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 fpaste更多详细信息,请参见手册页。

糊状

这可能是2种工具中比较流行的一种。我经常访问的大多数发行版(例如Fedora,CentOS和Ubuntu)都支持该功能。它具有fpaste与之相似的功能,但您可以做更多的事情,例如:

服务清单

首先,我们可以通过-l开关获取所有“受支持” URL的列表。

$ 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.orgFedora,因此您也可以使用此工具来覆盖该粘贴服务。

发布一个简单的文本文件

将样本文件发布到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 FAQ中包含以下主题的完整语法支持列表:该主题提供哪些语言突出显示?

有关更多详细信息,请检查手册页man pastebinit

样品

这是我发布到每个服务的文件的2个示例。

fpaste- http: //ur1.ca/gddtt

   ss的fpaste

pastebin- http: //pastebin.com/jGvyysQ9

   pastebinit ss

参考文献


与IMO的SprungeHastebin相比,所有这些都显得苍白。(:
DopeGhoti 2014年

是的,我听说Sprunge有多棒,BTW直到今天都没有听说过。那里的网站就像/ dev / null一样,我发现界面与实际工具(如我列出的工具)比较尴尬。但这就是为什么我们有这么多的选择,以便每个人都可以选择自己喜欢的东西的原因8-)。另一方面,Hastebin看起来更精致,我希望您可以托管自己的实例,最长30天的持续时间对我来说是个破坏力。
slm

还要注意,pastebinit可以发布到sprunge.us。在提供的列表中pastebinit -l
slm

请注意,示例pastebinit命令使用您的本地用户名作为粘贴标题,这是一个令人不愉快的惊喜
Dubslow

22

我喜欢Arch Wikicurl上列出的两个使用的命令行工具:

<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 附加到URL(http://ix.io/ID/)以获得默认语法,或者/ID/<language>/显式设置pygments高亮显示的语言。

对于http://sprunge.us,附加?<language>以达到相同的效果。


您可以设置样式或选择代码类型,还是可以根据粘贴的内容自动突出显示语法?
slm

并不是我所知道的:它只是粘贴文本。但是我没有进一步研究它,因为这就是我所需要的。
jasonwryan 2014年

很好,我只是不确定是否可以在请求中包括额外开关等方面的curl接口。
slm

我找到了。您可以加价吗?紧接着是langugae的名称以获取突出显示和行号。参见以下示例:sprunge.us/MFMY?bash
slm

仅仅是最好,最简单的解决方案。爱archlinux社区:)
nXqd 2015年

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 2014年

1
@ r004正如termbin.com中提到的那样:“单个粘贴的寿命为一个月。较旧的粘贴将被删除。”
Veerendra

非常有趣,但是如果您位于端口9999被阻止的防火墙后面,则没有用。使用nc -v你会得到nc: connect to termbin.com port 9999 (tcp) failed: No route to host
Pablo A

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

如果您访问该网站,则还有一个Web界面,该界面提供其他选项,例如“一次读取”和“删除”。



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

我最近为pastebin https://notepad.pw/创建了一个命令行工具,我经常使用

粘贴文件就像

npw -lo filename linkpath

所以基本上它将内容粘贴到https://notepad.pw/

l标志用于实时更新,因为如果其他人正在查看该页面,则该页面将更新而无需重新加载。

如果您不使用'o'标志,则该标志将被覆盖,其内容将附加到现有标志的后面。

您可以通过pip安装该工具

使用命令。

pip install npw

是github页面。


0

任何粘贴

免责声明:这是我自己的项目

目前,Anypaste支持大约十二种类似pastebin的服务(最著名的是Hastebinix.io)。您可以通过管道some_command | anypaste传输内容或显式列出文件anypaste my_code.c。Imgur和Gfycat等网站也支持媒体上传;anypaste自动检测文件类型,以确定将输入上传到何处。

最快的安装方法是下载可执行文件(这是一个很大的Shell脚本):

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


0

许多pastebins不需要任何特殊工具。卷发或wget都可以。

https://paste.c-net.org/就是这样一个例子。

这是“手册”的摘录:

使用curl上传文字:

$ curl -s --data'世界你好!' ' http://paste.c-net.org/ '

使用wget上传文本:

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

使用curl上传文件:

$卷曲--upload文件'/ tmp目录/文件' ' https://paste.c-net.org/ '

使用wget上传文件:

$ wget的--quiet -O- --post文件= '/ TMP /文件' ' http://paste.c-net.org/ '

使用curl上传命令或脚本的输出:

$ ls / | 卷曲--upload文件“ http://paste.c-net.org/

$ ./bin/hello_world | 卷曲--upload文件- “ http://paste.c-net.org/

您也可以简单地将内容通过管道传送到netcat

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

与termbin不同,paste.c-net.org不会在脚本花费超过5秒的时间来产生输出时超时。

$ {睡眠10; ls /; } | nc termbin.com 9999

$ {睡眠10; ls /; } | nc paste.c-net.org 9999

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

该页面还为.bashrc文件提供了预制的Bash函数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.