改变提示

改变提示

好的,所以我正在尝试创建一个别名,这将允许我设置终端中的当前目录,即要在提示符中显示的基本目录。假设别名为基目录

例如:

andrepadez@theLookingGlass:~$ cd Shared  
andrepadez@theLookingGlass:~/Shared$ cd development/  
andrepadez@theLookingGlass:~/Shared/development$ cd nodejs/

现在,我将运行该别名并会收到以下提示:

andrepadez@theLookingGlass:~/Shared/development/nodejs$basedir
andrepadez@theLookingGlass:nodejs$

从现在开始,每次我更改到前进目录时,都会收到提示:

andrepadez@theLookingGlass:nodejs$cd project1
andrepadez@theLookingGlass:nodejs/project1$cd static
andrepadez@theLookingGlass:nodejs/project1/static$cd ..
andrepadez@theLookingGlass:nodejs/project1$ ...

(我真的不关心如果我回到基本目录后面的文件夹会发生什么)

有没有办法创建这样的命令?
我找到了一些类似的命令,但它总是只显示当前目录:

alias basedir="export PS1='\u@\h:\W$ '"

谢谢

答案1

在您的主目录中,有一个名为的隐藏文件(以 . 开头).bashrc。此文件在您登录时运行,并设置诸如提示符(环境变量PS1)和aliases 之类的内容。该PS1变量在几个地方设置,具体取决于您运行的终端类型 - 全部更改它们,或只更改您正在使用的那个。现有PS1设置有几个代码,它们会扩展为诸如当前工作目录路径(\w)之类的内容。编辑.bashrc文件(您拥有它,因此不需要 sudo)。将\w`PS1 设置为:

${PWD#$BASE}  

要设置别名BASE,可以将其添加到文件# some more ls aliases中的部分.bashrc。其值只是变量的值PWD,因此

export BASE="$PWD"  

(引号会处理目录名称中的空格等奇怪现象)。

相关内容