如何创建 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】:您可以在启动脚本文件中添加alias
或function
。通常这是您主目录中的.bashrc
、.bash_login
或.profile
文件。
由于这些文件是隐藏的,您必须使用ls -a
来列出它们。如果您没有,您可以创建一个。
如果我没记错的话,当我购买我的 Mac 时,.bash_login
文件并不存在。我必须为自己创建它,以便我可以将prompt info
、alias
、functions
等放入其中。
如果您想创建一个,请按以下步骤操作:
-
启动终端
输入
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 别名?的主要内容,如果未能解决你的问题,请参考以下文章