我将其作为.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?