看了这个问题也关注这个问题很久了,很多人介绍的都是oh-my-zsh(一下简称omz)的一些特征。不可否认这是一个很优秀的框架,但zsh的世界不应该全是omz。这个回答,我想介绍一下zsh原生自带的一些功能,技巧。以及除了omz以外,有哪些优秀的插件框架。

关于叹号的用法

先说个很基本的用法,Shell都支持!!,!^,!$,!*。这四种用法分别指代上一条命令、上一条命令的第一个参数、上一条命令的最后一个参数、上一个命令的全部参数。可以按补全,也可直接执行,zsh会自动补全,再去执行。bash的话,按不会帮你补全。

zsh% echo 1 2 3 4
1 2 3 4 "!!" # echo 1 2 3 4
"!^" # 1
"!$" # 4
"!*" # 1 2 3 4

非首位参数可以用!:指定

zsh% echo 1 2 3 4
1 2 3 4 "!:1" # 1
"!:-3" # echo 1 2 3
"!:1-1" # 1
"!:3-4" # 3 4

zsh还支持!?这种用法,上面的基本叹号用法只能查找上一个命令的参数。这种用法可以更灵活的搜索。

  • !?<文本> 在历史命令里查找上一个包含这个文本的命令
  • !?<文本>?:<^ $ * : :-> 上面的可以补全命令,如果只需要参数,可以使用这个
sudo !?mv           # 移动刚才移动失败的文件
cd !?mkdir?:*<tab> # 进入刚才的创建的目录

关于星号的用法

这里的星号是通配符的增强用法,在*()中添加修饰限定匹配的文件。

基本语法:

m 修改日期

m的默认单位是天,也可以使用小时h,周w,月M m=minutes,d=days(default)w=week,M=Month +n older than n,-n younger than, just n equal to' # N

例子:

  • *(m0) 当天修改过的文件
  • *(^m0) 当天未修改过的文件
  • *(mh-3) 修改小于3小时的文件
  • *(mw+2) 修改超过两星期的文件

L 文件大小

(WIP)

配置zsh

这一部分介绍的是bash支持的用法,而zsh默认不支持。如何去配置,完成这些功能。

C_X C_E 用默认的文本编辑器编辑命令

M_. 倒序一次遍历命令的最后一个参数

zsh使用技巧(WIP)的更多相关文章

  1. linuxtoy.org资源

    https://linuxtoy.org/archives.html Archives 在 Android 系统上安装 Debian Linux 与 R (2015-07-14) Pinos:实现摄像 ...

  2. [zsh]zsh常用小技巧

    文章来源http://yijiebuyi.com/blog/3154040ae0aa3d352c61a10f2664591e.html shell基础: 查看当前使用shell类型: ->ech ...

  3. 使用Unity3D的50个技巧

    使用Unity3D的50个技巧 刚开始学习Unity3D时间不长,在看各种资料.除了官方的手册以外,其他人的经验也是非常有益的.偶尔看到老外这篇文章,觉得还不错,于是翻译过来和大家共享.原文地址:ht ...

  4. Android Gradle 技巧之二: 最爱命令行

    命令行 很多做 Android 开发不久的同学,习惯于使用图形界面,对命令行操作很陌生甚至恐惧.遇到 AS 运行错误,束手无策.AS 为了确保易用性,也在 UI 界面上屏蔽了很多命令行运行的细节,导致 ...

  5. 使用Unity3D的50个技巧:Unity3D最佳实践

    翻译故事 原文:http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/ 这篇技巧,我自己也在翻译, ...

  6. 8 个 Git 的小技巧

    git 已经成为了我日常必备工具之一,我总结我几乎每天使用的8个有用(且简洁)的git技巧.   使用-p选择性添加 当你想提交内容时,你可以通过使用 git commit -am 来选择所有文件或使 ...

  7. Linux学习之常用技巧

    ▌基础 学习 Bash .你可以man bash来看看bash的东西,并不复杂也并不长.你用别的shell也行,但是bash是很强大的并且也是系统默认的.(学习zsh或tsch只会让你在很多情况下受到 ...

  8. 应该知道的Linux技巧

    作者:陈皓(花名:钻风) 这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?& ...

  9. Iterm2安装Zsh + Oh My Zsh+Solarized

    安装Oh My Zsh curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 安装Zsh ...

随机推荐

  1. [loj#539][LibreOJ NOIP Round #1]旅游路线_倍增_dp

    「LibreOJ NOIP Round #1」旅游路线 题目链接:https://loj.ac/problem/539 题解: 这个题就很神奇 首先大力$dp$很好想,因为可以把一维放到状态里以取消后 ...

  2. python列表一

    1.列表数据类型 列表是一个值,它包含多个值构成,也可包含其他列表,其内的表项用逗号分隔 列表值:作为一个值可以保存在变量中,或传递给函数,像所有其他值一样.  #不是指括号内的值 表项:列表中的值, ...

  3. django 中 null=True 和 blank=True的区别!

    null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空,即在Null字段显示为YES. blank 是针对表单的,如果 blank=True,表示你的前端表单填写该字段的时 ...

  4. Elastic Search中normalization和分词器

    为key_words提供更加完整的倒排索引. 如:时态转化(like | liked),单复数转化(man | men),全写简写(china | cn),同义词(small | little)等. ...

  5. 怎样在 Vue 中使用 事件修饰符 ?

    Vue 中可以通过 v-on 来绑定事件监听函数, 不过事件会有许多额外情况, 比如 是否阻止冒泡 / 是否阻止重载 / 是否限制点击次数 / 是否可以通过按键触发 等等. 这时就需要使用到 事件修饰 ...

  6. Guava动态调用方法

    前言 大家在Coding的时候,经常会遇到这样一个情况,根据不同的条件去执行对应的代码.我们通常的处理方式是利用if-else判断,或者直接switch-case,特别是jdk1.6之后,swith开 ...

  7. scala 面向对象之 继承

    scala 面向对象之 继承 scala   1.extends Scala中,让子类继承父类,与Java一样,也是使用extends关键字 继承就代表,子类可以从父类继承父类的field和metho ...

  8. 1 sql server 利用多重赋值将一列的数据以逗号分隔,返回

    declare @mav varchar(max) select @mav=coalesce(@mav+', '+d.Name,d.Name) from ( select Name from Huma ...

  9. Python学习计划-首篇

    概述 Python语言这几年的热度一直持续上升,有多火也不用我再介绍了,光从近几年编程语言排行榜的上升热度就能看出,因此我也计划学习一下python语言,并且将每次的学习收获记录下来.一方面是记录下来 ...

  10. 深入学习Mybatis框架(二)- 进阶

    1.动态SQL 1.1 什么是动态SQL? 动态SQL就是通过传入的参数不一样,可以组成不同结构的SQL语句. 这种可以根据参数的条件而改变SQL结构的SQL语句,我们称为动态SQL语句.使用动态SQ ...