K S*_*t X 44 linux terminal directory files
如果我在一个深层目录中,让我们说:
~/Desktop/Dropbox/School/2017/C/A3/
Run Code Online (Sandbox Code Playgroud)
然后当我打开终端时,它说
bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$
Run Code Online (Sandbox Code Playgroud)
然后我写下我的命令。那很长,我在终端中写的每一行都会转到下一行。我想知道是否有办法让它只显示我的当前目录。我希望它显示:
bob@bob-ubuntu: A3/$
Run Code Online (Sandbox Code Playgroud)
这样就很清楚了,而且我总是可以pwd看到我的整个目录。我只是不希望整个目录在终端中可见,因为它占用了太多空间。
小智 69
从 bash 4 开始,通过PROMPT_DIRTRIM在.bashrc文件中使用来缩短命令行中的目录深度。请记住重新打开您的终端。
PROMPT_DIRTRIM=1
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Bash 手册。
例子
bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$
将被修剪为
bob@bob-ubuntu:.../A3/$
Bob*_*ger 38
您需要修改PS1您的 shell 启动文件(可能是.bashrc)。
如果它已经存在,则其设置将包含\w,这就是您的工作目录的内容。将其更改为\W(大写)。bashrc文件中的行如下所示:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
Run Code Online (Sandbox Code Playgroud)
注销并重新登录,或执行以下操作:
. .bashrc
Run Code Online (Sandbox Code Playgroud)
或者(如果您在其他目录中,则需要添加此前缀“~/”)
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
(或任何您的文件)。
如果它不存在,请添加如下内容:
PS1='\u@\h: \W:\$'
Run Code Online (Sandbox Code Playgroud)
到.bashrc或什么。PS1在bash手册页中查找以获得更多想法。
当心; bash可以使用多个以上的初始化文件,例如.bashrc和.bash_profile;可能PS1是在系统范围内设置的。但是您可以在您自己的文件之一中覆盖它。
这对于所有shshell 都是可移植的。
分配给PS1您的 shell 启动文件之一:
PS1='${PWD##*/} $ '
Run Code Online (Sandbox Code Playgroud)
提示将类似于
dir $
Run Code Online (Sandbox Code Playgroud)
其中dir是当前目录的基本名称。
该$PWD变量包含当前目录路径,${PWD##*/}并将删除该路径中直到并包括最后一个的所有内容/。
单引号可防止 shell 形式在赋值时评估变量替换($PS1每次显示提示时都会评估 的值)。
PS1不应导出该变量,因为它仅由当前 shell 使用。