如果您创建一个别名,例如:

alias cls="clear"


它存在,直到您终止终端会话。当启动新的终端窗口时,别名不再存在。如何创建每个终端会话中都存在的“永久”别名?

评论

对于此特定示例,^ L(Control-l)也会清除屏幕。

#1 楼

您可以在~/.bash_aliases文件中放置此类别名。

该文件由~/.bashrc加载。在Ubuntu 10.04上,无需注释以下行以启用~/.bash_aliases。在Ubuntu 11.04和更高版本上,已启用它:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi


任何新终端上都可以使用别名命令。要在任何现有终端上使用别名命令,需要从该终端获取~/.bashrc,例如,

source ~/.bashrc


评论


我建议+1,而不是编辑〜/ .bashrc。尽管〜/ .bashrc确实对于其他各种目的很有用,但它具有太多的元素,可能会使不熟悉Linux shell特性的用户抛弃。

–ændrük
2010-10-6 21:50



例如:echo“ cls ='clear'” >>〜/ .bash_aliases &&源〜/ .bash_aliases

–滚刀
2012-09-10 15:56



@ændrük我实际上发现大量的shell配置文件令人困惑。在我看来,如果有一个包含所有设置的相当长的配置文件,会更容易。

– haziz
2012年12月13日在7:14

@hobs必须是:echo“ alias cls ='clear'” >>〜/ .bash_aliases &&源〜/ .bash_aliases

–阿米尔·阿里·阿克巴里(Amir Ali Akbari)
13年8月15日在10:30

好的,所以这个话题现在已经快7年了,我似乎找不到这样的最新答案。但是,它不再适合我了,现在问是否有所改变

–TheDefinitionist
16-10-5在13:00

#2 楼

将行添加到~/.bashrc~/.profile / ~/.bash_profile以进行远程登录。

如果要为所有用户执行该命令,请将其放入/etc/bash.bashrc

编辑:在最新版本的Ubuntu,~/.bashrc会自动获取~/.bash_aliases,因此最好将永久别名放入此文件中。

评论


谢谢,当我写〜/ .bachrc P.S.我的主目录中没有〜/ .profiles。

–桑戈
2010年8月6日15:31



.profile现在可能是.bash_profile

–txwikinger
2010年8月6日15:32

如果相关文件不存在,则可以简单地创建它。

– Ryan C. Thompson
10年8月6日在18:03

谢谢,我想知道两者之间有什么区别。 (bashrc和bash_profile)

–emf
10-10-6在20:28

joshstaiger.org/archives/2005/07/bash_profile_vs.html了解〜/ .bash_profile和〜/ .bashrc之间的区别

–YouAreAwesome
16年6月7日在8:12

#3 楼

您可以将以下功能添加到.bashrc文件中。

function permalias () 
{ 
  alias "$*";
  echo alias "$*" >> ~/.bash_aliases
}


然后打开一个新终端或在当前终端中运行source ~/.bashrc。现在,您可以使用permalias命令创建永久别名,例如permalias cls=clear

评论


用法说明:当我键入mkalias smount ='sudo mount'时,引号并没有引起任何反响,因此我的解决方案是mkalias“ smount ='sudo mount'”。如果要别名2个单词的命令,您也将需要此别名。

–TecBrat
13年6月29日在22:04

我为此创建了一个要点:gist.github.com/Masterxilo/f1967743fda3a1aded56ebaff4dd097b。使用{curl -s https://gist.githubusercontent.com/Masterxilo/f1967743fda3a1aded56ebaff4dd097b/raw/permalias | |为当前用户安装permalias。源/ dev / stdin;来源〜/ .bashrc; }

– masterxilo
18年11月20日在20:34

但是,我创建了permfunction,这是功能更强大的替代gist.github.com/Masterxilo/29ac0df083827bbd45a7c8ddcf3936d7,它会在PATH上创建全局安装的脚本。这些将立即可用于所有打开的会话,并且更加灵活。使用curl -s https://gist.githubusercontent.com/Masterxilo/29ac0df083827bbd45a7c8ddcf3936d7/raw/permfunction安装| sudo -E bash-; hash -d permfunction&> / dev / null ||真正

– masterxilo
18年11月20日在20:36

#4 楼

有关~/.bash_profile~/.bashrc之间的区别,请参见http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html。 t。 ~/.bashrc包含以下内容,其中包括~/.bash_profile文件。这是添加别名的最合适的位置。

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi


#5 楼

将该命令粘贴在您的~/.bash_profile的最后一行

评论


为什么不〜/ .bashrc?

– Michael Crenshaw
10年8月6日在15:23

我知道,bashrc是首选,尽管不清楚为什么

–emf
2010-10-10 18:46