好的,所以我正在尝试创建一个别名,这将允许我设置终端中的当前目录,即要在提示符中显示的基本目录。假设别名为基目录
例如:
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
)和alias
es 之类的内容。该PS1
变量在几个地方设置,具体取决于您运行的终端类型 - 全部更改它们,或只更改您正在使用的那个。现有PS1
设置有几个代码,它们会扩展为诸如当前工作目录路径(\w
)之类的内容。编辑.bashrc
文件(您拥有它,因此不需要 sudo)。将\w
`PS1 设置为:
${PWD#$BASE}
要设置别名BASE
,可以将其添加到文件# some more ls aliases
中的部分.bashrc
。其值只是变量的值PWD
,因此
export BASE="$PWD"
(引号会处理目录名称中的空格等奇怪现象)。