如何修改linux控制台提示行(暂时)

如何修改linux控制台提示行(暂时)

例如我输入了这样的命令:

user@my-machine:~$ cd ABC
user@my-machine:~/ABC$ cd long-name
user@my-machine:~/ABC/long-name$ cd another-long-name
user@my-machine:~/ABC/long-name/another-long-name$ ls

所以,我选择了我需要的目录,并且我需要在其中工作(很多命令)。但我的控制台行的一半是提示行。不太舒服。我可以缩短一段时间吗?例如,我会做到这一点user@my-machine:~foo$,当我完成这个目录中的工作时 - 我会关闭这个缺点。

有没有办法做到这一点?

答案1

提示格式在PS1环境变量中;请参阅bash联机帮助页prompting的格式说明符部分。

10:50:39 user@host:1996 ~$ echo $PS1
\t \u@\h:\! \W$

唯一\W像您(?)想要的那样打印顶级目录。 (\w像现在一样打印整个内容)。

10:50:45 user@host:1997 ~$ PS1='\u@\h:\W$ '
user@host:~$ cd test
user@host:test$ cd testdir/
user@host:testdir$ 

您可能希望首先将旧内容保存PS1在变量中(例如,$ export OLDPS1=$PS1),以便在完成后可以恢复它($ PS1=$OLDPS1)。

答案2

我只是将提示符放在第二行,并将用户/目录信息放在第一行。

我的 bash 提示符示例:

birryree@momohime:/usr/bin
$ command-here

如果您使用 bourne-shell 或 bash,则环境变量PS1决定提示的格式。

我有这个~/.bash_profile(你可以使用.bashrc,我有我的.bashrc来源 my .bash_profile)。

# ~/.bash_profile
PS1="\u@\h:\w\n$ " # \u means user name
                   # \h means hostname
                   # \w is working directory
                   # \n is newline
                   # $ is my prompt

和我的.bashrc

# ~/.bashrc
source ~/.bash_profile

为了好玩,我的 zsh 提示符如下所示:

birryree@momohime:~/.oh-my-zsh master* 
λ > 

master*意味着我位于 git 存储库的 master 分支上(~/.oh-my-zsh是 git 控制的目录),并且该目录不干净。


你可以非常喜欢你的 bash 提示,在切换到 zsh 之前我曾经做过颜色和所有事情。

本节包含所有转义:

相关内容