终极 Shell on-zshrc

来源:互联网 发布:中国等级观念知乎 编辑:程序博客网 时间:2024/06/05 14:35

zsh

在开始今天的 MacTalk 之前,先问两个问题吧:

1、相对于其他系统,Mac 的主要优势是什么?
2、你们平时用哪种 Shell?
……

第一个童靴可以坐下了,Mac 的最大优势是 GUI 和命令行的完美结合,不要把所有注意力放在 Mac 性感的腰身和明媚的显示屏上好吧,这不是妹纸!第二个童靴你可以出去面壁了,讲了这么多期 MacTalk 你告诉我还在用 Windows 的 cmd, 你让 Mac 君情何以堪?哪怕你就说在用 Linux 的 Bash 我也就原谅你了,踢飞!

上次在「如何学习一门编程语言」里提到了 Shell,也有读者问到 Shell 的问题,所以这次给大家说说 Shell 的事。

我在「趣谈个人建站」里介绍过一点 Shell,自己的东西借用下不丢人,把扯淡的拿掉,干货留下,就是如下内容:

Shell是Linux/Unix的一个外壳,你理解成衣服也行。它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。

Linux/Unix提供了很多种Shell,为毛要这么多Shell?难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员往往负责把复杂的事情搞简单,简单的事情搞复杂。牛程序员看到不爽的Shell,就会自己重新写一套,慢慢形成了一些标准,常用的Shell有这么几种,sh、bash、csh等,想知道你的系统有几种shell,可以通过以下命令查看:

cat /etc/shells

显示如下:

/bin/bash/bin/csh/bin/ksh/bin/sh/bin/tcsh/bin/zsh

在 Linux 里执行这个命令和 Mac 略有不同,你会发现 Mac 多了一个 zsh,也就是说 OS X 系统预装了个 zsh,这是个神马 Shell 呢?

目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』,但是由于配置过于复杂,所以初期无人问津,很多人跑过来看看 zsh 的配置指南,什么都不说转身就走了。直到有一天,国外有个穷极无聊的程序员开发出了一个能够让你快速上手的zsh项目,叫做「oh my zsh」,Github 网址是:https://github.com/robbyrussell/oh-my-zsh。这玩意就像「X天叫你学会 C++」系列,可以让你神功速成,而且是真的。

好,下面我们看看如何安装、配置和使用 zsh。

安装zsh


如果你用 Mac,就可以直接看下一节
如果你用 Redhat Linux,执行:sudo yum install zsh
如果你用 Ubuntu Linux,执行:sudo apt-get install zsh
如果你用 Windows……去洗洗睡吧。

安装完成后设置当前用户使用 zsh:chsh -s /bin/zsh,根据提示输入当前用户的密码就可以了。

安装oh my zsh


首先安装 git,安装方式同上,把 zsh 换成 git 即可。

安装「oh my zsh」可以自动安装也可以手动安装。

自动安装:

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

手动安装:

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zshcp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

都不复杂,安装完成之后退出当前会话重新打开一个终端窗口,你就可以见到这个彩色的提示了:

zsh1

配置


zsh 的配置主要集中在用户当前目录的.zshrc里,用 vim 或你喜欢的其他编辑器打开.zshrc,在最下面会发现这么一行字:

# Customize to your needs…

可以在此处定义自己的环境变量和别名,当然,oh my zsh 在安装时已经自动读取当前的环境变量并进行了设置,你可以继续追加其他环境变量。

接下来进行别名的设置,我自己的部分配置如下:

alias cls='clear'alias ll='ls -l'alias la='ls -a'alias vi='vim'alias javac="javac -J-Dfile.encoding=utf8"alias grep="grep --color=auto"alias -s html=mate   # 在命令行直接输入后缀为 html 的文件名,会在 TextMate 中打开alias -s rb=mate     # 在命令行直接输入 ruby 文件,会在 TextMate 中打开alias -s py=vi       # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似alias -s js=vialias -s c=vialias -s java=vialias -s txt=vialias -s gz='tar -xzvf'alias -s tgz='tar -xzvf'alias -s zip='unzip'alias -s bz2='tar -xjvf'

zsh 的牛粪之处在于不仅可以设置通用别名,还能针对文件类型设置对应的打开程序,比如:

alias -s html=mate,意思就是你在命令行输入 hello.html,zsh会为你自动打开 TextMat 并读取 hello.html; alias -s gz='tar -xzvf',表示自动解压后缀为 gz 的压缩包。

总之,只有想不到,木有做不到,吓尿了吧。

设置完环境变量和别名之后,基本上就可以用了,如果你是个主题控,还可以玩玩 zsh 的主题。在 .zshrc 里找到ZSH_THEME,就可以设置主题了,默认主题是:

ZSH_THEME=”robbyrussell”

oh my zsh 提供了数十种主题,相关文件在~/.oh-my-zsh/themes目录下,你可以随意选择,也可以编辑主题满足自己的变态需求,我采用了默认主题robbyrussell,不过做了一点小小的改动:

PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}>'#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'

对照原来的版本,我把 c 改为 d,c 表示当前目录,d 表示绝对路径,另外在末尾增加了一个「 > 」,改完之后的效果是这样的:

zsh2

大家可以尝试进行改造,也算个趣事。

最后我们来说说插件。

插件


oh my zsh 项目提供了完善的插件体系,相关的文件在~/.oh-my-zsh/plugins目录下,默认提供了100多种,大家可以根据自己的实际学习和工作环境采用,想了解每个插件的功能,只要打开相关目录下的 zsh 文件看一下就知道了。插件也是在.zshrc里配置,找到plugins关键字,你就可以加载自己的插件了,系统默认加载 git ,你可以在后面追加内容,如下:

plugins=(git textmate ruby autojump osx mvn gradle)

下面简单介绍几个:

1、git:当你处于一个 git 受控的目录下时,Shell 会明确显示 「git」和 branch,如上图所示,另外对 git 很多命令进行了简化,例如 gco=’git checkout’、gd=’git diff’、gst=’git status’、g=’git’等等,熟练使用可以大大减少 git 的命令长度,命令内容可以参考~/.oh-my-zsh/plugins/git/git.plugin.zsh

2、textmate:mr可以创建 ruby 的框架项目,tm finename 可以用 textmate 打开指定文件。

3、osx:tab 增强,quick-look filename 可以直接预览文件,man-preview grep 可以生成 grep手册 的pdf 版本等。

4、autojump:zsh 和 autojump 的组合形成了 zsh 下最强悍的插件,今天我们主要说说这货。

首先安装autojump,如果你用 Mac,可以使用 brew 安装:

brew install autojump

如果是 Linux,去下载 autojump 的最新版本,比如:

git clone git://github.com/joelthelion/autojump.git

解压缩后进入目录,执行

./install.py

最后把以下代码加入.zshrc:

[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

至此,安装、配置、插件三位一体,终极 Shell 全面登场。退出终端会话重新登录,开始感受 zsh 的训疾如风!

使用 zsh


1、兼容 bash,原来使用 bash 的兄弟切换过来毫无压力,该咋用咋用。

2、强大的历史纪录功能,输入 grep 然后用上下箭头可以翻阅你执行的所有 grep 命令。

3、智能拼写纠正,输入gtep mactalk * -R,系统会提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]? 比妹纸贴心吧,她们向来都是让你猜的……

4、各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。比如你想杀掉 java 的进程,只需要输入 kill java + tab键,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全

5、智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。

6、目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。

7、在当前目录下输入 .. 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。

8、通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find,文件太多就歇菜了。

9、更强的别名:请参考配置一节。

10、插件支持:请参考插件一节。

……

看完这篇文章,你就知道,zsh一出,无人再与争锋!终极二字不是盖的。

如果你是个正在使用 shell程序员,如果你依然准备使用 bash,那就去面壁和忏悔吧,别说你订阅过 MacTalk!

感谢那位开发了 oh my zsh 的无聊程序员,他可能没有因此收获物质上的利益,但是他的代码提升了无数程序员的效率,节省了大量的时间,我们说,程序员改变世界!

MacTalk 写的多了,朋友和家人都不太理解,这玩意赚不了钱争不了名,写来何用?我想,能够学习、编码、写作,并做出一点帮助别人的东西,总好过炒股炒房的价值吧,尽管人家比咱「富」多了……

This entry was posted in 未分类 and tagged zsh by MacTalk. Bookmark the permalink.

137 THOUGHTS ON “终极 SHELL

  1. ping on 2013 年 7 月 24 日 at 上午 9:48 said:

    是不是有些文章只有微信上有?

    Reply 
    • MacTalkon 2013 年 7 月 24 日 at 上午 11:50 said:

      内容略有不同吧

      Reply 
  2. 五步蛇 on 2013 年 7 月 24 日 at 上午 10:44 said:

    一会儿on my zsh 一会儿oh-my-zsh
    是不是mac君把oh看成了on 自己写就写成了on
    ^_^

    Reply 
    • MacTalkon 2013 年 7 月 24 日 at 上午 11:49 said:

      手误,哈哈

      Reply 
  3. Danny羽沐风 on 2013 年 7 月 24 日 at 下午 3:22 said:

    哥, 我前几天刚配置完zsh-git-prompt. 您咋不早梭妮~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Reply 
    • MacTalkon 2013 年 7 月 24 日 at 下午 11:33 said:

      一切都来的即

      Reply 
      • Danny羽沐风on 2013 年 7 月 25 日 at 上午 11:34 said:

        以前都是默认bash, 写程序的时候才切到zsh+git prompt, 现在可以果断吧默认shell改成zsh了, 谢了强哥.

        Reply 
  4. inferjay on 2013 年 7 月 24 日 at 下午 11:02 said:

    炒房炒股的是物质上的富有,而您是精神上的富有不仅提升了自己也在无形中帮助了别人,相比我觉得后者活得更有价值~~~

    Reply 
  5. 招牌疯子 on 2013 年 7 月 24 日 at 下午 11:52 said:

    “如果你依然准备使用 bash,那就去面试和忏悔吧”
    应该是错别字吧

    Reply 
    • MacTalkon 2013 年 7 月 25 日 at 上午 9:10 said:

      是错别字,已经休整

      Reply 
      • kon 2014 年 10 月 9 日 at 下午 6:12 said:

        “休整”应该是错别字吧

        Reply 
        • 匿名on 2015 年 3 月 11 日 at 上午 10:38 said:

          你酱合适么。。。

          Reply 
  6. syou on 2013 年 7 月 25 日 at 上午 4:22 said:

    cygwin下面也可以用zsh的。。

    Reply 
  7. Fighter on 2013 年 7 月 25 日 at 上午 7:27 said:

    不错。先去试试先。

    Reply 
  8. thbourlove on 2013 年 7 月 25 日 at 上午 8:12 said:

    zsh强在社区,从设计上讲,真正的终极shell非fish莫属。

    Reply 
    • 匿名on 2014 年 10 月 19 日 at 下午 11:19 said:

      之前一直用oh-my-zsh 这两天更新了mac yosemite ,zsh不知道为什么cpu老是飙的很高.
      后来转了fish,再加上oh-my-fish https://github.com/bpinto/oh-my-fish/ zsh 确实用的时候有些不爽的地方.
      个人也觉得还是喜欢fish多点…

      Reply 
  9. benson on 2013 年 7 月 25 日 at 上午 10:04 said:

    手动安装oh my zsh ,安装完成之后退出启动还是bash,
    发现少了一条命令。(顺便求字体)

    4. Set zsh as your default shell:
    chsh -s /bin/zsh

    Reply 
    • xieweion 2014 年 4 月 17 日 at 上午 8:08 said:

      非常感谢,是说奇怪怎么安装不成功呢!!!

      Reply 
  10. ningyu on 2013 年 7 月 25 日 at 上午 11:08 said:

    为什么我是得注销之后才能显示是zsh呢,关闭再启动新的会话还是之前的bash

    Reply 
    • XIN SONGon 2016 年 12 月 16 日 at 上午 6:34 said:

      me too

      Reply 
  11. alex.c on 2013 年 7 月 25 日 at 下午 12:23 said:

    如果使用 brew install autojump 自动安装 autojump 的话,那么根据 brew 的提示,.zshrc 中需要增加的代码应该是:

    [[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew –prefix`/etc/autojump.sh

    撸主的配置只是适合手工安装的情况。
    希望其他童鞋注意一下,否则 zsh 会提示找不到 j 命令。

    Reply 
    • MacTalkon 2013 年 7 月 25 日 at 下午 1:21 said:

      根据安装提示做就好了

      Reply 
    • Abel Zhanon 2015 年 3 月 2 日 at 上午 10:43 said:

      [[ -s brew --prefix/etc/autojump.zsh ]] && . brew --prefix/etc/autojump.zsh

      Reply 
    • 匿名on 2015 年 5 月 14 日 at 下午 2:37 said:

      我就是用brew安装的,确实有问题。这个代码也不行。
      提示:Error: Unknown command: –prefix
      .zshrc:.:129: no such file or directory: /etc/autojump.sh

      Reply 
  12. 我在积木 on 2013 年 7 月 25 日 at 下午 1:40 said:

    强哥,
    alias -s txt=Sublime Text 2
    alias -s txt=’Sublime Text 2′
    alias -s txt=”Sublime Text 2″

    zsh: command not found: Sublime
    这个怎么处理,zsh 不识别空格

    Reply 
    • Kevinon 2013 年 7 月 26 日 at 下午 1:59 said:

      空格应该转义就可以了,试试’Sublime\ Text\ 2′

      Reply 
      • 我在积木on 2013 年 7 月 27 日 at 上午 12:49 said:

        不行,试过了。

        Reply 
        • HeroicYangon 2013 年 8 月 4 日 at 下午 12:16 said:

          插件中加入 sublime,然后命令行就有 st 命令了。
          alias -s html=st
          等等等等…

          Reply 
          • 张仝on 2014 年 4 月 13 日 at 下午 2:13 said:

            感谢,还是喜欢sublime text

    • kiwifleeon 2013 年 7 月 26 日 at 下午 3:09 said:

      用subl,alias -s txt=subl

      Reply 
      • 我在积木on 2013 年 7 月 27 日 at 上午 12:50 said:

        这个也不行

        Reply 
        • jinwuon 2013 年 7 月 31 日 at 下午 10:42 said:

          试试新建symbolic link,因为默认mac terminal 是不认识sublime的。
          https://gist.github.com/artero/1236170
          具体方法:ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime

          然后,就:
          在.zshrc里面:
          alias -s html=sublime
          alias -s rb=sublime
          alias -s py=sublime
          alias -s cpp=sublime
          alias -s h=sublime
          alias -s java=sublime
          alias -s txt=sublime

          Reply 
          • sunlnon 2014 年 3 月 1 日 at 上午 11:08 said:

            感谢。

    • 匿名on 2014 年 11 月 16 日 at 下午 4:56 said:

      用 alias -s txt=st
      另外,你要注意一下这个文件:oh-my-zsh/plugin/sublime/sublime.plugin.zsh,看一下你机器上的 Sublime的安装路径在不在里面。
      看了这个文件之后,你也就知道 alias 里用到的是 st ,而不是 Sublime*

      Reply 
  13. Sean on 2013 年 7 月 25 日 at 下午 2:59 said:

    顶! 楼主老霸道啦!!

    Reply 
  14. air_bob on 2013 年 7 月 25 日 at 下午 5:34 said:

    已经换了,谢谢!

    Reply 
  15. zy_33 on 2013 年 7 月 25 日 at 下午 6:45 said:

    在这里学到很多提高效率的知识,非常感谢

    Reply 
  16. ninja on 2013 年 7 月 25 日 at 下午 9:01 said:

    最后我忍住了。因为你没告诉我怎么再切回bash。。。

    Reply 
    • 汪晋辰on 2013 年 7 月 28 日 at 上午 1:33 said:

      直接输入bash就回到bash了

      Reply 
    • leofenon 2013 年 8 月 22 日 at 下午 8:18 said:

      sudo chsh username
      然后输入bash的路径就可以恢复了

      Reply 
      • 七七on 2013 年 12 月 4 日 at 下午 3:07 said:

        我的mac的终端,我变成zsh了,怎么还原回mac原版终端模样?执行上面的sudo chsh username可以么?

        Reply 
  17. liukebin on 2013 年 7 月 25 日 at 下午 9:54 said:

    很好的内容,很好的网站

    Reply 
  18. chenfujianghu on 2013 年 7 月 25 日 at 下午 11:47 said:

    居然有这么强大的好东西,果断得一试啊!就像刚接触vim的时候一样,好东西就是不管遇到什么语言,总能发挥出最强大的威力,用了是不舍得丢掉的,强哥,谢了啊!

    Reply 
  19. Pingback: 半月杂记 2013/07/26 | Kevin's Blog

  20. demonNico on 2013 年 7 月 26 日 at 上午 9:29 said:

    autojump的插件貌似在~/.oh-my-zsh/plugins/已经有了,so如果装了oh-my-zsh的话只要在.zshrc文件里包含进来plugins=(autojump)不用重复安装了吧?

    Reply 
  21. msheng on 2013 年 7 月 26 日 at 下午 12:54 said:

    刚刚弄好了,挺好玩的

    Reply 
  22. GlacJAY on 2013 年 7 月 26 日 at 下午 1:35 said:

    我觉得要感谢的还有 zsh 的作者(们)吧,这才是正体。

    Reply 
  23. 王越 on 2013 年 7 月 27 日 at 上午 12:31 said:

    谢谢你的文章,我已经开始尝试将shell换成zsh了。
    此外,
    [[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
    这个配置不是每个人都适用的,这样更通用一些:
    [[ -s brew --prefix/etc/autojump.sh ]] && . brew --prefix/etc/autojump.sh

    Reply 
    • 王越on 2013 年 7 月 27 日 at 上午 12:33 said:

      brew –prefix 前后有反引号,没有显示出来

      Reply 
      • 王越on 2013 年 7 月 27 日 at 上午 12:40 said:

        sorry 已经有人发过了。。。

        Reply 
        • fikgolon 2013 年 10 月 13 日 at 下午 2:47 said:

          [[ -s brew --prefix/etc/autojump.zsh ]] && . brew --prefix/etc/autojump.zsh .如果是autojump.sh会出现找不到complete。我这是这样的。

          Reply 
    • MacTalkon 2013 年 8 月 1 日 at 下午 4:12 said:

      第一个是 linux 的,第二个是 Mac,Mac 的不设置也可以用

      Reply 
  24. 汪晋辰 on 2013 年 7 月 28 日 at 上午 1:31 said:

    请问强哥,我是ubuntu小白,最近用的过程中发现:
    原来bash下使用到一个没有安装的package会提示,例如:
    The program ‘svn’ is currently not installed. You can install it by typing:
    sudo apt-get install subversion

    现在zsh没有提示了,只是说:
    zsh: command not found: svn

    怎么能把提示的功能加上去?
    谢谢了

    Reply 
  25. cyberyoung on 2013 年 7 月 28 日 at 上午 11:27 said:

    请教:在arch上装了,然后PS1显示的是一个方框,konsole里面正常,是一个->,这个怎么处理?上次在bash搞powerline,也是折腾了半天,加上rxvt-unicode-256color就好了,这次不行……

    Reply 
  26. NoahJi on 2013 年 7 月 31 日 at 下午 2:18 said:

    请教:我其他配置都ok的。就是无法直接打开TextMate。我Mac上是装有TextMate。 TextMate插件也安装不了。

    Reply 
    • NoahJion 2013 年 7 月 31 日 at 下午 5:44 said:

      搞定了。是自己bin里面没有把mate 加进去

      Reply 
      • MacTalkon 2013 年 7 月 31 日 at 下午 6:38 said:

        good

        Reply 
  27. moligaloo on 2013 年 7 月 31 日 at 下午 4:50 said:

    我用的是 fish,感觉并不比 zsh 差。

    Reply 
    • MacTalkon 2013 年 7 月 31 日 at 下午 6:39 said:

      fish普及度不高,插件体系也不如 zsh

      Reply 
  28. fuyou on 2013 年 7 月 31 日 at 下午 8:03 said:

    为什么我的是乱码,并且在搜索,设置export LC_ALL=zh_CN.UTF-8
    export LANG=zh_CN.UTF-8 也不管用,系统 是Mac OSX 中文

    Reply 
    • MacTalkon 2013 年 8 月 1 日 at 下午 12:56 said:

      用了 zsh 以后中文乱码了?

      Reply 
      • fuyou001on 2013 年 8 月 1 日 at 下午 8:45 said:

        没用它也乱码,

        Reply 
        • Apluspluson 2013 年 8 月 12 日 at 下午 3:24 said:

          你執行 locale 命令 輸出的是什麼?

          Reply 
  29. kiki-caoqin on 2013 年 8 月 4 日 at 下午 8:41 said:

    ➜ bin sh brew install autojump
    Warning: autojump-21.6.9 already installed, it’s just not linked
    ➜ bin cd
    ➜ ~ j -stat
    zsh: command not found: j

    求助,“it’s just not linked” 是怎么回事呢,跟着后面不能用‘j’

    Reply 
    • GlacJAYon 2013 年 8 月 4 日 at 下午 9:16 said:

      只要执行一下 brew link autojump 就行了,简单来说。

      Reply 
      • kiki-caoqinon 2013 年 8 月 11 日 at 下午 4:02 said:

        谢谢啦

        Reply 
  30. NoGeek on 2013 年 8 月 10 日 at 下午 1:13 said:

    谢谢啦,配置好了,比bash好用多了。

    Reply 
  31. yxjxx on 2013 年 8 月 13 日 at 下午 5:53 said:

    Mac君的文章是用Markdown写的么?
    这里的评论支持Markdown么?

    试一下

    Reply 
    • MacTalkon 2013 年 8 月 13 日 at 下午 6:29 said:

      是的,支持 Markdown

      Reply 
  32. haoaina521 on 2013 年 8 月 14 日 at 下午 8:41 said:

    博主,最近换zsh,但是会出现不少问题,其中一个如下:用bash可以find到需要的文件,而用zsh却不能。麻烦解释下原因。

    ➜ /home/haoaina521 >sudo find / -name libstdc++.so.6*
    zsh: no matches found: libstdc++.so.6*
    ➜ /home/haoaina521 >bash
    haoaina521@haoaina521-R480-R440:~$ sudo find / -name libstdc++.so.6*
    [sudo] password for haoaina521:
    /usr/lib/i386-linux-gnu/libstdc++.so.6
    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
    /usr/lib/libstdc++.so.6
    /usr/lib/libstdc++.so.6.0.16
    /home/haoaina521/Programes/iNodeClient_Linux/iNodeClient/libs/std/libstdc++.so.6
    haoaina521@haoaina521-R480-R440:~$

    Reply 
    • yxjxxon 2013 年 8 月 17 日 at 上午 1:16 said:

      好像是’‘ 匹配问题,我也遇到了类似的问题
      sudo apt-get remove –purge printer-driver
      ;#卸载打印  zsh为什么不能匹配那个’*',bash却可以。是我哪里配置错了么?

      Reply 
      • yxjxxon 2013 年 8 月 17 日 at 上午 1:19 said:

        图片呢?不是说支持Markdown吗?
        再试一下

        Reply 
        • yxjxxon 2013 年 8 月 17 日 at 上午 1:25 said:

          上面的'*'被抽调了,呜呜,图片也显示不出来

          ➜ /home/yxj >sudo apt-get remove --purge printer-driver*
          zsh: no matches found: printer-driver*
          ➜ /home/yxj >bash
          yxj@yxj-Mint ~ $ sudo apt-get remove --purge printer-driver*
          正在读取软件包列表... 完成
          正在分析软件包的依赖关系树
          正在读取状态信息... 完成
          注意,根据正则表达式 printer-driver* 选中了 printer-driver-cjet
          注意,根据正则表达式 printer-driver* 选中了 printer-driver-foo2zjs
          注意,根据正则表达式 printer-driver* 选中了 printer-driver-sag-gdi
          ...

          Reply 
          • yxjxxon 2013 年 8 月 17 日 at 下午 3:52 said:

            找到原因了,原来bash用的是通配符,zsh用的标准正则
            zsh中的
            $sudo apt-get remove --purge 'printer-driver.*'

            这样就和bash里面的
            $sudo apt-get remove --purge printer-driver*
            效果一样了

          • haoaina521on 2013 年 8 月 24 日 at 上午 11:36 said:

            谢谢了哈

    • MacTalkon 2013 年 8 月 18 日 at 下午 10:03 said:

      sudo find / -name “libstdc++.so.6*”

      Reply 
  33. iq527 on 2013 年 8 月 22 日 at 下午 12:01 said:

    在zsh中能支持通配符搜索,如果使用javac需要编译指定某个目录及其子目录下的所有java源码, 能支持javac com/**.java类似这样的命令嘛?

    Reply 
  34. LeoC on 2013 年 9 月 18 日 at 上午 11:53 said:

    想请问一下配置完了以后
    ➜ git:(master) ✗>
    这个git:(master)是怎么回事,怎么才能去掉

    Reply 
    • MacTalkon 2013 年 9 月 21 日 at 下午 3:05 said:

      这是表示当前目录 git 受控,zsh 的 git 插件

      Reply 
  35. Windriver on 2013 年 11 月 13 日 at 下午 11:15 said:

    看了本文,开始用zsh,目前感觉良好。

    Reply 
  36. 一点疑问 on 2013 年 11 月 15 日 at 下午 8:34 said:

    我安装了zsh和autojump。我的系统是:
    LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
    Distributor ID: CentOS
    Description: CentOS release 5.4 (Final)
    Release: 5.4
    Codename: Final

    但是很奇怪的是:
    (1) 没有jumpstat命令
    (2)在用j命令的时候,j无法记忆我去过的目录,我必须使用j -a /xx/xx/xx 才能加进入,然后删除的话竟然也无法删除(使用j –purge)。另外一个疑问是如何删除j -s 中的单条目录(比如我自己加进去写错了)

    非常感谢~

    Reply 
  37. JO on 2013 年 11 月 30 日 at 下午 7:12 said:

    你alias vi为vim 你让vi情何以堪。。。

    Reply 
  38. JO on 2013 年 11 月 30 日 at 下午 8:08 said:

    zsh: command not found: brew

    求指教!!!!!!!

    Reply 
    • MacTalkon 2013 年 12 月 1 日 at 下午 8:53 said:

      先装 brewhome

      Reply 
      • JOon 2013 年 12 月 2 日 at 下午 3:37 said:

        非常感谢!

        Reply 
        • 莫小贝on 2014 年 3 月 15 日 at 下午 11:30 said:

          你好 其实不一定要装homebrew
          macports也可以
          http://www.macports.org
          macports下的命令是sudo port install autojump

          Reply 
  39. darkfreedom on 2013 年 12 月 11 日 at 下午 9:24 said:

    按照你说的设置了下autojump,确实很好用。
    补充一点,ubuntu下面设置zsh比较麻烦。见
    https://gist.github.com/tsabat/1498393

    Reply 
  40. cheap nba jerseys yahoo on 2013 年 12 月 18 日 at 上午 5:56 said:

    Cheap jerseys from china has the top-notch cheap boca juniors jerseys in various styles and colors for you to choose!we offer a free backup service to customers.

    Reply 
  41. bearzx on 2013 年 12 月 19 日 at 下午 9:50 said:

    弱问一句老池的Google Adsense收成肿么样。。。

    Reply 
    • MacTalkon 2013 年 12 月 20 日 at 下午 1:02 said:

      早就不做啦

      Reply 
  42. William Hu on 2013 年 12 月 23 日 at 上午 10:08 said:

    池老师,启动比较慢,有时候打开新tab时候也慢,貌似是建立什么链接的样子,有什么办法么?

    Reply 
  43. haoaina521 on 2014 年 1 月 9 日 at 下午 5:01 said:

    安装autojump的最后一步,在.zshrc中加入的那行代码需要更新下(autojump更新的原因吧),不然会报错。。。

    Reply 
  44. Pingback: Homfen's Blog | oh-my-zsh安装配置

  45. staghill on 2014 年 1 月 28 日 at 上午 11:37 said:

    Mr池,我按照这个步骤设置,在 Mac 上安装完 oh-my-zsh 之后,发现找不到.zshrc文件,在 robbysussell 的 git 上看用cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc 建立新 config,发现目录里也没有这个文件,不知道是咋回事啊?
    另外/.oh-my-zsh目录在 finder 里是没法查看的吗?

    Reply 
  46. Pingback: Mac 程序员的十种武器 | | Evolution UnitEvolution Unit

  47. Pingback: Mac 程序员的十种武器 | amaker

  48. Pingback: Better shell in Mac OS X: zsh - nonocast

  49. Pingback: ubuntu下web开发环境搭建 | 新世纪Linux社区

  50. sunln on 2014 年 3 月 1 日 at 上午 11:22 said:

    必须得用h1来感谢你的文章。买了你的电子书,光是这篇文章就足够回来了。

    Reply 
    • MacTalkon 2014 年 3 月 1 日 at 下午 10:01 said:

      来本纸书吧,多了10万字,收获会更大

      Reply 
  51. cpf on 2014 年 3 月 1 日 at 下午 10:02 said:

    用zsh遇到了一个搞死人的问题。

    如果我在terminal(不用zsh)中跑gradle clean test,完全没问题。

    但是如果用zsh,则有一个包含了中文字符的junit测试无论如果都过不了。

    我开始以为是代码的问题,搞了好久啊。。。。。。

    Reply 
  52. cpf on 2014 年 3 月 1 日 at 下午 10:07 said:

    我开始认为是jersey的问题,后来认为是gradle的问题,还开了一个repo来试图重现问题:https://github.com/cuipengfei/reproduce-weird-issues/tree/master/gradle-encoding

    楼主有遇到过类似的encoding问题吗?

    Reply 
  53. cpf on 2014 年 3 月 1 日 at 下午 10:29 said:

    找到解决方案了:

    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8

    Reply 
  54. Pingback: 在 Mac OS X 下打造赏心悦目的开发环境 – Cloud&Matrix | 查问题

  55. wheato on 2014 年 3 月 26 日 at 上午 12:36 said:

    奇怪了,按照文中的方法。zsh开启了,但是没有应用oh-my-zsh的主题和配置。不知道是什么原因。

    Reply 
  56. 果壳 on 2014 年 4 月 15 日 at 下午 7:09 said:

    wushantekiMacBook-Pro:~ wushan$ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
    fatal: destination path ‘/Users/wushan/.oh-my-zsh’ already exists and is not an empty directory.
    wushantekiMacBook-Pro:~ wushan$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    cp: invalid option — ‘g’
    Try ‘cp –help’ for more information.
    我复制的时候出现了这个问题该怎么办啊 搞不定啊

    Reply 
  57. chun jiang (@icemelon_) on 2014 年 6 月 13 日 at 上午 11:03 said:

    alias grep=”grep –color=auto” 这条好像没有什么用哟,在.oh-my-zsh/lib 的 grep.zsh里面已经自动设置成auto了~

    Reply 
  58. 匿名 on 2014 年 10 月 1 日 at 下午 11:05 said:

    windows用cygwin,也可以凑合,哈

    Reply 
  59. 匿名 on 2014 年 10 月 20 日 at 上午 10:30 said:

    谢谢分享!

    Reply 
  60. 匿名 on 2014 年 10 月 22 日 at 下午 5:38 said:

    按照你的配置以后,数字键盘不能输入数字,能否帮忙解决一下?

    Reply 
  61. leeon on 2014 年 11 月 15 日 at 下午 11:09 said:

    在自己的mac上zsh爽的飞起, 一上公司的跳板机就回到解放前,哈哈

    Reply 
  62. nagae_memooff on 2014 年 12 月 10 日 at 上午 11:22 said:

    这篇文章里提到的大多数功能bash也有,真的……

    Reply 
  63. HelloWorld on 2015 年 1 月 6 日 at 下午 1:03 said:

    谢谢强哥,买了您的《MacTalk 人生元编程》,博客也写得非常好!物质上的富有不是精神上的富有所能比的!

    Reply 
  64. Pingback: oh-my-zsh安装配置 | Homfen's Blog

  65. Pingback: 【CLI】zsh调研(2)配置和使用 – 剑客|关注科技互联网

  66. Pingback: 在OSX上配置好用的终端 | TalkCool

  67. 匿名 on 2015 年 3 月 23 日 at 上午 11:32 said:

    安装git,然后git clone https://github.com/universefei/confeverig, 然后cd confeverig之后./install.sh就可以了

    Reply 
  68. 匿名 on 2015 年 5 月 26 日 at 上午 8:29 said:

    各位大大,我现在使用git log显示时会打开文件显示,我想直接显示在当前窗口怎么做呢?

    Reply 
  69. Pingback: shell: 增强你的bash,提高命令效率之终极利器oh-my-zsh – osetc.com

  70. Pingback: Shell(一):功能、配置和插件 – 剑客|关注科技互联网

  71. Pingback: OS X 新手必备 - 云岩

  72. 匿名 on 2015 年 8 月 14 日 at 上午 11:01 said:

    我再看unix环境编程,不过发现如果使用zsh的话time -p就无法正常使用了

    Reply 
  73. Pingback: mac下常用工具箱 | 学习笔记

  74. euii on 2015 年 9 月 8 日 at 下午 12:38 said:

    为什么在进入任何一个目录之后,提示符都是 git:(master) ,本地的目录和git:(master)有啥关系啊?不明白

    Reply 
  75. caimaoy on 2015 年 9 月 24 日 at 下午 6:56 said:

    相当精彩

    Reply 
  76. Pingback: Ubuntu安装配置使用zsh | b404

  77. Pingback: Mac 开发者常用的工具 - 拾味

  78. 匿名 on 2016 年 1 月 11 日 at 下午 1:29 said:

    为啥在cli下面前面的箭头显示乱码?locale都是en_US.UTF-8

    Reply 
  79. Pingback: Mac OS X 10.11 El Capitan 系统个人化设置参考 – Zhenyu's Homepage

  80. Pingback: 终极 Shell 不同体验的 Terminal – 钰雪

  81. Allen on 2016 年 4 月 10 日 at 下午 6:31 said:

    “如果你用 Windows……去洗洗睡吧。”
    14316 之后 Win也能zsh了啊,哈哈

    Reply 
  82. Joe on 2016 年 4 月 13 日 at 上午 11:00 said:

    为什么装问zsh,chkconfig命令就没有了?
    zsh: command not found: chkconifg

    Reply 
  83. Pingback: fedora下安装配置zsh shell | 瓜哥blog

  84. 匿名 on 2016 年 5 月 28 日 at 上午 7:19 said:

    autojump 现在这个版本的在用brew安装完后加 [[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew –prefix)/etc/profile.d/autojump.sh 到.zshrc里

    Reply 
  85. Pingback: Shell脚本编程总结及速查手册-自由港

  86. Pingback: Shell脚本编程总结及速查手册 - code123

  87. 匿名 on 2016 年 8 月 29 日 at 下午 4:23 said:

    在zsh中数字小键盘不能用?

    Reply 

发表评论 

sagacity-mac-8cm

我要理财 || AutoVPN


AngenWho
我要理财green vpn

MacTalk

  • 程序员职业生涯巡礼
  • 新 MacBook Pro 适合开发吗?
  • 微信的演进和未来
  • 微信为什么会成功?
  • 怎么减少编程中的 bug?
  • 当有人向你反馈了一个bug之后
  • 为什么大公司看起来都那么糟糕?
  • 关于钱和理想
  • iOS 9 的字体及其他
  • 每个人都该懂点设计

标签

AirDrop Alfred App AppleApplescript Automator Books dnsDock Finder FindYYeTs iPhoto Macmachis Mac演化史 MailBox Mavericksmdfind mdls Objective-C openPixelmator Safari Space Spotlight Time Machine Vim vpn WWDC XtraFinder 产品设计 功能键 命令行 安全 微信帐号 快捷键截屏 技术成长 文本编辑器 程序员 自由软件 西游通知 遗失的访谈 黑客

文章归档

  • 2017 年四月
  • 2016 年十一月
  • 2016 年七月
  • 2016 年二月
  • 2016 年一月
  • 2015 年十二月
  • 2015 年九月
  • 2015 年八月
  • 2015 年七月
  • 2015 年四月
  • 2015 年一月
  • 2014 年十二月
  • 2014 年十一月
  • 2014 年十月
  • 2014 年九月
  • 2014 年八月
  • 2014 年六月
  • 2014 年五月
  • 2014 年四月
  • 2014 年三月
  • 2014 年二月
  • 2014 年一月
  • 2013 年十二月
  • 2013 年十一月
  • 2013 年十月
  • 2013 年九月
  • 2013 年八月
  • 2013 年七月
  • 2013 年六月
  • 2013 年五月
  • 2013 年四月
  • 2013 年三月
  • 2013 年二月
  • 2013 年一月
  • 2012 年十二月

回首往事

2017 年四月一二三四五六日« 十一   123456789101112131415161718192021222324252627282930

随便说说

  • MacTalk 发表在《关于我》
  • 白色风车 发表在《先有 Mac 还是先有钱?》
  • zjw 发表在《关于我》
  • 匿名 发表在《微信为什么会成功?》
  • 匿名 发表在《神兵利器——Alfred》
  • xhq 发表在《程序员很穷》
  • solaris 发表在《最可怕的产品经理》
  • 匿名 发表在《程序员很穷》
  • X_x彬 发表在《MacTalk By 池建强》
  • 匿名 发表在《程序员很穷》

功能

  • 注册
  • 登录
  • 文章 RSS
  • 评论 RSS
  • WordPress.org
0 0