在终端中隐藏当前工作目录

在终端中隐藏当前工作目录

默认情况下,终端提示符显示如下内容:

user@system:/folder1/folder2/folder3/folder4$

文件系统越深入,输入命令的空间就越少。我可以将其更改为仅显示以下内容吗:

>

我的意思是,我只需打字就可以pwd显示我所在的位置。;)

答案1

export PS1='\u@\h: '

这导致了oli@bert:我的提示。

如果你真的想要一些像你要求的那样简约的东西,试试这个:

export PS1='> '

您可以将其附加到文件末尾,~/.bashrc以使其在登录之间保持不变。

您还可以使用一些颜色来发挥创意。以下是我在服务器上使用的颜色:

export PS1='\[\033[0;35m\]\h\[\033[0;33m\] \w\[\033[00m\]: '

给予(在全黑背景上更容易看到):

我的终端

PS1 中可接受字符的词汇表

答案2

只是为了扩展 Oli 的回答(这样我就可以为这些速记符号添加书签):

bash 提示符 ( stefano@linux:~$) 只是您可能会看到的几个提示符中的第一个:

  • PS1:打开 shell 时看到的默认提示符

    它的值存储在名为 的环境变量中PS1。要查看其值,请输入

    echo $PS1

    这将给你类似

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
    

    要更改它,您可以为变量设置一个新值:

    export PS1="\u > "
    

    这将导致如下提示:

    stefano > 
    
  • PS2: 是您的辅助提示符。当命令未完成时会显示此提示符。键入echo "asd并按回车键,辅助提示符将允许您输入更多行,直到您关闭引号为止。

  • PS3是用于select(2)

  • PS4是用于替代文本 堆栈跟踪(默认:+

要使更改永久生效,请将其附加到末尾.bash_profile(或.bashrc,参见这个问题) 在您的主目录中。

以下是编写这些内容时可以使用的大致完整的简写列表:

  • \a     “铃”字
  • \A     24小时时间
  • \d     日期(例如 12 月 21 日,星期二)
  • \e     “逃脱”角色
  • \h     主机名(直到第一个“。”)
  • \H     主机名
  • \j     当前正在运行的作业数 (ps)
  • \l     当前 tty
  • \n     换行
  • \t     时间 (时:分:秒)
  • \T     时间(hh:mm:ss,12 小时制)
  • \r     回车符
  • \s     Shell(即 bash、zsh、ksh..)
  • \u     用户名
  • \v     Bash 版本
  • \V     完整 Bash 发布字符串
  • \w     当前工作目录
  • \W     当前工作目录的最后一部分
  • \!     当前历史索引
  • \#     命令索引
  • \$     如果您是 root,则为“#”,否则为“$”
  • \\     文字反斜杠
  • \@     时间(12 小时制,包含 am/pm)

当然,您可以插入任何文字字符串和任何命令:

export PS1="\u \$(pwd) > "

$(pwd)其中,pwd 的“输出”位于何处。

  • 如果命令替换被转义,如\$(pwd),则每次显示提示时都会对其进行求值,否则,如$(pwd),则仅在启动 bash 时对其进行求值一次。

如果你希望你的提示符具有颜色,你可以使用 bash 的颜色代码来实现。代码由三部分组成:

40;33;01
  • 分号之前的第一部分代表文本样式。

    • 00=无
    • 01=粗体
    • 04=下划线
    • 05=闪烁
    • 07=反向
    • 08=隐藏
  • 第二和第三部分是颜色和背景颜色:

    • 30=黑色
    • 31=红色
    • 32=绿色
    • 33=黄色
    • 34=蓝色
    • 35=洋红色
    • 36=青色
    • 37=白色

假设从左侧开始,每个部分都可以省略。例如,“1”表示粗体,“1;31”表示粗体和红色。并且,您可以通过用转义指令\33[并以结尾来使终端以彩色打印m。33(十六进制中的 1B)是 ASCII 符号“ESCAPE”(ASCII 字符集中的特殊字符)。示例:

"\33[1;31mHello World\33[m"

用鲜红色打印“Hello World”。

答案3

另一种方法是当工作目录路径太长时缩短它:修剪终端命令提示符工作目录

创建一个小型的 Python 脚本来实现所需的修剪逻辑。

例如:~/short.pwd.py

import os
from commands import getoutput
from socket import gethostname
hostname = gethostname()
username = os.environ['USER']
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
if len(pwd) > 30:
    pwd = pwd[:10]+'...'+pwd[-20:] # first 10 chars+last 20 chars
print '[%s@%s:%s] ' % (username, hostname, pwd)

现在从终端测试它:

export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)"'

如果你对结果满意,只需将命令附加到你的 ~/.bashrc 中

答案4

对于 macOS 用户:

open ~/.bash_profile

在文件末尾添加以下行并保存

export PS1='\u:\w\$ '

主目录中的结果:

user: ~$

这里 u 代表用户 w 代表当前工作目录 $ 代表提示显示

你可以尝试以下风格:

export PS1='$ '

只以 $ 作为提示,没有其他内容。 就像:

$ 

相关内容