61

将 iTerm2 与 zsh 一起使用,它无法识别我的别名。有时我必须在 IDE 中工作,不能轻易地 vim 一些东西,愚蠢的人认为将他们的应用程序命名为 MyReallyLongApplicationName.app 是个好主意,因为 .html 文件默认在浏览器中打开,所以我必须:

open -a MyReallyLongApplicationName.app something.html

我的 .zshrc 中有一个别名,例如:

alias ide="open -a MyReallyLongApplicationName.app"

但是 zsh 不会识别我的别名。我尝试了另一个,只是想看看是不是我,但我创建的别名都没有被识别。只需获取“zsh:找不到命令:ide”或其他任何内容。

所以我不确定我做错了什么,我整天都在四处寻找,试图修复 zsh 之类的东西。作为说明,我不是 Linux/Unix 系统的专家,所以如果你太技术化和模糊,我可能不会明白你在告诉我什么。

谢谢!

4

12 回答 12

138

如果你在 zsh 中做了一个非常简单的别名,它会起作用吗?打开您的 .zshrc 文件,并添加以下行:

alias ls='ls -GpF'

添加该行后,在终端中键入此行:

source ~/.zshrc

告诉我们会发生什么。此外,仅对于 shiggles,请确保您使用的是单引号与双引号,我已经看到过去在不同版本的 shell/OS/whatnot 上有所不同。

于 2013-01-11T21:29:34.437 回答
36

将“source ~/.bash_profile”添加到您的 ~/.zsh 配置文件中。

于 2016-10-04T16:36:10.213 回答
12

把这一行:

/source: 'source ~/.bash_profile' into ~/.zshrc 
于 2016-12-18T23:25:24.020 回答
7

~/.zshrc文件中保存更改后,打开一个新的 shell 窗口并执行其中的命令。

于 2016-02-08T10:09:13.227 回答
6

有时我们需要简单的解决方案...将“source ~/.bash_profile”添加到您的 ~/.zshrc 配置文件中

echo source ~/.bash_profile >>  ~/.zshrc
于 2017-04-23T11:11:57.047 回答
3

我需要手动将别名添加到我的 zsh 配置文件中,然后在其上运行 source 命令。

echo alias this='some command' >> ~/.zshrc
source ~/.zshrc
于 2018-10-14T18:35:03.240 回答
2

确保双引号是实际的双引号,而不是其他看起来像双引号的字符。

我在 OSX - TextEdit 中编辑 ~/.zsh-aliases,当点击双引号键时,它会替换另一个特殊的双引号字符,这不是 ZSH 所期望的。

用 Sublime 编辑别名文件并用实际的双引号替换旧的双引号后,一切运行正常。

希望这可以帮助。

于 2017-07-28T20:30:47.190 回答
2

我有我所有的别名,所以我在下一行~/.bash_profile的最后一行添加了:它对我有用。~/.zshrc. ~/.bash_profile

于 2019-07-19T20:16:30.580 回答
1

您应该将别名放在文件中end~/.zshrc你可以使用下面的命令来做到这一点:

echo alias this='some command' >> ~/.zshrc

在那次跑步之后

source ~/.zshrc

然后,打开一个新终端并在其中执行命令。

于 2021-03-27T08:08:23.047 回答
1

在我的情况下,问题是空格 b/w aliasNameequalTo。你应该删除那些空间。

错误的分配

alias keu = 'k exec -it utils bash' 

正确一个

alias keu='k exec -it utils bash'
于 2021-05-15T04:11:13.310 回答
0

我将 bash 和 zsh 与一个 .bashrc、.bash_aliases 和 .zshrc 文件一起使用。

将其放入 .zshrc 以加载 bash 文件:

# shortcut to refresh .zshrc
alias refz="source ~/.zshrc"

# Load bash files to zsh
test -f $HOME/.bashrc && . $HOME/.bashrc
test -f $HOME/.bash_aliases && . $HOME/.bash_aliases

如果您有许多 bash 别名和函数,您可能会收到一些错误消息,例如:

/proc/self/fd/13:12310: bad option: -t

由 .bash_aliases 或 .bashrc 文件中的 bash 特定行引起

您可以使用以下方法跳过那些有问题的:

if [ -n "$BASH" ] ;then
    lines to ignore by zsh
fi

例如 kubectl 自动补全

# To fix error massage .bashrc:16: command not found: shopt
# Check if bash is the current shell, if not, skip it
if [ -n "$BASH" ] ;then
  # kubectl and bash completions
  if [ -x "$(command -v kubectl)" ]; then
      source <(kubectl completion bash)
      complete -F __start_kubectl k
  fi

  if ! shopt -oq posix; then
    if [ -f /etc/profile.d/bash_completion.sh ]; then
      . /etc/profile.d/bash_completion.sh
    fi
  fi
fi

# Instead I need to put this line somewhere in my zshrc 
# to have kubectl autocompletion replacing the skipped bash one:
plugins=(git git-flow brew history node npm kubectl)
# To fix error message .bash_aliases:4: parse error: condition expected: =
# Change these to this syntax to be used by zhs

# Not compatible with zsh:
if [ $HOSTNAME = "x1" ]; then

# Compatible with bash and zsh:
if [[ $HOSTNAME == "x1" ]]; then
于 2020-07-11T09:04:52.413 回答
-1

需要为 .zshrc 创建配置文件并将别名注册到其中。(仅当配置文件不可用时)

cd ~ 
touch .zshrc && open .zshrc
add all the alias in .zshrc file
source ~/.zshrc

关闭并重新打开终端并运行别名。

于 2020-01-22T16:39:24.243 回答