如何创建 Bash 别名?

Posted

技术标签:

【中文标题】如何创建 Bash 别名?【英文标题】:How do I create a Bash alias? 【发布时间】: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 以查看它。 【参考方案1】:

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

【讨论】:

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

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

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


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

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

    启动终端 输入 cd ~/ 以转到您的主文件夹 输入 touch .bash_profile 以创建您的新文件。 使用您喜欢的编辑器编辑.bash_profile(或者您可以直接输入open -e .bash_profile 以在TextEdit 中打开它。 键入 . .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】:
    回家 打开.bashrc

    在文件底部创建别名

    alias alias_name='command to do'
    eg: alias cdDesktop='cd /Desktop'
    

    保存文件

    源码.bashrc

    source ~/.bashrc
    

    打开终端 (Ctrl+Alt+T) & 输入 cdDesktop & 按回车

【讨论】:

【参考方案10】:

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

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

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

【讨论】:

【参考方案11】:

它适用于我在 macOS Mojave 上

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

    打开终端

    sudo nano /.bash_profile

    添加您的别名,例如:

    一些别名

    别名 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"

    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

【讨论】:

以上是关于如何创建 Bash 别名?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 bash 别名中包含参数? [复制]

如何将 bash 脚本直接嵌入到 git 别名中

制作一个带参数的 Bash 别名?

如何让 bash 完成以在 Windows 10 bash 中使用别名?

如何在 Windows 的 Git Bash 中设置别名?

如何将 bash 别名移植到 ipython > 0.10?