例如我输入了这样的命令:
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 之前我曾经做过颜色和所有事情。
本节包含所有转义: