坦白说,这不是 ubuntu 特有的,而是 SQLite shell 特有的。无论如何,也许你们中有人知道一些提示。顺便说一句,我是 Linux 初学者……
我正在使用 SQLite 及其 shell 进行输入,不小心按到了向上箭头键。不幸的是,它没有与之关联的历史记录 readline 功能,而且我无法更改这一点。shell 输入正在等待识别的某个结束行,但可能处于某种特殊的转义模式……所以我的 shell 会话将因我按Ctrl+而终止Z。我尝试的任何其他键都没有改变任何东西。
有人能提供一些提示吗?是否可以改变这种行为,以便按下标准键盘上的那些“特殊”键时不会发生任何反应?
答案1
如果Ctrl+Z不起作用,那么您可以使用以下命令:-
sqlite> .exit
欲了解更多信息,请使用:-
sqlite> .help
答案2
显然,这种行为是已知的,并且是“故意的”。之所以如此,是因为 sqlite 开发人员不想让 sqlite 依赖于 readline(为 shell 提供箭头功能的库),因为它不存在于所有 GNU/Linux 发行版中。因此,他们不会分发包含 readline 功能的二进制文件。
为了获得更标准的 sqlite shell,您必须从源代码构建 sqlite。这并不难,只需在临时目录中运行以下命令:
apt-get source sqlite3 cd sqlite3-* ./configure make sudo make install
之后,您只需键入 即可进入您自己构建的版本sqlite3
。
更多信息这里。
至于“退出命令”,Ctrl+Z实际上暂停正在运行的程序并将其发送到后台. 如果你想退出 sqlite shell,你应该使用Ctrl+D