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

我最近问了一个关于Ask Ubuntu(或其他地方)的问题,并且评论或回答要求我粘贴某个文件的内容或命令的输出来解决我的问题。

我怎么做?

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

您将文件或命令输出粘贴到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/forms的链接,如下所示。 将鼠标移到它上面,它将加下划线 – 然后右键单击并单击复制链接地址将其复制链接到剪贴板:

    在此处输入图像描述

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

    • | 可以通过按Shift + \获得符号,它通常位于Backspace键下方。
    • 将鼠标移到链接上 – 它将加下划线 – 右键单击​​并复制链接地址 ,如上所述。 在此处输入图像描述

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

  • 返回浏览器,使用Pastebin链接添加注释(或编辑您的问题) – 只需按Ctrl + V即可粘贴它。 保存已编辑的问题或添加评论,就是这样!

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

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

    在此处输入图像描述

    • 注意行号 。 您也可以将选中/请求的行直接复制并粘贴到AskUbuntu问题中。
    • 请将粘贴的行用
      
      

      标记括起来,如下所示,这样它在问题中显示为单独的行而不是混杂在一起: 在此处输入图像描述


使用编辑器将文件粘贴到文件的备用方法

如果您在使用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将刚从编辑器复制的文本粘贴到其中:

    在此处输入图像描述

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

    在此处输入图像描述

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

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

通常,bash有一个名为“script”的实用程序,它创建一个写入文件的子终端。 例如,如果你这样做:

 script ask-ubuntu.txt 

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

然后,您可以显然复制文件的内容,或上传文件,无论您需要它。

如果您不一定要在Pastebin上共享输出,则另一个选项是使用xclip 。 它将您在标准输入上提供的内容添加到X选择或剪贴板中。

首先,使用以下命令安装xclip

 sudo apt-get install xclip 

默认情况下,xclip将复制的文本放入x选择而不是剪贴板。 由于标准的复制和粘贴function使用剪贴板,我们也会使用xclip而不是默认设置。

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

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

     xclip -sel clip < file 

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

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

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

使用pastebin或pre标签对于较长的材料很重要,这样它就可以从问题/答案的其余部分中分离出来,这样就不会分散人们对post其余部分的注意力。

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

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

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

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

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

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

例子

 eightnoteight@mr:~$ date > date.txt eightnoteight@mr:~$ echo yes! it really works with echo too > echotest.txt