如何将命令行提示符保留在终端的第一行?

PHP*_*Pst 5 terminal bash command-line cmd.exe

我需要将命令行保持在屏幕顶部,并查看其下方的任何命令的输出。如何使用任何平台上的任何可用工具来实现这一目标?

目前,在我使用过的所有终端模拟器上,如果您运行ls foo -l,结果将是:

$ ls foo -l
hi.txt
bye.txt
$ command prompt is here
Run Code Online (Sandbox Code Playgroud)

在喜欢看到这个:

$ command prompt is here
$ ls foo -l
hi.txt
bye.txt
Run Code Online (Sandbox Code Playgroud)

Kam*_*ski 2

Linux、巴什。

\n\n

Bash 使用 stderr (文件描述符2)来打印其命令提示符和命令行。用于tmux显示两个 shell,一个在另一个上面(或者只是将两个 GUI 窗口、终端模拟器一个在另一个上面)。在下一层调用tty. 从现在开始不要直接使用下壳。在上一层中,将文件描述符重定向1到下一层的 tty(例如exec 1>/dev/pts/2)。

\n\n

Ctrl+L清除上部,clear清除下部。每个部分都是多行的。由于tmux\ 的功能,您可以调整它们的大小(即上下移动边框)。

\n\n

使用它可以使命令出现在显示屏的下部:

\n\n
trap \'printf "%s\\n" "-----$ $BASH_COMMAND"\' DEBUG\n
Run Code Online (Sandbox Code Playgroud)\n\n

我测试了该解决方案,在某些时候我的终端窗口如下所示:

\n\n
kamil@foo:~$ ls -l /proc/$$/fd\nkamil@foo:~$ uname -r\nkamil@foo:~$ cat /etc/issue\nkamil@foo:~$ \xe2\x96\x88\n\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n-----$ ls --color=auto -l /proc/$$/fd\ntotal 0\nlrwx------ 1 kamil kamil 64 Sep  9 20:42 0 -> /dev/pts/3\nl-wx------ 1 kamil kamil 64 Sep  9 20:42 1 -> /dev/pts/2\nlrwx------ 1 kamil kamil 64 Sep  9 20:42 2 -> /dev/pts/3\nlrwx------ 1 kamil kamil 64 Sep  9 21:13 255 -> /dev/pts/3\n-----$ uname -r\n4.15.0-33-generic\n-----$ cat /etc/issue\nUbuntu 18.04.1 LTS \\n \\l\n
Run Code Online (Sandbox Code Playgroud)\n\n

(注意:--color=auto出现是因为 myls是别名)。

\n\n

交互式工具(如文本编辑器)可能会出现异常行为,因此最好在调用它们时恢复更改。例子:

\n\n
1>&2 nano\n
Run Code Online (Sandbox Code Playgroud)\n\n

某些 shell(例如)对命令行zsh使用单独的文件描述符。10这允许您将 stderr 重定向到下层(或另一个,第三个)tty,将命令行保留在上层。

\n


归档时间:

查看次数:

558 次

最近记录:

4 年,4 月 前