《MacTalk·人生元编程》介绍说zsh是终极Shell。反正Mac自带,不妨chsh -s zsh切换来看看。

  • alias -s c=vim,关联.c文件到vim,在terminal直接输入test.c,相当于vim test.c. 节省了一个“vim”。
  • d,显示曾经访问的目录。3直接切换到3对应的目录。
  • 配合autojump($ brew install autojump),使路径跳转异常方便。

看起来确实不错。

  • zsh官网: zsh.org
  • Web Pages: zsh.sourceforge.net
  • 获取源码git clone git://git.code.sf.net/p/zsh/code zsh

zsh是Mac自带的shell之一,执行$ cat /etc/shells, 输出:

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

Mac默认使用bash,通过命令 $ chsh -s /bin/zsh 可以切换到zsh.

zsh的配置(包含插件、主题等)可以使用oh-my-zsh

oh-my-zsh安装和卸载

都非常简单,一行命令搞定

install

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

uninstalluninstall_oh_my_zsh

配置文件在: ~/.zshrc

主题可自由更换,都在~/.oh-my-zsh/themes. 看着默认的主题也还可以,就不折腾了。ZSH_THEME="robbyrussell"

概念

参数(变量)

普通参数

foo='This is a parameter'

  • 注意:

    • ”=前后没有空格
    • ’ ‘内的所有字符都在foo变量内,包括换行符
  • 单引号:
    • print $foo

      • This is a parameter
    • print '$foo'
      • $foo
    • print ''$foo''
      • This is a parameter
  • 双引号:
    • print "$foo"

      • This is a parameter
    • print ""$foo""
      • This is a parameter

Array

foo=(This is a parameter)

  • print -- ${foo[4]}

    • parameter
  • 取变量时,可以加上{}使条理清晰。

表达式

if… else…

  • -o: test an option

    • -o interactive
    • -o login
if [[ -o login ]]; thenprint yes
elseprint no
fi

函数

fn() {print Hello world!
}

使用:fn

如果函数定义在.sh文件中,可以用source file.sh使其生效。

命令

  • shell会将所有命令缓存在hash table中,这样每次取命令就非常快。
  • 如果新加一个path到PATH, zsh会自动执行rehash
  • 查看历史命令.zsh_history
command meaning
env 环境变量
type 查看是否为shell内建命令
alias ls=’ls -G’ 别名
d [number] 显示(跳转到)历史目录(默认10个)

使用zsh+oh-my-zsh+autojump相关推荐

  1. mac下 iterm+Zsh+Oh My Zsh+tmux 配置方案

    iterm2: iterm的一些优点: 兼容性好,远程服务器 vi 什么的低版本能很好兼容,Terminal 则会出问题 (我是长时间在服务器上混的人,但其实并没有这种感觉--) 支持 xterm-2 ...

  2. Linux中在zsh下如何安装autojump

    文章目录 介绍 安装 介绍 autojump is a faster way to navigate your filesystem. It works by maintaining a databa ...

  3. Linux中zsh插件,ubuntu / zsh shell / oh-my-zsh / 常用插件

    记录一下 zsh 的下载与配置,省得每次重装系统都要上网到处查. 安装 zsh shell sudo apt install zsh 切换 shell chsh -s /bin/zsh 安装 oh-m ...

  4. [zsh] restart a zsh process

    我在 ubuntu 上使用 zsh,和 tmux 一块在用.tmux 分屏后,某一个 zsh 进程的命令历史信息或者环境变量不会同步到其他 zsh 进程,如何重启 zsh 进程解决这个问题呢,直接使用 ...

  5. Mac iTerm zsh autojump tldr

    为了工作更有效率,可以考虑shell终极神器zsh,搭配iterm.oh-my-zsh及autojump.tldr等一系列插件 1.iterm安装 $ brew cask install iterm2 ...

  6. zsh与oh-my-zsh

    在开始今天的 MacTalk 之前,先问两个问题吧: 1.相对于其他系统,Mac 的主要优势是什么? 2.你们平时用哪种 Shell? -- 第一个童靴可以坐下了,Mac 的最大优势是 GUI 和命令 ...

  7. ZSH and oh-my-zsh 强强联合

    oh my zsh 关于 zsh 的传说数不胜数,这个家伙生来过于傲慢,对于没耐心的人从来就置(不)之(屑)不(一)顾.但是好东西就是牛,当你从入门 Linux 的 shell 之路走出后,来到更广阔 ...

  8. Ubuntu工具zsh和Byobu

    使用 Zsh 的九个理由 像大部分 *nix 用户,我之前用 bash 很多年,期间也有过小的不爽,但一直都忍过来,或者是说没想过这些不爽的地方能解决,比如 cd 到一个深目录时得哐哐猛敲 <T ...

  9. 安装zsh并修改配置

    Zsh 入门 本文前提 CentOS 6.7 64 bit root 用户 Zsh 介绍 Zsh 兼容 Bash,据传说 99% 的 Bash 操作 和 Zsh 是相同的 Zsh 官网:Zsh 先看下 ...

  10. 终极 Shell——ZSH

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

最新文章

  1. 基于Python和OpenCV的目标跟踪学习教程 Object Tracking using Python and OpenCV
  2. 【经典概念】一文详解Batch Normalization!!!
  3. Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常
  4. man、info、help
  5. 【Matlab】山地建模?立体热度?怎么绘制三维曲面图?
  6. 【计算机算法设计与分析】——5.4最优二分检索树
  7. mysql 函数用还是不用_Mysql中日期和时间函数应用不用求人
  8. MyBatis+Oracle实现主键自增长
  9. 如何使用python进行批处理
  10. 强制MySQL查询走索引和强制查询不缓存
  11. 逆向知识第七讲,三目运算符在汇编中的表现形式,以及编译器优化方式
  12. PHP Socket 深度探索 (一)
  13. Anaconda中安装pygame
  14. [diy-windows系统] Windows下dism 集成系统补丁、驱动
  15. python如何切换windows窗口_python3 selenium 切换窗口的几种方法小结
  16. 透过CES看国产手机市场变动 “中华酷联”要调位
  17. 关于打印机共享和连接问题
  18. U盘文件都变成exe文件怎么办(已解决)
  19. nginx proxy_pass转发规则解析
  20. [无线玩家]玩转无线路由之DD-WRT基础扫盲

热门文章

  1. 高三女生因高中数学知识的数列解题技巧没掌握与梦想大学失之交臂
  2. React - 路由 lazyLoad 的使用(路由懒加载)
  3. 登录Microsoft账户特别慢解决办法
  4. Unity常用模块设计 : Unity游戏排行榜的制作与优化
  5. 洛谷1116 车厢重组
  6. 【Stream—7】NetworkStream相关知识分享
  7. asp.net 从服务器上下载文件
  8. LoadLibrary深入分析
  9. “饿了么”创始人张旭豪:打造专注外卖的短物流平台,解决好“最后一公里”的配送,让餐厅的地点不再是关键
  10. outlook邮箱发送邮件时出错,报告错误(0x800ccc78)“无法发送此邮件。请在账户属性中验证电子邮件地址”,解决方法...