在终端中,修改$之前的文本


13

在终端中,我始终可以看到我所处的路径:

macbook-romeo:School romeovs$ echo "example command"

我觉得这很有用。但是这里也有很多不必要的东西:没用,macbook-romeo因为我一直在Macbook(duh)上。然后再次romeovs非常有用(这是我的用户名)。

是否可以编辑此处显示的内容?例如

22:50 - School - Romeo$ echo "example"

这里22:50是当前时间?(当然,这只是一个例子,我不需要时间,我希望文本更加简洁)。

Answers:


11

这篇 OSX每日文章包含有关操作的详细说明。简而言之,您需要修改~/.bash_profile文件并修改PS1变量。

以下是可能显示的变量列表:

  • \ d –当前日期
  • \ t –当前时间
  • \ h –主机名
  • #–命令号
  • \ u –用户名
  • \ W –当前工作目录(即:Desktop /)
  • \ w –当前工作目录,完整路径(即:/ Users / Admin / Desktop)

11

您需要修改在主目录中找到的.bashrc文件

打开终端并执行以下操作:

  • cd ~
  • touch .bashrc
  • open .bashrc

在.bashrc文件的末尾添加以下行

导出PS1 ='\ t-\ W-\ u \ $'

  • 保存文件并关闭编辑器
  • 返回终端并输入以下命令:

    源.bashrc

繁荣!现在,您应该有了所需的提示!(如果需要的提示是您给出的示例)


当我这样做时,我得到以下MBP-15:~ Daniel$ source .bashrc -bash: export: =':不是有效的标识符-bash:出口:\t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$
Daniel Compton 2012年

@DanielCompton感谢您指出这一点,我已经更新了答案,以便可以使用。:)
macaco

4

这由外壳变量$ PS1控制

您可以临时使用此变量,也可以使用.login或.profile脚本将其永久设置为所需的变量,具体取决于您使用的shell。

请看以下输出示例:

Last login: Fri Oct 21 21:59:28 on ttys000

Dans-MacBook-Air:~ stuffe$ echo $PS1

\h:\W \u\$

Dans-MacBook-Air:~ stuffe$ PS1="Hello World $"

Hello World $PS1=`date`

Fri 21 Oct 2011 22:03:23 BSTsleep 60

Fri 21 Oct 2011 22:03:24 BSTPS1="`date +%H:%M` $"

22:04 $PS1="\h:\W \u\$"

Dans-MacBook-Air:~ stuffe$

可能性是无止境。您也可以使用PS2进行某些操作,但是我认为只有root用户才能生效-细节模糊,我的Unix很早以前就基于Solaris,而不是Mac OS X,但基本原理是相同的。

附加信息:如其他答复中所建议,可以使用内置标志,例如\ h和\ W等,但也可以通过使用“反引号”来使用几乎所有命令的输出(有趣的单引号)在上面的日期示例中使用)。后刻度内部的命令将运行并替换输出,即使您没有内置标记,也可以包含任何内容,即使您看似愚蠢的东西也可以包含在内。是否要将最后输入的时间包括在错误日志文件中?使用类似:

PS1="`tail -1 $LOGFILE | awk '{print $1}'` $ "

(读取$ LOGFILE引用的文件的最后一行,并使用默认字段分隔符打印第一列)等。如果可以执行,则可以包含它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.