如何在终端中持久定义别名


18

我想将别名添加到我的环境中,以便它们在所有终端实例中都可用。

我得到了这个答案

是的,您可以将其放入.bashrc,.bash_profile或.profile中。在某些系统上,shell初始化脚本还会提供.bash_aliases或.aliases,因此,如果系统中存在这些文件之一,则可以使用它们。

但是我找不到这些文件。

(我将OS X配置为查看隐藏文件,但以上4都看不到。)


别名仅在外壳程序(在终端中)中起作用,那么将别名添加到OS X环境中到底意味着什么?您是否要使所有用户都可以访问别名?
nohillside

我的意思是,将来我打开的每个终端实例都将设置它
Elad Benda

我已经撤消了您的修改,因为它改变了问题的重点。如果您仍在寻找有关如何向zsh添加别名的答案,请提出一个新问题。
nohillside

Answers:


23

如果使用bash,则将别名命令添加到〜/ .bashrc并将类似的文件另存为〜/ .bash_profile:

. ~/.bashrc

当bash作为交互式非登录shell调用时,它将读取.bashrc而不是.bash_profile。当bash被作为交互式登录shell调用时,它将读取.bash_profile而不是.bashrc。

终端和iTerm默认情况下会打开新的外壳程序作为登录外壳程序,因此许多OS X用户仅使用.bash_profile作为其个人配置文件。例如,tmux和Emacs中的shell模式虽然将新的shell作为非登录shell打开。

.profile也可以由其他shell(如ksh)读取。如果.bash_profile和.profile同时存在,则bash仅在作为交互式登录shell调用时才读取.bash_profile。

有关更多信息,请参见https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html


3
@EladBenda如果使用zsh,请将别名命令添加到~/.zshrc~/.zshrc(交互)非登录外壳和登录外壳都可以读取它,因此您不必从中获取它~/.zprofile
Lri

我一直想知道.bash_profile和.bashrc之间的区别,现在我知道了。谢谢。
Deesbek

如果使用oh-my-zsh,则更好的选择是将别名保留在名为〜/ .aliases的文件中。如果此文件不存在,则可以将其添加到主文件夹中,并且将是隐藏文件。
Anusha

6

打开一个新的终端窗口并转到您的主目录(只需键入cd并按Enter)。

此后,ls .bash*还键入和ls .profile(请注意,每个文件名都以点开头)。如果有这些文件(并且至少应该有一个.profile文件),则需要对其进行编辑并将别名添加到其中。我使用VI(或VIM)来编辑这些文件,但是您可以使用其他编辑器(实际上,在“终端”窗口中键入open .bash_profile将在TextEditor中打开它,如果您不熟悉VI,可能会更加人性化) 。如果由于某种原因您没有这些文件,则创建一个新文件(并将其命名为.bashrc),在其中添加别名行(因此这将是每行一个命令,就像您键入它们一样)在外壳中),然后保存文件。然后,您可以使用来创建指向.bash_profile和.profile的符号链接ln -s .bashrc .bash_profile; ln -s .bashrc .profile

我通常要做的是将.bashrc和.bash_profile符号链接到.profile,然后只需要担心一个文件。

这些文件之间的区别在于,bash将根据是作为登录shell启动(通常是登录过程将作为登录shell启动该shell)还是作为一个交互式(而非登录)shell来获取不同的文件,或者非交互式外壳。不管bash是如何启动的,使这三个文件基本相同都为我提供了一致的环境。

通过执行操作man bash,您将获得更多信息,但请做好准备,这是一个漫长的手册页。您将能够看到三个文件(.bashrc,.profile和.bash_profile)中的哪个文件,具体取决于启动bash的方式。

希望有帮助-否则,请给我喊。


3

在终端中输入以下命令:

cd /etc
sudo vi bashrc

添加如下内容:

alias ll="ls -lrt"

最后重启终端。


2

如果需要此机器,则需要查看该/etc文件夹。但是,默认情况下它们可能不存在,在这种情况下,您只需要在上述文件夹中创建它们并重新启动终端即可。sudo由于该/etc文件夹归拥有,因此您极有可能需要使用它们来创建它们root

如果您在打开的每个终端上都需要使用此功能,则无需在整个机器上使用它。您可以在自己的主文件夹中创建这些文件,并且每次启动终端会话时终端都会读取这些文件。

另外,如评论中所述,您通常只能使用terminal和using查看这些内容ls -lha


0

如果您已安装ruby,请查看此ruby脚本https://github.com/ytbryan/aka

该脚本提供了持久性和点文件自动获取等功能。您可以在不中断工作流程的情况下通过终端管理别名并打开文本编辑器。

免责声明:我编写了此脚本并每天使用。让我知道是否有任何错误/想法。:)


0

对于那些在Linux BASH中寻找ll命令的人来说,它是这样创建的...

alias ll="ls -laF"

将该行添加到您的.bashrc文件中,然后将该.bashrc文件复制为.bash_profile,那么您将永远拥有ll。

就其价值而言,Linux BASH上的ll只是“ ls -laF” 的别名。


-2

我遇到了同样的问题,即我的“个人档案”位置中没有.bash或.profile。我终于在/ etc中找到了它


1
/ etc在系统范围内使用。我强烈建议不要编辑这些文件,而应在主文件夹中使用自己的配置文件,例如〜/ .bash_profile。
grg

我不希望拥有〜/ .bash_profile,这是我尝试的第一件事,如果我创建了它,即使重新启动后也不会被使用,我相信我的管理员一定已经阻止了它。我现在正在使用zsh,.zshrc效果很好
Leo Boulanger
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.