如何轻松与他人共享命令或文本文件的输出?


59

我最近在Ask Ask Ubuntu(或其他地方)上问了一个问题,评论或答案要求我粘贴某些文件的内容或命令的输出以解决我的问题。

我怎么做?

Answers:


73

如何轻松共享全部或部分文本文件(或命令的输出)

您将文件或命令输出粘贴到Ubuntu的“ pastebin”服务中,然后允许其他人通过简单地共享链接来查看它,或者自己使用它来进一步复制并在问题中粘贴几行。

注意:如果您的问题涉及软件中心,Update Manager或apt-get无法运行,则可能必须在此答案底部附近使用“ 备用方法 ”。

1.启动终端

  • 该终端使您可以通过键入命令而不是使用鼠标/光标与系统进行交互。有指示时,它并不难用,并且可以使某些任务非常容易完成。
  • 同时(同时)按Ctrl+ Alt+ T键启动终端。这将适用于使用常规Ubuntu的每个人,但是如果您正在使用...

    • Lubuntu:单击开始按钮,转到附件,然后单击LXTerminal
    • Xubuntu右键单击桌面上的任意位置,然后单击“在此处打开终端”
    • Kubuntu:单击“开始”按钮,在“搜索”框中键入konsole,然后单击Konsole

    如何在L / X / K-ubuntu上启动终端

    • 您将获得一个背景稳定的窗口,其中显示您的用户名和计算机名称,如下所示(大小/颜色可能有所不同!):

    在此处输入图片说明

2.安装pastebinit,这是一个从终端粘贴文本的小工具

  • 在您的终端中,键入sudo apt-get install pastebinit并按Enter
  • 输入密码并按Enter(输入的内容不会显示,请放心)
  • 当被问到您是否要继续?,键入Y并按Enter,然后等待提示(user@machine)返回。

    在此处输入图片说明

3.粘贴文件或命令并将其URL粘贴到AskUbuntu上

  • 返回浏览器,选择要求粘贴其内容的确切文件名(或命令),然后按Ctrl+ C将其复制到剪贴板。
    • 文件名可能看起来像/etc/apt/sources.list,而命令可能只是像dmesggrep -i failed /var/log/auth.log。答案或注释将明确告诉您它是文件还是命令。
  • 现在,对于文件,输入pastebinit终端,后跟一个空格;然后右键单击光标,然后单击“ 粘贴”以粘贴您复制的文件名。

    在此处输入图片说明

  • Enter,几秒钟后,您将看到http://paste.ubuntu.com/如下所示的表格链接。将鼠标移到它上面,将在其下划线 -然后右键单击并单击Copy Link Address将其链接复制到剪贴板:

    在此处输入图片说明

  • 但是对于命令请先将命令复制并粘贴到终端中,然后
    | pastebinit在其后键入,然后按Enter(请参见下面的屏幕截图)

    • |符号可以通过按Shift+ 来获得\,通常在Backspace键下方。
    • 将鼠标移到链接上(将带有下划线的地方),右键单击并复制链接地址,如上所述。 在此处输入图片说明

4.将链接粘贴到您的AskUbuntu问题/评论中

  • 返回浏览器,并使用Pastebin链接添加评论(或编辑您的问题)-只需按Ctrl+ V即可粘贴。保存已编辑的问题或添加评论,仅此而已!

5.可选:查看您的pastebin链接,仅将其中的选定行粘贴到AskUbuntu中

  • 您也可以将链接粘贴到浏览器的地址栏中,或者在将链接添加/编辑到AskUbuntu后单击链接,以在pastebin上查看它。它看起来类似于:

    在此处输入图片说明

    • 注意行号。您也可以从此处直接将选定的/请求的行复制并粘贴到AskUbuntu问题中。
    • 请使用<pre></ pre>标记将粘贴的行括起来,如下所示,以使它在问题中显示为单独的行,而不是混杂在一起: 在此处输入图片说明

使用编辑器粘贴文件的另一种方法

如果您在Software Center,Update Manager上遇到问题,或者apt-get无法安装pastebinit,这可能很有用;它仅适用于文件,不适用于命令。

  • 选择并使用Ctrl-C将文件名从AskUbuntu复制到剪贴板。
  • 打开一个终端,如步骤1所示,键入gedit,后跟一个空格,然后右键单击以粘贴文件名,如步骤3所示,然后按Enter

    • Lubuntu用户键入leafpad而不是gedit; Kubuntu用户类型kate
  • 编辑器将打开文件:

    在此处输入图片说明

  • 单击编辑器窗口内的任意位置,然后按Ctrl+ A。现在,所有文本应以另一种颜色突出显示:

    在此处输入图片说明

  • 现在按Ctrl+ C(或“复制”按钮,如果您知道该位置),将整个文件复制到剪贴板。

  • 转到浏览器,然后打开paste.ubuntu.com。在Poster:框中输入您的姓名/昵称;然后在Content:框中单击,然后按Ctrl+ V将刚刚从编辑器复制的文本粘贴到其中:

    在此处输入图片说明

  • 单击Paste按钮,几秒钟后,您将看到粘贴的文本:

    在此处输入图片说明

  • 选择地址栏中显示的地址(上面突出显示的橙色),使用Ctrl+ 复制C,然后返回AskUbuntu并按照步骤4中的说明将其粘贴。

  • 或者,选择几行,复制它们,然后按照步骤5中的说明将其粘贴到AskUbuntu中。

那么当我要求输入密码时我该怎么写?另外,有人可能希望共享完整的文件,因为那是cat file | pastebinit;)
Braiam 2013年

2
我不喜欢在这些论坛上使用ubuntu pastebin,因为它是无常的。较旧的问题和答案都带有漏洞,因为旧的粘贴框被删除了。
Insperatus 2014年

几乎没有问题,pastebin上传后就无法编辑/删除。如果公司敏感信息/密码意外发布,这非常重要。就像@Insperatus提到的一样,旧的pastebin过期了,旧的问题也断开了链接
gerrytan

您使用了什么工具来带阴影的终端窗口截图?而且,您是如何添加箭头和注释的?非常时尚,很棒!
2015年

8

通常,bash具有称为“脚本”的实用程序,该实用程序创建了一个写入文件的子终端。例如,如果您这样做:

script ask-ubuntu.txt

它将创建一个新的bash提示符,并且当您退出子Shell时,所有输入和输出将存储在ask-ubuntu.txt文件中。

然后,您可以根据需要复制文件的内容或上载文件。


太整齐了!(使用Ctrl-D退出子shell,顺便说一句)
汤姆(Tom

使用“退出”命令也可以。
James Kingsbery 2012年

7

如果您不一定要在Pastebin上共享输出,另一种选择是使用xclip。它采用您在标准输入上提供的内容,并将其可选地放置在X选择或剪贴板中。

首先,安装xclip

sudo apt-get install xclip

默认情况下,xclip将复制的文本放入x选择中,而不是剪贴板中。由于标准的复制和粘贴功能使用剪贴板,因此我们还将让xclip代替默认值使用它。

  • 要将命令的输出复制到剪贴板:

    command | xclip -sel clip
    
  • 复制文件内容:

    xclip -sel clip < file
    

要粘贴,请使用标准的shorcut Ctrl+ V,或右键单击并选择粘贴。


3

即使没有加载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。如果要使其私有,请不要忘记设置白名单参数。


2

在上面的出色答案中,我可能错过了一些内容,但是如果您要复制的内容相对较小,那么您要做的就是将其显示在屏幕上(例如,终端中的cat文件名或在编辑器中打开文件),用鼠标突出显示所需的文本,然后将其复制到剪贴板中。到达那里后,您可以将其粘贴到网络上的回复或电子邮件中,等等。

对于较长的材料,使用pastebin或pre标签非常重要,这样可以使其与其余的问题/答案区分开,以免分散人们对帖子的其他注意力。


0

我可能误解了这个问题,但是我发现在终端中,您可以在选择需要用鼠标复制的内容后使用以下内容:

  • Ctrl+ Shift+ c (复制)
  • Ctrl+ Shift+ v (粘贴)

显然,一旦在AskUbuntu或浏览器的任何论坛中,您都可以使用常规Ctrl+ CCtrl+ V

这可能是12.04中的新增功能,因为我是一个相对较新的用户,而且似乎没有其他人事先提到过它,但是对我来说,这似乎比安装软件或运行命令行更简单,更快捷,特别是对于相对较新的用户。希望这有助于补充Izx令人难以置信的完整答案。


0

我不知道为什么没人提到这个解决方案。

如果要将输出编译为文本文件,只需在终端命令中添加“> filename.txt”(不带引号)

例子

eightnoteight@mr:~$ date > date.txt
eightnoteight@mr:~$ echo yes! it really works with echo too > echotest.txt
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.