Linux上是否有任何命令行工具可让您将命令或文本文件的输出直接发布到共享服务(例如pastebin.com)上?
Linux上是否有任何命令行工具可让您将命令或文本文件的输出直接发布到共享服务(例如pastebin.com)上?
Answers:
有几种服务可以提供此功能,但是从命令行中很容易使用的两项服务是fpaste
and pastebinit
。这两个工具链接到站点paste.fedoraproject.org和pastebin.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
有关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.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 FAQ中包含以下主题的完整语法支持列表:该主题提供哪些语言突出显示?。
有关更多详细信息,请检查手册页man pastebinit
。
这是我发布到每个服务的文件的2个示例。
fpaste- http: //ur1.ca/gddtt
pastebin- http: //pastebin.com/jGvyysQ9
pastebinit -l
。
我喜欢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>
以达到相同的效果。
即使没有加载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。如果要使其私有,请不要忘记设置白名单参数。
nc -v
你会得到nc: connect to termbin.com port 9999 (tcp) failed: No route to host
。
我写这个网站是专门为通过curl粘贴而设计的,因为我觉得没有人需要记住sprunge中的特定语法。它不仅是开源的,而且是完全可移植的,因此您可以轻松地与任何其他域一起设置自己的“ curlpaste”。即私人粘贴服务器。
curl --data-binary @your-file-here.txt https://curlpaste.com
如果您访问该网站,则还有一个Web界面,该界面提供其他选项,例如“一次读取”和“删除”。
这是另一项似乎可以提供此服务的服务: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`
我最近为pastebin https://notepad.pw/创建了一个命令行工具,我经常使用
粘贴文件就像
npw -lo filename linkpath
所以基本上它将内容粘贴到https://notepad.pw/
该l
标志用于实时更新,因为如果其他人正在查看该页面,则该页面将更新而无需重新加载。
如果您不使用'o'标志,则该标志将被覆盖,其内容将附加到现有标志的后面。
您可以通过pip安装该工具
使用命令。
pip install npw
这是github页面。
许多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
该页面还为.bashrc文件提供了预制的Bash函数。