如何复制命令控制台文本?

我使用了wpa_passphrase命令,我得到这样的东西:

network = {ssid =“blahblah”#psk =“moreblahblah”psk = d5e532ecca53ea963e5b3b5521bb3682c53fcf5b6d55f15622027145c795b661}

我需要将“psk = [long string]”复制到我的wpa_supplicant.conf文件中。 如何选择它才能复制? 然后我用什么命令来复制它? 这样在我最喜欢的文本编辑器中我可以按粘贴命令来粘贴它吗? (ps。我没有鼠标)

如果您有触摸板,请突出显示文本并按Ctrl + Shift + C复制…

以下资源描述了如何仅使用键盘进行复制/粘贴 – screen / byobu:

如何将Byobu的复制缓冲区与X剪贴板集成?

http://www.samsarin.com/blog/2007/03/11/gnu-screen-working-with-the-scrollback-buffer/

在Scrollback模式下复制和粘贴(屏幕/ byobu)

  • 进入回滚模式: Ctrl + A + [或byobu也F7
  • 将光标移动到要复制的文本的开头,按空格键
  • 将光标移动到要复制的文本的末尾,然后按Enter键
  • 要粘贴文本,请按Ctrl + A + ]Alt + Insert

试试这个:

wpa_passphrase | awk '/psk/ {print $4}' >> wpa.supplicant.conf 

命令应该取出“psk = d5e532ecca53ea963e5b3b5521bb3682c53fcf5b6d55f15622027145c795b661”部分并将其复制到wpa.supplicant.conf文件的末尾。 如果没有获得wpa_passphrase命令的正确部分,请尝试将$4更改$4 $3$2

可能不完美但是一种解决方法。 可能是你可以在一个文件中写输出然后进入文件删除不必要的文本并使用cat你可以将它附加到wpa_supplicant.conf

基本上您的工作流程将是:

command > rough

nano rough在这里删除不必要的文本,并保持必要的,即psk

sudo sh -c "cat rough >> wpa_supplicant.conf"

或者也许你可以使用vim来抽取在视觉模式中选择它的所需文本。

PS对sed有很好了解的人会给你一个比我想象的更容易的解决方案。

下一个sed命令将从wpa_passphrase的输出中获取密钥(由hex集中的字符组成)并将其放入临时文件pass

 wpa_passphrase | sed 's/.*psk=\([0-9a-f]*\).*/\1/' > pass 

由于您没有鼠标,因此您无法选择并复制它。 我们将使用nano texteditor插入此传递:

 nano wpa_suppliciant.conf 

使用箭头键移动到所需位置,然后按Insert 。 输入您刚刚创建的文件的名称, pass ,然后输入。 按Ctrl + X退出并保存结果,然后输入Y然后按Enter确认

当然,最常见的方法是使用鼠标或其他指点设备(如触摸板)。 虽然它有点偏心,但可以在没有鼠标的情况下复制文本。 (当然,您可能有正当理由不使用指点设备。)查看xclip ,如本答案所示 。 因此你可以使用:

 wpa_passphrase | xclip -sel clip 

您可以在byobu中设置键绑定,以便能够将在byobu缓冲区中选择的文本发送到X剪贴板。

将以下内容添加到~/.byobu/keybindings

 # Add cool line to make copying to x clipboard possible. # This binds Ca b to copy screen's copy buffer to the system clipboard. bind b eval writebuf 'exec /bin/sh -c "xsel -i < $BYOBU_RUN_DIR/printscreen"' 

然后使用通常的F7,移动,空格开始选择,移动,进入保存到buffrer,然后你可以用Ca b (Ctrl-a,然后b)将它保存到剪贴板

(基于https://dodoincfedora.wordpress.com/2012/06/23/integrating-byobuscreens-copy-buffer-with-xgnome-clipboard/ )