文档章节

zsh高效命令行

mingle
 mingle
发布于 2015/08/20 09:53
字数 1488
阅读 5112
收藏 8
点赞 2
评论 0

Zsh

Zsh 也许是目前最好用的 shell,是 bash 替代品中较为优秀的一个。这里列举了 zsh 的一些优点:为什么要使用 zsh

Mac 自带 zsh,不过我们当然要用最新版啦,其他发行版请参照各自的软件安装方法。安装完毕后,重新打开 iTerm2。

brew install zsh
chsh -s `which zsh`

补全

zsh 的命令补全功能非常强大,可以补齐路径,补齐命令,补齐参数等。(请问你记住 tar 的所有参数了吗😃,只要 tar -加 tab 键,再也不用 rtfm 了😂)

zsh auto complete  zsh auto complete

按下 tab 键显示出所有待选项后,再按一次 tab 键,即进入选择模式,进入选择模式后,按 tab 切向下一个选项,按 shift+tab 键切向上一个选项,ctrl+f/b/n/p 可以向前后左右切换。

zsh tab 切换  zsh tab 切换

以前杀进程是ps aux | grep xxx查进程的 PID,然后kill PID。有了 zsh,直接kill xxx然后按下 tab 键即可~

kill emacs# 按下 tab,变成:kill 59683

别名

zsh 不仅支持普通 alias,还支持针对文件类型的 alias。我配置的文件类型 alias 如下:

alias -s gz='tar -xzvf'alias -s tgz='tar -xzvf'alias -s zip='unzip'alias -s bz2='tar -xjvf'alias -s php=vialias -s py=vialias -s rb=vialias -s html=vialias gcid="git log | head -1 | awk '{print substr(\$2,1,7)}' | pbcopy"

配置完毕之后,在 zsh 下直接输入xxx.rb,将自动用 vi 打开,直接输入xxx.tgz,将直接按照tar -xzvf解压。最后一个gcid将当前 git 项目的第一个 commit 的 id 复制到系统剪切板(pbcopy是 Mac 下的复制到系统剪切板命令,linux 请参考相应的发行版更改),在执行 rebase 的时候特别方便。

跳转

zsh 的目录跳转更为智能,你无需输入cd,直接输入路径即可。..表示后退一级目录,../../表示后退两级,依次类推。(...的作用和../../相同)

输入d,将列出当前 session 访问过的所有目录,再按提示的数字即可进入相应目录。

~
> d
0	~
1	~/Applications
2	~/.proxychains
3	/opt/homebrew-cask/Caskroom

~
> 1
~/Applications

历史记录

zsh 的历史记录跨 session,可以共享。历史记录支持受限查找。比如,输入git,再按向上箭头,会搜索用过的所有 git 命令。

通配符搜索

ls *.png查找当前目录下所有 png 文件,ls **/*.png递归查找。

oh-my-zsh

oh-my-zsh 是最为流行的 zsh 配置文件,提供了大量的主题和插件,极大的拓展了 zsh 的功能,推动了 zsh 的流行,有点类似于 rails 之于 ruby。

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

安装过后,source ~/.zshrc使之生效。

主题

oh-my-zsh 内置了大量主题,可在~/.oh-my-zsh/themes中查看具体的配置。官网提供了一些主题的截图。也可参见我的知乎回答

# 我用的主题是 avit,可以很好的显示 git 信息/Volumes/Disk Image/cloudoffice  master ✔                                     37m
> 鼠标在新一行

插件

oh-my-zsh 提供极为丰富的插件,在~/.oh-my-zsh/plugins目录下查看具体的配置。在.zshrc中写入plugin(git autojump osx)即可使用插件,下面介绍几个特别优秀的插件。

git

精简 git 命令,减少输入字符数。参见 Plugin:git。该插件提供的快捷命令比较多,挑几个常用和好记的记忆即可,不必全记。我常用的有gstggpgcogcmgcp 等。

autojump

autojump 按照你的使用频率记录路径,使得目录的跳转更为方便。安装brew install autojump。如需跳转到包含 ‘foo’ 的目录,执行j foo,这是最基础,也是最常用的命令。除此之外,还有jcjo,jco命令,查看官网文档获取更多的使用方法。

osx

该插件增强 Mac 下的使用体验,提供了如下命令:

  • cdf: 在 Finder 中打开要 cd 的目录;

  • quick-look: 快速预览该文件,类似于在 Finder 中按下空格键;

  • man preview: 在 preview 中打开 man page;

  • itunes: 命令行操作 iTunes。

> itunes
itunes:shift:2: shift count must be <= $#Usage: itunes <option>
option:
	launch|play|pause|stop|rewind|resume|quit
	mute|unmute	control volume set	next|previous	play next or previous track
	shuf|shuffle [on|off|toggle]	Set shuffled playback. Default: toggle. Note: toggle doesn't support the MiniPlayer.
	vol	Set the volume, takes an argument from 0 to 100	help	show this message and exit

其他命令可查看插件

proxychains

proxychains 是命令行的科学上网工具。安装brew install proxychains-ng。如图所示,亚马逊 S3 存储服务和 github 并不稳定,有时候需要科学上网才能访问。

# 原命令brew cask install xxx# 使用 proxychainsproxychains4 brew cask install xxx

proxychains  proxychains

其他

ag

ag 是一个新的搜索工具:

  • ack相比,速度有了巨大的提升,这里有一个对比

  • 搜索会忽略.gitignore.hgignore中的 pattern;

  • 不想搜索的文件可以把对应的 pattern 写到.agignore中;

  • 命令比ack短 33%,且一只手可以按全。

最后一条虽然看似戏谑,却道出了工具的本质:哪怕是能减少输入一个字符,也是必要的进步。

htop

htop 是一款运行于 Linux 系统监控与进程管理软件,用于取代 Unix 下传统的 top。与 top 只提供最消耗资源的进程列表不同,htop 提供所有进程的列表,并且使用彩色标识出处理器、swap 和内存状态。1

htop  htop

htop 命令优点2:

  • 快速查看关键性能统计数据,如 CPU(多核布局)、内存/交换使用;

  • 可以横向或纵向滚动浏览进程列表,以查看所有的进程和完整的命令行;

  • 杀掉进程时可以直接选择而不需要输入进程号;

  • 通过鼠标操作条目;

  • 比 top 启动得更快。

ccat

ccat 是上色的cat,在 cat 的基础上提供了语法高亮。可通过brew install ccat安装。目前已支持rubypythonjavascriptjavacgo

ccat


© 著作权归作者所有

共有 人打赏支持
mingle
粉丝 9
博文 123
码字总数 19585
作品 0
朝阳
程序员
如何轻松记住 Linux 命令

Linux 新手往往对命令行心存畏惧。部分原因是因为需要记忆大量的命令,毕竟掌握命令是高效使用命令行的前提。 不幸的是,学习这些命令并无捷径,然而在你开始学习命令之初,有些工具还是可以...

作者: Nick Congleton ⋅ 2017/11/29 ⋅ 0

我的Mac OS X软件列表

Application + Chrome - 网页浏览器。+ AdBlock -屏蔽网页广告的神器。+ JSONView - 格式化输出JSON字符串。+ Postman - 开发API的利器。+ EditThisCookie - 修改请求的cookie。+ Octotree ...

Liuxd ⋅ 2016/06/23 ⋅ 0

如何轻松记住 Linux 命令

原文出处: Nick Congleton 译文出处:Linux中国/DarkSun Linux 新手往往对命令行心存畏惧。部分原因是因为需要记忆大量的命令,毕竟掌握命令是高效使用命令行的前提。 不幸的是,学习这些命...

Nick Congleton ⋅ 2017/11/30 ⋅ 0

oh my zsh 和 window git bash 设置别名提高效率

安装 公司使用系统。自己安装了 oh my zsh官网。这里简述下安装方法 安装成功后,配置信息会在。可以通过打开编辑配置信息,可以看到默认配置了 插件Plugin:git。 也就是说,可以更加简便的使...

轩辕Rowboat ⋅ 06/03 ⋅ 0

Mac下配置iTerm2 + oh-my-zsh

1、安装iTerm2 首先我们下载的 iterm2 这个软件,比Mac自带的终端软件更加强大。直接官网 http://iterm2.com/ 下载,然后把它拖到应用软件里面就行。 2、安装og-my-zsh github连接:https:/...

LssTechnology ⋅ 05/29 ⋅ 0

Oh-My-Zsh 操作 Git 的快捷键

本篇文章介绍 Oh-My-Zsh 安装,以及 git 快捷键。也许你已经烦透了每天 ... 如果操作变成这样 是不是很炫酷,好吧,对于已经使用的人没什么新鲜感。 接下来针对好奇的 Program development ...

szxy1234 ⋅ 2017/09/19 ⋅ 0

Zsh 5.0 已提供下载

Z shell(Zsh)的开发团队已提供其 5.0 正式版本的源码包下载。Zsh 5.0 是继 4.2 之后而推出的稳定版本,与上一版相比,为其用户添加了诸多新特性。 根据 Zsh 5.0 的 NEWS 文件,该版本的主要...

oschina ⋅ 2012/07/22 ⋅ 0

Trash Can 3.4 发布,命令行下的回收站

Trash Can 3.4 发布了,该版本完全支持 ZSH 互操作,如果你在使用 bash 或者是 zsh 则无需更新。另外该版本也对接下来的 4.0 做了准备,包含了一些 Perl 版本的工具包。 Trash Can 是一个命令...

红薯 ⋅ 2012/03/01 ⋅ 0

zsh下 一些命令行效率工具

一些命令行效率工具 声明: 本文采用 CC BY-NC-ND 4.0 授权。 Zsh Zsh 也许是目前最好用的 shell,是 bash 替代品中较为优秀的一个。这里列举了 zsh 的一些优点:为什么要使用 zsh。 Mac 自带...

卧龙小 ⋅ 2016/06/07 ⋅ 0

Mac 利器:brew、brew cask、zsh

mac 学习记录 brew(也叫 Homebrew) 参考链接 安装 brew 的官网:http://brew.sh/index_zh-cn.html 有对此详细描述安装方法:打开terminal,输入命令: 使用brew安装软件 一个命令搞定,比如安...

evilgod528 ⋅ 2014/08/25 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 34分钟前 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

版本控制工具

CSV , SVN , GIT ,VSS

颖伙虫 ⋅ 昨天 ⋅ 0

【2018.06.19学习笔记】【linux高级知识 13.1-13.3】

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

lgsxp ⋅ 昨天 ⋅ 0

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部