我正在为zsh中的Git管理编写一系列脚本.
如何检查当前目录是否是Git存储库?(当我不在Git仓库中时,我不想执行一堆命令并得到一堆fatal: Not a git repository
响应).
升级到MacOS X 10.15 Catalina之后,我无法在Shell中运行任何git命令:
现在,默认的交互式外壳为zsh。
要将您的帐户更新为使用zsh,请运行
chsh -s /bin/zsh
。有关更多详细信息,请访问https://support.apple.com/kb/HT208050。
〜| 吉特
xcrun:错误:无效的活动开发人员路径(/ Library / Developer / CommandLineTools),缺少xcrun,位于:/ Library / Developer / CommandLineTools / usr / bin / xcrun
我以为我的外壳有问题,所以我按照说明使用GUI和命令行使用了将默认Mac OS外壳改回bash的方法:
chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)
我还重新启动了计算机。但是,即使echo "$SHELL"
输出,我仍然看到相同的消息/bin/bash
。
所以我学习在Rails中开发,并发现了zsh的强大功能.但是,对于我的其他一些任务,我希望使用普通的Bash.虽然它们是相同的,但我对在某些情况下打击bash感到很自在.如何来回切换,或打开和关闭zsh?谢谢!
当zsh在Mac OS X上设置为登录shell时,当它由iTerm启动时,zsh不会认为它是作为登录shell运行的,尽管它以'-zsh'开头(' - '作为arg [0]的第一个字符,它应该意味着它应该作为登录shell启动.
因此,当我将登录shell设置为bash时,bash在$ 0中首先识别出这个' - '并作为登录shell运行,但是zsh不会,尽管它似乎应该.
有没有办法让zsh识别arg [0]中的' - ',或者让iTerm使用--login命令行参数运行shell?
当我使用OSX的git时,我可以简单地修改一个文件git commit <tab>
,然后自动完成文件的名称到被修改的文件.但是,如果我从自制软件安装更新版本的git并且我使用它,那么这个功能就不再适用了(这意味着我按下<tab>
它只是"询问"我想要做什么文件,甚至包括那些没有变化的文件).
任何人都可以解释为什么,以及如何解决这个问题?我更喜欢使用自制软件的git,因为它更新了.
我的shell是zsh,无论是安装bash-completion
还是zsh-completions
工作(甚至在遵循自制软件的安装后说明之后).
此外,在用自制软件安装git后,它说
Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions
Run Code Online (Sandbox Code Playgroud)
所以我不应该使用其中之一吗?
我正在使用zsh,我正在尝试向变量添加一个新的条目(/home/david/pear/bin
),PATH
但我不知道如何.
最让我困惑的是,PATH
我的~/.zshrc
文件中没有对变量的引用,但是echo $PATH
返回:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)
所以PATH
变量正在某处设置.
我比平时更加谨慎,因为我npm
对过去的行为感到困惑.
我在Mac上,并通过安装的node.js brew install node
.
现在我想jslint.js
在命令行上运行作为命令,jslint
我发现完成此操作的规范方法是sudo npm install -g jslint
使用此输出成功运行:
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
??? …
Run Code Online (Sandbox Code Playgroud) 我正在使用苹果 M1 MacBook pro。
当我安装 oh my zash 时。当我添加export PATH="/opt/homebrew/bin:$PATH"
到我的 ~/.zshrc 文件时。此错误显示在我的终端中:
joe :: share/zsh/site-functions » source ~/.zshrc
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask
Run Code Online (Sandbox Code Playgroud)
但是,我检查并发现这两个文件确实存在。有人能告诉我问题出在哪里吗?
这是我的 ~/.zshrc 文件:
Last login: Sat Jan 16 14:53:34 on console
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask
[oh-my-zsh] Random theme 'jnrowe' loaded
? ~ ? cd ~
? ~ ? source .zshrc
compinit:503: no such file or …
Run Code Online (Sandbox Code Playgroud) 我最近在Ubuntu上从Bash切换到了Zsh,我很高兴.但是,有一些我真的很想念,我没有找到如何实现同样的事情.
在Bash中,每当我输入一个长命令并注意到我之前必须运行其他东西时,我只需要将其注释掉,如下所示:
me@home> #mysuperlongcommand with some arguments
me@home> thecommandIhavetorunfirst #and then: then up up
me@home> #mysuperlongcommand with some arguments #I just need to uncomment it!
Run Code Online (Sandbox Code Playgroud)
然而,这种相当复杂的情况并不像以前那样容易解决zsh
,因为这样做#mysuperlongcommand
会导致:并导致:zsh: command not found: #mysuperlongcommand
.