我在Ubuntu上使用sqlite3命令行程序。
我希望看到它的输出在屏幕上分页。
所以,例如,我会这样开始:
# sqlite3
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> _
然后,在sqlite提示符下,如果我输入.help
:
sqlite> .help
我看到一个很长的“页面”帮助信息,它会在屏幕上显示最后几行。
我不是一个快速读者,因此无法在几毫秒内读取所有信息。
那么,我如何确保我一次只能看到一个屏幕?
在正常的命令行用语中,这可以通过管道传递给| less
或| more
但是,这似乎不适用于此sqlite交互式shell。
答案 0 :(得分:7)
它似乎没有内置的东西。但是,你可以使用 Cntrl + PgUp 和 Cntrl + PgDn 来从一个不同的页面上下移动终端(在Ubuntu中默认为gnome-terminal,因此应该可以工作)。
此外,您可以从shell调用命令,例如:
$ echo .help | sqlite3 2>&1 | more
sqlite3在stderr
打印输出,因此重定向2>&1
。对于SQL命令,您可以使用:
$ sqlite3 my.db "select * from my_table;" | more
等等。
答案 1 :(得分:0)
您可以使用sqlitestudio,它将输出发送到带滚动条的窗口。 https://sqlitestudio.pl/index.rvt
答案 2 :(得分:0)
在dbcli集合中,与sqlite兼容的litecli于2018年问世。它可以使用$PAGER
环境变量或~/.config/litecli/config
中定义的寻呼机。由于该实用程序提供颜色支持,因此将其设置为less -SniFXR
(?)。
另一种方法是让sqlite3
写入输出文件/管道,并在第二个终端窗口或less -f -S /tmp/sqlpipe
窗格中使用tmux
来读取它。启用
.shell mkfifo /tmp/sqlpipe
.output /tmp/sqlpipe
由于不必重复输入命令,可以在启动时使用~/.sqliterc
来设置它们。 formatting进一步改善了输出,尽管最后litecli
是一个更为舒适的解决方案。