cd = 'cd !* ;set prompt="! $host `dirs` % "'
這個別名是在我常用的紅帽企業Linux服務器上,我無法弄清楚它對我有什麼作用。有任何想法嗎?這個別名在Red Hat Linux中有什麼作用?
cd = 'cd !* ;set prompt="! $host `dirs` % "'
這個別名是在我常用的紅帽企業Linux服務器上,我無法弄清楚它對我有什麼作用。有任何想法嗎?這個別名在Red Hat Linux中有什麼作用?
我認爲這是爲了更改目錄並顯示提示中的以前的目錄。 !*
是一個bash歷史擴展,意思是沒有第一個單詞的前一個命令。例如。如果先前的命令是cd project
,則!*
是project
。請參閱man bash
中的歷史擴展部分,更具體地說here。
dirs
只顯示目錄堆棧,並且是bash內建的,請參閱鏈接瞭解詳細信息。
然而,在標準的bash,你會使用export PS1=...
代替set prompt=
,所以也許別名筆者意味着它在csh
而非bash
,例如使用見here。歷史擴展!*
具有相同的語義,例如, 爲tcsh
。
似乎沒有運行任何不同於正常的cd命令,至少據我所知。 – user2602925
我沒有訪問RHEL主機的權限,但在標準bash中,您可以使用'export PS1 = ...'而不是'set prompt ='。也許這就是爲什麼你沒有看到變化。 – dimid
我認爲別名的作者意味着它被用在'csh'而不是'bash'中,例如請參閱[這裏](http://superuser.com/questions/399047/customizing-csh-prompt)。 – dimid
在csh混疊中,!*
是接收到的命令的輸入,例如,
alias + emacs \!* &
和運行+ somefile
將使用emacs打開某些文件並將其移動到後臺。
現在你行 - 它改變目錄,無論你給它(*!),並設置提示(你的書寫區之前寫在你的終端對應的線路)的主機名,路徑(如pwd
)和%
只是一個快速註釋 - 注意我的別名行中的\
- 您必須在別名中轉義特殊字符並注意this
對我來說看起來不像Bash。 –
cd命令是否在bash shell中運行? – user2602925
是的,Bash * does *有內建的'cd',但這裏的賦值有空格,並且使用'set'的方式與我在Bash中使用它的方式不同。 –