如何重命名shell当前工作目录

如何重命名shell当前工作目录

我正在使用 gnome-terminal。我经常处理大型项目,这些项目有很多子目录,我必须从终端编译它们。当你只有一个显示器时,使用长路径终端提示符工作非常麻烦。

假设你在一个目录中,

sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$

现在,当我使用终端时,是否有任何技巧或快捷方式可以将当前地址变成虚拟字符串或文本,以便于操作。例如,如果我想将上述地址显示为,

sbmaruf@lenovo:proj1$

在哪里proj1 = /sys/dev/block/7:6/bdi/subsystem/7:7/power。我想随时随地完成它。比如当我使用终端时,我可以在很短的时间内完成它。

答案1

您可以通过修改文件将此功能添加到您的 shell 中~/.bashrc

假设一个标准配置,在您的~/.bashrc文件中将 的定义PS1(即提示)从:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

更改为以下内容:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]${PROMPT:-\w}\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:${PROMPT:-\w}\$ '
fi

您正在使用 替换两个\ws ${PROMPT:-\w}

在提示字符串中,\w表示当前目录。${VAR:-VALUE}除非变量 VAR 已设置且不为空,否则表示使用 VALUE。因此,在设置 shell 变量时可以覆盖显示当前目录。

现在你可以使用以下命令设置别名:

sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$ PROMPT=proj1
sbmaruf@lenovo:proj1$

并使用以下命令取消设置:

sbmaruf@lenovo:proj1$ unset PROMPT

或者将其设置为 null:

sbmaruf@lenovo:proj1$ PROMPT=
sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$

答案2

如果您的提示使用,pwd您可以在主目录中定义一个符号链接,例如:ln -s /sys/dev/block/7:6/bdi/subsystem/7:7/power ~/proj1

然后cd ~/proj1你的提示应该(几乎)变成你想要的,即sbmaruf@lenovo:~/proj1$

相关内容