【问题标题】:How do I create a Bash alias?如何创建 Bash 别名?
【发布时间】:2012-02-16 13:53:27
【问题描述】:

我在 OSX 上,我需要在配置文件中添加类似 alias blah="/usr/bin/blah" 的内容,但我不知道配置文件在哪里。

【问题讨论】:

  • 切线地,这个特定的别名基本上是多余的,除非你特别试图覆盖这个特定命令的 shell 的 PATH 分辨率。如果/usr/bin 在您的PATH 中(确实必须是),那么blah 也可以在没有此别名的情况下从那里运行,除非还有说/usr/local/bin/blah/usr/local/bin/usr/bin 之前在你的PATH 你仍然想更喜欢/usr/bin/blah,并且由于某种原因不能简单地删除或重命名/usr/local/bin/blah
  • 即便如此,这仍然是一个可疑的、骇人听闻的解决方案,它应该带有一个又大又丑的评论,并带有一条警告信息,告诉你这将如何咬你匀称的小腹,另一个说“我告诉过你”每次发生这种情况。
  • 对于所有自动化爱好者:我个人将 addAlias() { echo "alias $1='$2' " >> ~/.bash_profile 添加到我的 bash_profile 中,然后我获取它并运行 addAlias hi 'echo "hi" ' 。源 bash 配置文件并输入 hi 以查看它。

标签: macos bash shell


【解决方案1】:

如果您将blah="/usr/bin/blah" 放入您的~/.bashrc,那么您可以在您的登录shell 中使用$blah 来代替输入/usr/bin/blah

【讨论】:

  • 美元符号在这里绝对不是必需、有用或正确的。
【解决方案2】:

您可以在启动脚本文件中添加aliasfunction。通常这是您主目录中的.bashrc.bash_login.profile 文件。

由于这些文件是隐藏的,您必须使用ls -a 来列出它们。如果您没有,您可以创建一个。


如果我没记错的话,当我购买我的 Mac 时,.bash_login 文件并不存在。我必须为自己创建它,以便我可以将prompt infoaliasfunctions 等放入其中。

如果您想创建一个,请按以下步骤操作:

  1. 启动终端
  2. 输入 cd ~/ 以转到您的主文件夹
  3. 输入 touch .bash_profile 以创建您的新文件。
  4. 使用您喜欢的编辑器编辑.bash_profile(或者您可以直接输入open -e .bash_profile 以在TextEdit 中打开它。
  5. 键入 . .bash_profile 以重新加载 .bash_profile 并更新您添加的任何别名。

【讨论】:

  • 太棒了,谢谢@jaypal!命令 source .bash_profile 是第 5 步的替代方法吗?
  • 是的,在我的 OSX Mavericks 上,我的主目录中没有 .bash_profile。创建它,为其添加别名,然后使用. .bash_profile 命令启动它。
  • .bash_profile 为我工作! :) .bashrc 没有在 El Capitan 上
  • 在 OSX El Capitan .bash_profile 上工作。如果打开终端窗口时它没有自动加载,可能是因为它是在没有可执行权限的情况下创建的。此命令将修复它,它应该自动加载以供将来的会话:chmod u+x .bash_profile
  • .bash_profile 配置文件被锁定如何更新此文件
【解决方案3】:

您可能想要编辑主目录中的.bashrc 文件。

【讨论】:

    【解决方案4】:

    在 OS X 上,您想使用 ~/.bash_profile。这是因为默认情况下,Terminal.app 会为每个新窗口打开一个登录 shell。

    在此处查看有关不同配置文件以及何时使用它们的更多信息: What's the difference between .bashrc, .bash_profile, and .environment?

    这里与 OSX 相关:About .bash_profile, .bashrc, and where should alias be written in?

    【讨论】:

      【解决方案5】:

      在我的.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 不,该文件只需要可读,以便 Bash 将其作为配置文件读取。使其可执行在技术上是无害的,但没有必要。我会以非技术为由劝阻它(你最终可能会混淆自己和/或其他人)。
      【解决方案6】:

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

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

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

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

      进入终端,将使用您的新别名创建一个~/.bashrc 文件。之后只需编辑文件以添加新的别名、功能、设置等。

      【讨论】:

      • 您不应该使用>> 而不是> 以便它附加到文件而不是替换其中的所有内容吗?
      【解决方案7】:
      cd /etc
      sudo vi bashrc
      

      添加如下类似:

      alias ll="ls -lrt"
      

      最后重启终端。

      【讨论】:

      • 添加别名后。在“.bash_profile”文件上运行“source”。例如:source ~/.bash_profile(激活/重新加载 bash 别名的命令)
      【解决方案8】:

      我只是用 sublime 打开 zshrc,然后编辑它。

      subl .zshrc
      

      然后在 sublime 上添加这个:

      alias blah="/usr/bin/blah"
      

      在终端运行这个命令:

      source ~/.zshrc
      

      完成。

      【讨论】:

      • 这很混乱。如果您的 shell 是 Bash,则此页面上的许多其他答案会更详细且更有帮助。如果您使用 Zsh 而不是 Bash,那么显然您应该在最后 source .zshrc 加载您对当前运行的 shell 实例所做的更改。
      【解决方案9】:
      1. 回家
      2. 打开.bashrc
      3. 在文件底部创建别名

        alias alias_name='command to do'
        eg: alias cdDesktop='cd /Desktop'
        
      4. 保存文件

      5. 源码.bashrc

        source ~/.bashrc
        
      6. 打开终端 (Ctrl+Alt+T) & 输入 cdDesktop & 按回车

      【讨论】:

        【解决方案10】:

        要创建永久别名快捷方式,请将其放入 .bash_profile 文件并将 .bashrc 文件指向 .bash_profile 文件。请按照以下步骤操作(我正在创建一个名为 bnode 的别名命令来在 ES6 代码上运行 babel 转译器):

        1. 转到终端命令提示符并键入“cd”(这将需要 你到主目录。注意:即使您的编程文件可能 位于您的“D:驱动器”上,您的“.bash”文件可能位于 你的“C:驱动器”)
        2. 要查看主目录的位置,请输入“pwd”(这将显示主目录路径以及 .bash 文件可能位于的位置)
        3. 查看所有点“。”主目录中的文件,键入“ls -la”(这将显示所有文件,包括隐藏点“.”文件)
        4. 您将看到 2 个文件:“.bash_profile”和“.bashrc”
        5. 在 VS Code Editor 或您的 IDE 中打开 .bashrc 文件并在第一行输入“source ~/.bash_profile”(将 .bashrc 文件指向 .bash_profile)
        6. 在 VS Code Editor 中打开 .bash_profile 文件并输入“alias bnode='./node_modules/.bin/babel-node'”(创建永久 bnode 快捷方式以作为 bash 命令执行)
        7. 保存并关闭这两个文件
        8. 现在打开您要执行的文件(index.js)并在终端命令提示符下打开并使用命令“bnode index.js”运行文件
        9. 现在您的 index.js 文件将执行,但在 .bash_profile 文件中创建 bnode 别名之前,您会收到错误“bash: bnode command not found”,并且它无法识别某些 ES6 代码并给出错误。
        10. 了解点文件的有用链接:https://dotfiles.github.io/

        我希望这会有所帮助!祝你好运!

        【讨论】:

          【解决方案11】:

          它适用于我在 macOS Mojave 上

          你可以做几个简单的步骤:

          1. 打开终端

          2. sudo nano /.bash_profile

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

            一些别名

            别名 ll='ls -alF' 别名 la='ls -A' 别名 eb="sudo nano ~/.bash_profile && source ~/.bash_profile" #docker 别名 别名 d='docker' 别名 dc='docker-compose' 别名 dnax="docker rm $(docker ps -aq)" #git 别名 别名 g='git' 别名 new="git checkout -b" 别名 last="git log -2" 别名 gg='git 状态' alias lg="git log --pretty=format:'%h was %an, %ar, message: %s' --graph" 别名 nah="git reset --hard && git clean -df" 别名 squash="git rebase -i HEAD~2"

          4. source /.bash_profile

          完成。使用和享受!

          【讨论】:

          • 我的别名不适用于双破折号——如果是 git。你是如何让他们工作的?例如,您的 alias lg 有双破折号。我正在尝试设置alias stash="git stash --include-untracked",但是当我在终端中调用它时,它会忽略 -- 命令。
          • 什么是“Majave”?你是说莫哈韦吗?
          • 是的,莫哈韦沙漠,谢谢
          • 以防万一它仍然不起作用,单独重新启动选项卡是行不通的,我们必须重新启动终端 - 对于像我这样的小飞象:)
          【解决方案12】:

          我认为这是正确的方式:

          1) 转到终端。 open ~/.bashrc。如果不存在则添加

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

          2)open ~/.bash_aliases。如果不存在:touch ~/.bash_aliases && open ~/.bash_aliases

          3) 而不是添加新别名
          - 编辑.bash_aliases文件并重启终端或打印source ~/.bash_aliases
          - 打印echo "alias clr='clear'" >> ~/.bash_aliases && source ~/.bash_aliases,您的别名是alias clr='clear'

          4) 将行 source ~/.bash_aliases 添加到 ~/.bash_profile 文件。在终端的每个初始化中都需要load aliases

          【讨论】:

            【解决方案13】:

            在你的用户根目录下创建一个 bash_profile - ex

            /user/username/.bash_profile
            

            打开文件

            vim ~/.bash_profile

            添加别名为 ex。 (保存退出)

            alias mydir="cd ~/Documents/dirname/anotherdir"
            

            在新终端中输入 mydir - 它应该会打开

            /user/username/Documents/dirname/anotherdir
            

            【讨论】:

              【解决方案14】:

              MacOS Catalina 及更高版本

              Apple switched 他们的默认 shell 为 zsh,因此配置文件包括 ~/.zshenv~/.zshrc。这就像~/.bashrc,但对于 zsh。只需编辑文件并添加您需要的内容;每次打开新的终端窗口时都应该获取它:

              nano ~/.zshenv alias py=python

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

              这个文件似乎无论如何都会被执行(登录、非登录或脚本),所以看起来比~/.zshrc文件好。

              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

              【讨论】:

              • 现在应该更高,因为 Catalina 是最新的 Mac OS
              【解决方案15】:

              对于 macOS Catalina 用户:

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

              vi ~/.zshrc
              

              第 2 步:添加别名行

              alias blah="/usr/bin/blah"
              

              第 3 步:来源 .zshrc

              source ~/.zshrc 
              

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

              alias
              

              【讨论】:

                【解决方案16】:

                我需要运行 Postgres 数据库并为此创建一个别名。完成工作如下:

                $ nano ~/.bash_profile 
                
                # in the bash_profile, insert the following texts:
                
                alias pgst="pg_ctl -D /usr/local/var/postgres start"
                alias pgsp="pg_ctl -D /usr/local/var/postgres stop"
                
                
                $ source ~/.bash_profile 
                
                ### This will start the Postgres server 
                $ pgst
                
                ### This will stop the Postgres server 
                $ pgsp
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-03-17
                  • 1970-01-01
                  • 2021-08-03
                  • 2012-07-13
                  • 2017-09-05
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多