如何使可见的命令行更长?

如何使可见的命令行更长?

我有一台运行定制Linux的机器,我通过PuTTY登录系统。

原来我使用的bashPS1

sh-4.1# echo $PS1
\s-\v\$

当我输入以下内容时:

sh-4.1# ls a very long path i will not be able to see the rest of the command line

我再看看吧

sh-4.1#
< i will not be able to see the rest of the command line

我可以使用左箭头键向前移动:

sh-4.1# ls a very long path i will not be able to see the rest of the command >

这非常不方便,因为您必须移动光标才能看到命令行的其余部分。

我怎样才能显示整个命令行?

答案1

没有人sh再使用它,它始终是特定于发行版的默认 shell 的符号链接(ashkshbashdashzsh等)。您可以使用readlink -e $(which sh)

您是否正在使用或终端仿真器(Virtual Terminal例如gnome-terminal、、等)?xtermkonsole

无论如何,这里有一个技巧:按CTRL++初始化编辑器(由环境变量设置) X,然后保存并退出,您的长命令将被执行。EEDITOR

您可能希望使用以下方法更改默认编辑器export EDITOR="nano -w"

来源:Commandlinefu - 快速调用编辑器来编写长、复杂或棘手的命令

答案2

你内心似乎没有什么奇怪的事情发生PS1变量,因此将焦点从您正在使用的 shell 上转移开。

PuTTY,嗯?快速搜索后,找到了错误报告关于包装。我使用摩巴Xterm有时我不得不使用 Windows(太可怕了)。

但是,启动虚拟机后,Auto wrap mode initially on默认情况下会启用 lo-and-behold,并且它确实有效。您启用了此设置吗?

腻子文字换行

答案3

如果您确实必须一次性输入路径,我可能会建议更改提示。如果您不介意返回 bash,您可以在 PS1 变量定义的末尾附近添加换行符,这会将样板移到单独的行,从而为您提供更多可用的行。这可以通过编辑来完成.bashrc,如下所示:

# Original line from ~/.bashrc:
PS1='\s-\v# '
# ^^ prints "bash-4.2# _" as the prompt on my system
# (Ignore parens, underscore shows cursor position)
# or insert '\n':
PS1='\s-\v\n# '
#         ^^ newline, now prints
# "bash-4.2
#  # _"

这样做的缺点是,您的提示现在占用了更多的屏幕空间,并且根据您原来的提示,每行可能只会给您提供几个字符来处理。

话虽如此,真的必须立即输入路径吗? 可能值得cd向下输入几个级别(因为您已经从路径中知道了它们的位置),然后运行ls或执行其他操作。

相关内容