where all these aliases are stored?
在我的MacBook上,当我在iTerm运行时
我可以看到很多别名,很多都是Git的,大部分都可以,但是我想修改一些。
我试图在~/.bash_profile中增加一些:
1 2
| alias gcm='git commit -m'
alias c='clear' |
但对alias的产量没有影响。
是的,我重新加载了iterm。
- 试试source ~/.bash_profile。现在,它能工作吗?
- @约翰·韦斯特不幸的是还没有
- 你的别名语法是什么?
- @约翰·韦斯特编辑了这个问题
- 您可以在自己的文件中更改它们,即使它们已经存在。这取决于文件执行的顺序。启动文件通常是存储别名的地方,但顺序是可定制的。看看man bash,搜索INVOCATION。
- @CDarke,上面写着When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
- 也许很傻-你的iterm默认运行bash?看这里:你可以有不同的外壳。
- 有趣的是,我的主页也这么说。找到它们的加载方式的一种方法是运行bash -xl(即减去ex ell)。这将跟踪登录shell(即ell)的启动文件(即x)。
- 但是,如果source不起作用…上面某个地方的~/.bash_profile语法错误?简单地说,在您的别名之前是否有一个命令exit?:)
- @约翰·韦斯特实际上是我的埃多克斯1〔11〕看起来短得可疑。
- -s检查文件是否存在,如果存在(&&),则"源"文件。源文件执行当前shell中的命令(否则它将在不影响当前shell的子进程中执行命令)。很明显,这些别名可能在其他文件中,比如.profile。我认为rvm是Ruby的初创公司(?).
- 请用完整的EDOCX1[11]编辑您的问题。
- 问题where很简单:.bash_profile、.bashrc、.profile和/etc中的类似问题是常见的。见解释。同样,这些脚本中包含的所有脚本(./或source也在会话启动时执行,您的Ruby虚拟机rvm就是一个例子。我不明白为什么你的定制产品aliases没有出现在alias清单上。
- 哦,你是否已经定义了gcm和c别名(由git等定义)?问题在于脚本的运行顺序。
- @约翰·韦斯特是的,我已经定义了gcm,这是我的担心——我没有这样做,所以我想知道它是从哪里来的。
"这些别名存储在哪里?"
~/.bashrc—这是在启动公共终端(iterm等)时调用的脚本,因为您调用了non-loginshell。这里很好地解释了登录和非登录页面之间的区别:https://unix.stackexchange.com/a/46856/58326
从其他脚本调用的每个脚本也可以包含别名。
因此,如果您想覆盖在其他脚本中创建的别名,我建议您将别名添加到EDOCX1[1]的末尾。
您可以在任何需要的地方添加自定义别名(例如,als.sh并仅在需要时加载它们:source als.sh。
- 这是一个很好的解释!晚上,当我在家的时候,我会测试一下,然后回到你身边,现在肯定是投赞成票了,再次!
- 一点也不!同时,我现在修正了答案:)之前有个错误
您注销并重新登录了吗?我认为~/.bash_profile是正确的文件,所以应该可以工作。
如何重新加载bash别名之前已回答:
如何从命令行重新加载.bash_概要文件?