如何在bash提示之前换行?

Ksh*_*rma 8 bash

如何将我的 bash 提示配置为在它之前有一个换行符?

代替:

Output1
Output2
kshitiz@ksh$
Run Code Online (Sandbox Code Playgroud)

它应该有:

Output1
Output2

kshitiz@ksh$
Run Code Online (Sandbox Code Playgroud)

Sly*_*lyx 12

cd $HOME
more >> .bashrc << 'EOT'
PS1='\n$USER:$PWD>' ; export PS1
EOT
Run Code Online (Sandbox Code Playgroud)

这将为您以后的所有终端和控制台会话永久执行。

要使用此设置刷新当前会话:

. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)


slm*_*slm 5

寻找到曾经的提示您的系统上定义,通常我用grep用于PS1/etc/bashrc/etc/profile.d/*$HOME/.bash*

然后\n在该定义的开头添加一个。

例如在我的 Fedora 19 系统上:

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
Run Code Online (Sandbox Code Playgroud)

所以我会把这一行改成这样:

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="\n[\u@\h \W]\\$ "
Run Code Online (Sandbox Code Playgroud)

或者,如果您不知道它的定义位置,您仍然可以使用此技巧随意更改它。在您的$HOME/.bashrc文件中,只需将此行添加到文件底部:

export PS1="\n$PS1"
Run Code Online (Sandbox Code Playgroud)

例子

$ export PS1="\n$PS1"

$ ls
ve2_sq021_sc001_v09.0101.jpg  ve2_sq021_sc001_v09.0103.jpg
ve2_sq021_sc001_v09.0102.jpg  ve2_sq021_sc001_v09.0104.jpg

$ ls
ve2_sq021_sc001_v09.0101.jpg  ve2_sq021_sc001_v09.0103.jpg
ve2_sq021_sc001_v09.0102.jpg  ve2_sq021_sc001_v09.0104.jpg

$ 
Run Code Online (Sandbox Code Playgroud)