“ll”的别名在哪里定义?

7 command-line bash zsh alias sh

我经常发现自己使用llwhich 是别名。

$ type ll
ll is an alias for ls -lh
Run Code Online (Sandbox Code Playgroud)

我一直想知道这是在哪里定义的,因为它适用于bashzsh但不适用于sh

$ type ll
ll is an alias for ls -lh
Run Code Online (Sandbox Code Playgroud)

des*_*ert 9

在 Ubuntu 中,这个别名默认在~/.bashrc文件中定义,在我的文件中是这样的:

$ grep "alias ll" ~/.bashrc
alias ll='ls -alF'
Run Code Online (Sandbox Code Playgroud)

默认情况下读取的另一个文件是~/.bash_aliases. 它可能在您创建之前不存在,但它是存储别名的推荐方式,因为将它们保存在单独的文件中可以提供清晰的信息。您~/.bashrc包含以下部分,如果存在则加载此别名文件的 if 表达式:

# 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
Run Code Online (Sandbox Code Playgroud)

至于zsh我想别名在您的~/.zshrc文件或由它来源的任何文件中以相同的方式定义。如果您使用oh-my-zsh它,它可能包含在lib/directories.zsh或 中plugins/common-aliases/common-aliases.plugin.zsh

sh(=dash在 Ubuntu 中) read only ~/.profile,通常不包含任何别名,因为它们是特定于 shell 的定义。在别名如此简单的情况下,alias ll='ls -lh'您可以在~/.profile. 进一步阅读:是否有所有 shell 读取的“.bashrc”等效文件?