我将其作为.profile的最后一行:
alias gl="cd /home/jrenner/glances/glances"
即使重新启动后,键入gl时也找不到命令。怎么了?我以正确的用户身份登录。
.profile
我尝试过的任何环境下均不起作用:文本控制台登录名,图形终端或其他任何内容,即使来自同一文件的环境变量也可以工作。
我将其作为.profile的最后一行:
alias gl="cd /home/jrenner/glances/glances"
即使重新启动后,键入gl时也找不到命令。怎么了?我以正确的用户身份登录。
.profile
我尝试过的任何环境下均不起作用:文本控制台登录名,图形终端或其他任何内容,即使来自同一文件的环境变量也可以工作。
Answers:
我很确定lpanebr的想法会奏效,但这是一个更优雅的解决方案。在.bashrc
我的操作方法中执行该别名命令,或者有些人喜欢添加专用于别名的文件。调用它.alias
或任何东西并添加.alias
到您的.bashrc
希望我可以像@lpanelbr一样进行格式化。我想知道是否有维基?
.bashrc
工作却不工作.profile
?另外,为什么选择命名别名文件.allias
而不是命名的任何原因.alias
?
放入.profile
文件时,别名有时无法始终起作用有两个相关原因。首先是.profile
(或.bash_profile
)文件仅用于登录外壳程序。如果要在X下的终端窗口中启动bash,则您的终端仿真器(例如gnome-termanl)可能没有将bash作为登录shell运行。[如果需要,大多数选项都可以更改它,但是默认值(无论如何对于gnome-termal而言)都不是将其作为登录外壳程序运行。]
该外壳程序将是交互式外壳程序,因此.bashrc
将运行。
但是,通常在启动X会话时,bash已作为登录shell运行。因此,如果其中包含别名命令,.profile
它们将与设置环境变量(如PATH等)一起执行。打开终端窗口时,将运行bash的新实例以提示并在该终端窗口中执行命令。与环境变量不同,别名不能从bash的一个实例导出到由其启动的新实例。因此,别名不会传递给新的shell。
要查看此内容,请尝试以下实验:
export ROBERT=bob
alias james=jimmy
echo $ROBERT
alias james
bash #start a new bash instance
echo $ROBERT
alias james
exit #end the new bash instance and revert to the original one
echo $ROBERT
alias james
请注意,.bashrc
当它作为登录shell启动时,不是由bash运行的。因此,除非您的别名.bashrc
来自,否则将别名放到那里永远不会起作用.profile
,这是一种非常普遍的做法。
source .bashrc
在.bash_profile
允许的.bashrc工作的别名集。
~/.bash_aliases
。这是正确的方法。(有关详细信息,请阅读.bashrc文件)。
如果您将bash(echo $SHELL
)用作shell解释器,则我认为定义自己的CD函数是最好的(也许是唯一的方法)。
编辑.bashrc
文件,并在末尾添加以下内容:
# my custom functions:
function gl () {
cd /home/jrenner/glances/glances/
}
您也可以像这样扩展它:
# my custom functions:
function cdw () {
cd /home/jrenner/glances/glances/$1
ls
}
并直接更改到子目录并列出其内容。
alias
放置在.profile
文件中的指令失败。
$ bash #start a new bash instance
这是我的服务器出现问题。简单source .profile
由于某种原因无法正常工作
在Ubuntu中执行此操作的正确方法是将别名添加到~/.bash_aliases
。如果文件不存在,请创建它。
该文件(如果存在)是从default调用的~/.bashrc
,别名也将在您的终端仿真器中可用。
gl
?终点站?GUI?