在 linux 控制台中,如何不包装输出

Ber*_*ala 11 linux terminal

在 (linux) 终端中,有时查看行尾并不重要,但更重要的是不要弄乱行首。例如

line1 sddd dd ddd
line2 sdafss ss s
line 3 da aaaa aa 
Run Code Online (Sandbox Code Playgroud)

而不是

line1 sddd dd ddd
dd dddd dd
line2 sdafss ss s
s ss
line 3 da aaaa aa 
Run Code Online (Sandbox Code Playgroud)

有没有办法以与“less -S”相同的方式“剪切”或“隐藏”在终端窗口末尾结束的行,但对于正常输出?

LSe*_*rni 22

换行禁用支持取决于终端。例如,如果使用screen你可以点击Ctrl- A Ctrl-R来切换换行。

否则,您可以尝试setterm -linewrap off增加或不增加终端列的数量stty(尚未尝试过)。

像 PuTTY 这样的终端模拟器(如果您从 Windows 设备连接到服务器)有自己的设置

如果终端支持VT 转义码echo -ne "\x1b[7l"将禁用屏幕换行(echo -ne "\x1b[7h"将启用它)。

请注意,在一个终端中有效的内容可能在另一个终端中无效-例如,我现在在带有 bash 的 Linux OpenSuSE 12.3 上的 PuTTY 窗口上,使用screen: 它的控制序列可以完美运行,而 VT 代码和术语则不能。在较旧的 SuSE 11(不是 GUI)上的文本模式控制台上,VT 序列有效(可能screen也有效),stty显然被忽略了。

  • 它实际上是以小写 L 结尾的 `"\x1b[?7l"` (2认同)