有一个包含 bash 命令的文本文件。
有没有办法使用 vi 从该文件复制一行并将其粘贴到控制台?它也可能是 nano。
这是仅控制台服务器安装。没有鼠标。
答案1
GPM,“通用鼠标”在控制台中提供鼠标功能,最有用的可能是剪切和粘贴。
从手册页中:
此软件包旨在成为运行在 Linux 控制台上的应用程序的有用鼠标服务器。它基于“selection”软件包,其部分代码来自selection本身。此软件包旨在替代“selection”作为剪切粘贴机制;它还提供其他功能。
“特殊命令”部分概述了其他功能
sudo apt-get install gpm
一般来说它开箱即可工作,至少我不需要手动配置它。
但关于如何配置它的一个很好的概述请参见http://www.cyberciti.biz/tips/howto-linux-configure-the-mouse-at-a-text-based-terminal-for-copy-and-paste-operation.html
或手册页
答案2
在 bash 中,可以编辑当前的在编辑器中按 命令CtrlxCtrle。
所以:
- 从新提示开始,按CtrlxCtrle。这将打开一个新的空白编辑器,最好是 Vim(我相信编辑器由
VISUAL
和EDITOR
变量决定)。 - 在新选项卡或拆分中打开包含命令的文件。
- 将相关命令复制到原始缓冲区(可能命名为类似的
bash-fc-xxxxxxxx
)。 - 保存并退出。瞧!
答案3
有vi
一个可视模式,可让您直观地选择文本。您可以按 进入此模式v。进入此模式后,您可以使用箭头键选择要复制和粘贴的文本。然后使用y复制,p使用 粘贴(到您想要的位置),最后您可以使用 d 剪切文本(或删除它)。
你可以得到一个支持 X 的特殊版本vim
,因此允许访问系统剪贴板。但是,为了避免让它们大量存在(因为默认版本没有这些扩展功能),最好从源代码编译,如下所示这个人建议。因此,要执行此操作,请先确保您已mercurial
安装,如果尚未安装,则安装它:
sudo apt-get install mercurial
一旦确定已安装,请获取以下编译依赖项vim
:
sudo apt-get build-dep vim
然后使用以下命令获取源代码:
hg clone https://vim.googlecode.com/hg/ vim_source
最后我们需要编译它:
cd vim_source
./configure \
--enable-perlinterp=dynamic \
--enable-pythoninterp=dynamic \
--enable-rubyinterp=dynamic \
--enable-cscope \
--enable-gui=auto \
--enable-gtk2-check \
--enable-gnome-check \
--with-features=huge \
--with-x \
--with-compiledby="Your Name <[email protected]>" \
--with-python-config-dir=/usr/lib/python2.7/config
make && sudo make install
请注意:这将在 中安装它/usr/local
,因此您需要确保它PATH
之前在您的系统中/usr
,以便使用它来代替默认的 Ubuntu 版本。
然后你应该能够使用以下命令:
"+y
复制到系统剪贴板。并且:
"+p
从中粘贴。
答案4
我不知道 Linux 控制台中是否有全局缓冲区。
我找到了一个解决方法。可以在 vi 或 nano 中复制和粘贴。
如果需要执行某个命令、命令的一部分或修改后的命令,我会将其复制到文件末尾,然后关闭编辑器并运行
tail -1 file.txt | bash
文件中的某些行可以通过
sed -n <line_number> file.txt | bash
或者
grep <pattern> file.txt | bash
但这并没有完全回答我的问题。这只是一种解决方法。