命令行是一个强大的工具,而我们大多数却都不会用,可以说没有命令行的世界等于你失去了一多半的乐趣和技能。
本文虫虫和大家一起来聊聊命令行,并教大家一起来学习命令,不管你是运维、开发、测试、DBA,甚至是项目经理、PM都能通过命令行获得很大的裨益。当然我们主要是以开发了主要受众来举例子说明。
日常编码时,你是选择集成开发环境IDE呢,还是文本编辑器(Vim、Emacs、sublime)+插件+命令行呢?
现代IDE(VS、Eclipse、IDEA等)可以一个界面提供给我们所有必需的开发工具:代码版本,语法高亮,自动格式化,自动补全,版本控制,编译,调试、可视化断点、还有运行时环境!一键编译、一键运行,那么,为什么选择简单的文本编辑器呢?
对这个问题,有很多问题、当然可能有一个原因是IDE太慢了!就个人而言,主要是是对于简单的项目和脚本,使用轻量化的文本编辑以及一些插件,一方面可以节省我编译的时间,而且我更喜欢欢命令行的各个工具栈套件GCC+GDB等强大的编译调试套件,更加适合我的胃口。
我更喜欢学习掌握每个工具,比如GDB强大的各种特性和命令,可以让你更加编辑的操作,用键盘而不是点鼠标,还有就是让你可以更深入到程序和开发的精髓之处。。
听起来有点泛泛而谈,但在IDE中,我们时常会受到约束并受限于固定的功能项,而在命令行中,有许多工具,脚本,框架可以在借鉴,支持多环境,许多语言以及Linx下强大的Shell流水栈、Perlonelines等可以把许多最高效最优秀的工具连接起来,最主要你随时可以修改完善他们,甚至自己造个更趁手的工具。
当然,如果你是在Windows使用命令行,虽然现在Powershell已经增强改善了很多很多,以及有WSL的Linux子系统,但是由于其终端模拟器的限制,你可能还是可能会有不爽之处,所以建议你来使用Linux,Mac也是个很棒的选择。
为啥,我只举两个个例子Docker,时下最火的容器技术,以及Git服务器Gitlab都是只支持Linux的,你还想多学点技术,Linux是不好躲的。
Fishshell
Fishshell(或fish)是一个面向用户交互的shell,它是日常和交互式使用的良好候选者。我们很多人可能都用的是Bash,但是说实话Bash更适合做脚本而Fish则更加人性化,更适合做交互操作。
Fishshell包括许多命令和工具的原生语法高亮,也原生支持自动完成。
Zsh是这种用例的另一种可靠替代方案。
以下是使用git自动完成的示例:
通过敲打git,空格,在输入tab,fish会列出git命令列表(checkout,