我该如何创建Bash别名?

253

我在使用OSX系统,需要将类似这样的内容alias blah="/usr/bin/blah"放入配置文件中,但我不知道配置文件在哪里。


顺带提一下,这个特定的别名基本上是多余的,除非你特别想要覆盖 shell 对于这个特定命令的 PATH 解析。如果 /usr/bin 在你的 PATH 中(实际上它必须在其中),那么 blah 就可以很好地从那里运行,而不需要这个别名,除非还有 /usr/local/bin/blah 这样的东西,并且 /usr/local/bin 在你的 PATH 中在 /usr/bin 之前,但是你仍然想要优先选择 /usr/bin/blah,并且不能出于某种原因简单地删除或重命名 /usr/local/bin/blah - tripleee
即使是这样,这仍然是一个可疑的、hackish的解决方案,应该附带一个大而丑陋的注释,告诉您如何咬住您修长的下腹部,另外还有一条说“我告诉过你”的警告信息每次发生此情况。 - tripleee
1
对于所有的自动化爱好者:我个人会在我的bash_profile中添加addAlias() { echo "alias $1='$2' " >> ~/.bash_profile然后我会运行addAlias hi 'echo "hi" '。接着,我会重新加载bash profile并输入hi来查看它。 - devssh
确保正确转义字符,别名名称=" echo "string" " 是错误的,但别名名称=" echo "string" " 就没问题了。 - Michael Hearn
16个回答

324
你可以在启动脚本文件中添加别名(alias)或函数(function)。

MacOS 10.13 High Sierra及更早版本:

默认的shell是bash。通常启动脚本文件位于你的主目录下的.bashrc.bash_login.profile文件中。

由于这些文件是隐藏的,你需要执行ls -a命令来列出它们。如果你没有这些文件,你可以创建一个。


如果我没记错的话,当我买了我的Mac时,.bash_login文件是不存在的。我不得不自己创建它,这样我就可以在里面放置提示信息别名函数等等。
以下是创建该文件的步骤:
  1. 启动终端
  2. 输入cd ~/进入您的主文件夹
  3. 输入touch .bash_profile创建您的新文件。
  4. 使用您喜欢的编辑器编辑.bash_profile(或者您可以直接输入open -e .bash_profile在TextEdit中打开它)。
  5. 输入. .bash_profile重新加载.bash_profile并更新您添加的任何别名。

11
太棒了,谢谢@jaypal!命令 source .bash_profile 是替代步骤5的一种选择吗? - Ian Campbell
10
在我的OSX Mavericks上,我的主目录中没有.bash_profile文件。创建该文件,并将别名添加到其中,然后使用命令. .bash_profile启动它是有效的。 - Bradley Flood
1
.bash_profile 对我有效!:) .bashrc 在 El Capitan 上没有效果。 - Parth
6
在OSX El Capitan中,.bash_profile 是有效的。如果在打开终端窗口时它没有自动加载,那可能是因为创建时没有赋予可执行权限。使用以下命令可以修复该问题,并且在将来的会话中应该会自动加载:chmod u+x .bash_profile - Mischinab
1
.bash_profile文件被锁定了,我该如何更新这个文件? - amit gupta
显示剩余6条评论

79

我刚刚用Sublime打开了zshrc文件,并进行了编辑。

subl .zshrc

在 Sublime Text 中添加以下内容:

alias blah="/usr/bin/blah"

在终端中运行以下命令:

source ~/.zshrc

完成。


14
这很混乱。如果你的shell是Bash,那么这个页面上的许多其他答案会更详细和有用。如果你使用的是Zsh而不是Bash,那么显然你应该在最后执行source .zshrc将你所做的更改加载到当前正在运行的shell实例中。 - tripleee

44

MacOS 10.15 Catalina 及以上版本

Apple 将默认 shell 切换为 zsh,因此配置文件包括 ~/.zshenv~/.zshrc。这与 ~/.bashrc 类似,但适用于 zsh。只需编辑文件并添加所需内容;每次打开新的终端窗口时,它都会被加载:

nano ~/.zshenv alias py=python

然后按下 ctrl+x,y,然后按回车键保存。

无论是登录、非登录还是脚本,似乎都会执行该文件,因此比 ~/.zshrc 文件更好。

MacOS 10.13 High Sierra 及更早版本

默认 shell 是 bash,您可以编辑文件 ~/.bash_profile 并添加别名:

nano ~/.bash_profile alias py=python

然后按下ctrl+x,y,然后按回车键保存。请参阅this post以了解更多关于这些配置的信息。最好在~/.bashrc中设置您的别名,然后从~/.bash_profile中引用~/.bashrc。在~/.bash_profile中,它将如下所示:

source ~/.bashrc


8
由于Catalina是最新的Mac OS,因此这个应该是更高的。 - Cauder

33

21

在我的.bashrc文件中,默认情况下有以下几行代码:

# 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
因此,在我的平台上,.bash_aliases 是默认用于别名的文件(也是我使用的文件)。我不是OS X用户,但我猜想如果你打开你的.bashrc文件,你就可以确定在你的平台上通常用于别名的文件是什么。

如果在打开终端窗口时,配置文件没有自动加载,那很可能是可执行权限缺失。下面的命令可以解决问题,并且在未来的会话中应该会自动加载:chmod u+x .bash_profile - Mischinab
1
@Mischinab 不需要将该文件设置为可执行文件,只需让Bash能够读取它作为配置文件即可。虽然将其设置为可执行文件在技术上是无害的,但是没有必要这样做。我会出于非技术原因而不建议这样做(你可能会让自己和/或他人感到困惑)。 - tripleee

18

在我的macOS Mojave上运行良好

您可以执行以下几个简单的步骤:

  1. 打开终端

  2. sudo nano /.bash_profile

  3. 添加您的别名,例如:

    # some aliases
    alias ll='ls -alF'
    alias la='ls -A'
    alias eb="sudo nano ~/.bash_profile && source ~/.bash_profile"
    #docker aliases
    alias d='docker'
    alias dc='docker-compose'
    alias dnax="docker rm $(docker ps -aq)"
    #git aliases
    alias g='git'
    alias new="git checkout -b"
    alias last="git log -2"
    alias gg='git status'
    alias lg="git log --pretty=format:'%h was %an, %ar, message: %s' --graph"
    alias nah="git reset --hard && git clean -df"
    alias squash="git rebase -i HEAD~2"
  • source /.bash_profile
  • 完成。使用并享受吧!


    我的别名无法与 git 中的双破折号 -- 一起使用。你是怎么让它们能够正常工作的?例如,你的 alias lg 使用了双破折号。我正在尝试设置 alias stash="git stash --include-untracked",但是当我在终端中调用它时,它会忽略 -- 命令。 - Ali Kazi
    什么是“Majave”?你是指Mojave吗? - Nirvana
    1
    是的,Mojave,谢谢。 - ultimatum
    以防萬一,如果它仍然無法運作,僅重新啟動選項卡是不夠的,我們必須重新啟動終端 - 對於像我這樣的笨蛋 :) - Panduranga Rao Sadhu
    alias nah="git reset --hard && git clean -df" 是最直观命名比赛的获胜者! - undefined

    12

    对于 macOS Catalina 用户:

    步骤 1:创建或更新 .zshrc 文件

    vi ~/.zshrc
    

    步骤2:添加您的别名行

    alias blah="/usr/bin/blah"
    

    步骤三:引用.zshrc文件

    source ~/.zshrc 
    

    第四步:通过在命令提示符中键入alias来检查您的别名

    alias
    

    9
    cd /etc
    sudo vi bashrc
    

    请添加如下代码:

    alias ll="ls -lrt"
    

    最后重新启动终端。


    1
    添加别名后,在“.bash_profile”文件上运行“source”命令。 例如:source ~/.bash_profile(该命令可激活/重新加载bash别名) - UIResponder

    7

    脚本和程序的配置文件是 ~/.bashrc,当您使用终端时加载的配置文件是 ~/.bash_login

    我认为最好的方法是将所有内容放在 ~/.bashrc 中。

    针对您的具体问题,只需输入以下内容(这将覆盖任何现有的 ~/.bashrc):

    echo "alias blah=\"/usr/bin/blah\"" >>~/.bashrc
    

    输入命令到终端,会创建一个名为~/.bashrc的文件,并包含您的新别名。之后只需编辑该文件即可添加新的别名、函数、设置等。


    5
    你应该使用>>而不是>,这样它会将内容追加到文件末尾,而不是替换其中所有的内容。 - Jonny

    6
    1. Go to home
    2. Open .bashrc
    3. Create alias at bottom of the file

      alias alias_name='command to do'
      eg: alias cdDesktop='cd /Desktop'
      
    4. Save the file

    5. source .bashrc

      source ~/.bashrc
      
    6. Open terminal (Ctrl+Alt+T) & type cdDesktop & press enter


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接