要知道控制台中我的 CWD 是什么,我将以下内容添加到 ~/.bash_profile 中:
export PS1='$(pwd)$ '
因此,pwd
结果显示在$
符号之前。这个真好。
但是当我进入一个长名称的目录时:/var/www/vhosts/beta.sitename.co.uk/httpdocs/sites/beta.sitename.co.uk/modules/bundles
在命令提示符中我看到:
.co.uk/modules/bundles$ sitename.co.uk/httpdocs/sites/beta.sitename.
这使得 shell 几乎无法使用。是否可以修剪它,仅保留最后一部分或目录名称?比如说,30 个字符。
pwd
或者,也许更好的主意是在每个命令之后打印cd
,这样我就可以知道我在哪里?这可以使用别名来完成。
答案1
在 my 中.bashrc
,我的 PS1 配置为显示当前工作目录的最后一个组件。这可以使用\W
(PS1 允许一些特殊序列和变量)来完成。在你的情况下,那就是:
$ export PS1='\W$'
更多这些序列可以在man bash
、 at Prompting
、看这里。您也可以使用\w
完整路径,但$HOME
缩写为~
(这会缩短大部分路径)。现在,如果您确实想设置字符限制,您可以使用...
$ export PS1='$(pwd | tail -c30)$' # Limited to 30 characters
$ export PS1='...$(pwd | tail -c30)$'
...或者有一点羞涩:
$ export PS1='${PWD: -30}$'
$ export PS1='${PWD:(-30)}$'
$ export PS1='...${PWD: -30}$'
$ export PS1='...${PWD:(-30)}$'