提升效率,推荐 5 款命令行工具

使用命令行会让你提升效率,即使是在 Windows 上也是如此。


对于 GUI 项目的易用友好和 CLI 的简单高效之间,存在一场旷日持久的讨论。但我这并非想推进或是煽动一场圣战。RebelLabs 曾讨论过 JDK 内建工具并取得了不错的反响。所以我迫切的想分享几个本身没法割舍的非 JDK 命令行工具。html


我确信每个称职的开发者都至少对如何用命令行工做有所了解,不只仅是由于一些工具只存在于 CLI 的各类变体,更是由于极客精神!shell


全部人们讨论的细微差异:好比操做系统的选择(固然是 OSX ,拥有漂亮的铝合金外壳),最喜欢的shell(真的应该是 ZSH)或者相较于 Emacs、Vim 更加出众的性能(除非你有比常人更多的手指),这些都不太相关。好吧,这有点网络论战的意思,但我保证这是最后一次!浏览器


因此,个人建议是你应该学会在命令行上使用这些工具,这会对你产生积极的影响,使你至少能够享受半个世纪的愉悦和高效!服务器


总之,在这篇文章中我会和你分享四五个不为人熟知但却至关出色的命令行工具。做为额外的福利,我也会对如何在 Windows 上正确使用 shell 给出建议,这些知识自己颇有价值。微信


我写这篇帖子,最主要是由于是我真的很喜欢用这些工具,而且我也想了解其余我所不知道的命令行工具。因此,优秀的读者请留言告诉我你最喜欢的 CLI 工具,这很重要!如今假定咱们都有一个好的、可用的 shell,就让咱们来学习几个简洁而有价值的命令行工具吧。markdown


0. HTTPie


在我榜单上第一名是个被称做 HTTPie 的工具。别惧怕,庆幸的是它和浏览器没有任何关系。本质上,它是一个 cURL 封装器,用来执行来自命令行的 HTTP 请求。HTTPie 增长了不少好的功能,好比自动格式化和智能高亮输出,使其更具可读性。此外,它采用了很是人性化的执行方式,不须要你记住那些模糊的标志位和选项。要执行 一个 HTTP 请求,你只要简单的运行 http,去发送 http POST,还有比这更简单优美的吗?网络

几乎全部的命令行工具都是简单的打包安装,HTTPie 也不例外。你只须要运行下面的命令便可安装。app


在 OSX 上使用 homebrew,这是 OSX 上可以找到的最好的包管理器:brew install httpie编辑器


其余平台,使用 Python 的 pip命令:pip install –upgrade httpie


我我的在开发一个 REST API 的时候会常常用 HTTPie,由于它能让我便捷地查询 API,而且返回结构清晰、易读的数据信息。毫无疑问,这款工具免去了不少烦恼和沮丧。幸运的是,应用不只停留在 REST APIs. 通常来讲,全部经过 HTTP 的交互,不管他是输入或者输出数据,都能以一种易于阅读的方式完成。


我建议你浏览一下他们的网站,花10秒的时间安装接着运行一下。尝试去获取任何网站的源码,相信你会对输出结果感到惊讶。

小提示:将 HTTPie 的优点同 jq for command line JSON manipulation 或 pup for HTML parsing 结合起来,你将势不可挡!


1. Icdiff


在 ZeroTurnaround 我有幸接触到了 Mercurial,一个很是简单易用的集群服务器。在 OSX 上,出色的 GUI 项目 SourceTree 使得 Mercurial 即便在处理复杂问题上,也如清风拂面。不幸的是我总喜欢将 程序、标签、窗口 的数量控制在最少。因为总开着一个终端窗口,使用 CLI 就变得颇有必要。


除了设置中的一个缺陷其余一切都很完美。这是一个让我没法拒绝的功能:将区别并排显示。谈起 icdiff,这是在天天所用的工具中,我最欣赏的。咱们来看一张截图:

icdiff 自己是一个智能 Python 脚本,智能检测哪些地方作了修改、添加和删除。出色的色彩高亮使得用户很容易区分这三种不一样的修改。


要使用icdiff,要完成如下几个步骤:


再次经过 homebrew 安装:brew install icdiff


从上述网站手动抓取 Python 脚本并把它添加到你的环境变量中


当你把 icdiff 和诸如 Mercurial 的集群服务器结合到一块儿的时候,你会发现效果超棒。要想充分的结合,你须要再完成两个配置步骤,already documented here在这里有详细说明。该说明的要点一是,要添加一个封装脚本以确保 icdiff 的 one-by-one file diff 能够在整个目录上运行。其次你须要配置你的集群服务器来真正使用 icdiff。上面的连接介绍了针对 Mercurial 的配置细节,将它移植到 Git 上应该也不太难。


2. Pandoc


按照“躬行己说”的精神,我开始经过 CLI 来完成整篇博文。大部分工做是在 OSC 的 iTerm2中借助 MacVim 完成的。全部的内容都是按照 MarkDown 的标准语法来书写和统一格式的。这里惟一的麻烦就是有时你很难准确猜到最终呈现的效果。


这就引出了下一个工具:Pandoc。它是如此强大和万能,能够说它是 CPL 下的一个奇迹。咱们来看看如何使用它。


pandoc -f markdown -t html blogpost.md > blogpost.html


随便想一种标记格式。十有八九,Pandoc 能够将它从一种格式转换为其它任意一种。好比,我正在用 Vim 写这篇博文,而且用 Pandoc 将它从 MarkDown 转换为 HTML,也就是最终看到的结果。它很棒,只须要一个终端和浏览器,比起其余须要绑定到特定在线平台,它彻底独立和离线。


不要把本身限定在一些譬如 MarkDown 的简单格式,尝试一些 docx 或 LaTeX 文件,以 PDF 或 epub 格式导出,尝试让它处理和格式化你的引文。总之它充满无限可能。


再次使用 brew install pandocdoes 这一技巧。我说起过我很是喜欢 Homebrew 吗?或许它应该加入个人工具榜单!无论怎样,你已经领会了它的要义。


3. Moreutils


接下来这个工具其实是一个一系列好用工具的集合,它非 coreutils:Moreutils。在 moreutils 下,你能够获得任何你能想到的发行版。OSX 用户能够像我在文章中这样安装它,获得这一系列的好处。


brew install moreutils


下面是简短描述所包含程序的列表:


  • chronic:悄悄执行一个命令,只要它不挂掉

  • combine:经过布尔值计算来合并两个不一样文件中的行。

  • ifdata:无需解析 ifconfig 输出就能得到网络接口信息

  • ifne:只要标准输入非空就执行一个程序

  • isutf8:检查一个文件或是标准输入是不是 utf-8 格式

  • lckdo:执行一个带锁的程序

  • mispipe:pipe 两个命令,返回前一个的退出状态

  • parallel:一次执行多个任务

  • pee:将标准输入信息输出到管道中

  • sponge:获取标准输入信息写到一个文件中

  • ts:给标准输入打上时间戳

  • vidir:在你的文本编辑器中编辑一个目录

  • vipe:将文本编辑器加到管道中

  • zrun:自动解压命令参数


维护者会暗示本身 sponge 或许是最有用的工具,由于你能够轻松地将标准输入写到一个文件中。不过,也不难发现其余诸如 chronic,parallel,以及 pee等命令的优点。


我我的最喜欢的毫无疑问是 vipe,这也是把这个集合加入榜单的重要缘由。

因为数据经过管道从一个命令到另外一个命令,因此你能够逐字拦截。即便在你的脚本里这算不上个有用的工具,但在运行交互式命令的时候,它的确颇有帮助。这里我没有给出个有用的例子,而是给了你一个修改过的 fortune。



4. Babun


现在 Windows 系统自带两个不一样的 shell:经典命令行和 PowerShell。让咱们无视他们,来看看 Windows 下真正的命令行工具:Babun!该项目之因此让人叹为观止,是由于它将 *NIX 命令行的全部优势以一种预配置的方式带到Windows 中,一点也不拖泥带水。


并且,它默认的 shell是我最爱的 ZSH,固然它也能很容易的切换到 Bash,假若那是你的菜的话。在 ZSH 下,打包了很受欢迎的 oh-my-zsh framework,无需任何配置,它就结合了 ZSH 的全部优势。这归功于一些很是明智的预设以及一个使人印象深入的插件系统。


下载默认的 Babun,其中包含比任何一位理智的开发者所须要的多得多的应用,所以解压后它有 728 MB。做为回馈,你将得到好比 Vim 等必备的预装软件!



深刻研究你会发现,Babun 基本上就是个对 Cygwin 的精美封装。若是你已经安装了 Cygwin 你能够无缝地复用那一个。不然它将把本身的 Cygwin 设为默认,并提供给你访问接口。


更多的兴趣点在于 Babun 提供本身的包管理器,再次包装了 Cygwin 的,以及同时面向本身和 oh-my-zsh 的更新机制。最棒的在于它不要求实际的安装,也不须要一般的管理员权限。这对于在一台锁定的电脑上工做的人来说再好不过。





相关文章
相关标签/搜索