cd = 'cd !* ;set prompt="! $host `dirs` % "'
这个别名在我常用的Red Hat Enterprise Linux服务器上,我无法弄清楚它对我有什么作用。有什么想法吗?
答案 0 :(得分:0)
我认为这是为了更改目录并在提示中显示以前的目录。 !*
是一个bash历史扩展,意味着前一个命令没有第一个单词。例如。如果上一个命令是cd project
,则!*
为project
。请参阅man bash
中的“历史记录扩展”部分,更具体地说,请here。
dirs
只显示目录堆栈,内置bash,详见链接。
但是,在标准bash中,您使用的是export PS1=...
而不是set prompt=
,因此别名的作者可能会将其用于csh
而不是bash
例如见here。历史扩展!*
具有相同的语义,例如有关tcsh
的信息,请参阅here。
答案 1 :(得分:0)
在csh别名中,!*
是命令收到的输入,例如
alias + emacs \!* &
并运行+ somefile
将使用emacs打开somefile并将其移至后台
现在到您的行 - 它将目录更改为您提供的任何内容(!*)并将提示(在写入区域之前写入终端的行)设置为主机名,路径(作为pwd
)和%< / p>
快速注意 - 注意我的别名行中的\
- 您必须在别名中转义特殊字符并注意this