![如何重命名shell当前工作目录](https://linux22.com/image/1152462/%E5%A6%82%E4%BD%95%E9%87%8D%E5%91%BD%E5%90%8Dshell%E5%BD%93%E5%89%8D%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95.png)
我正在使用 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
您正在使用 替换两个\w
s ${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$