Mac/Linux 命令学习
干嘛要学命令
切换到mac下工作有一段时间了,难免要在终端中做一下操作,目前掌握的一些比较简单的命令行有时已经难以驾驭一些比较复杂的操作了。有必要系统得过一遍主要的一些命令。
除了装逼意外,命令行还在有很多好处:
- 打字的速度和准确性远远高于鼠标,频繁的切换鼠标和键盘是一件挺麻烦的事情。
- 命令行可以写成脚本自动化一些操作,懒人的福音。
- 在一些服务器的环境下只能使用命令行。
如何学命令
Learning by doing 是最好的方式,特别是对这种实用性的东西,不动动手是绝对不行的。我觉得学习命令行比较好的方式是:
- 通读一遍man,知道一个命令能够做的事情,即使记不住也没关系,至少知道可以做,等需要的时候再看具体的细节也不迟。终端下的man不方便阅读的话可以通过Dash等工具来阅读。
- 对于平时可能用到的,自己动手敲一遍看看效果。
- 设想几个可能比较常用的场景,然后利用命令来完成这些任务。以后碰到这几个场景的时候可以查阅回忆。
第三点其实是借鉴了tldr(too long don’t read)具,可以理解成是一个简化版的man。
Mac 10.3+ 系统下默认的shell是bash[1],大部分命令的效果和linux下面相同,某一些命令的具体参数和行为有所差异。
小技巧
每日一贴
目录操作
- ls - 2016年5月24号
- cat,pushd,popd - 2016年6月2号
文件操作
- cp - 2016年5月25号
- cat - 2016年5月30号
- chflags - 2016年6月2号
- ln
- rm,mv,mkdir - 2016年6月3号
- find
文本操作/过滤器
- sort
- uniq
- grep - 2016年6月6号
- fmt
- pr
- head
- tail
- tr
- sed
- awk
调试
- dtruss
其他
- xargs
相关概念
- 软链接 vs 硬链接
- File flag
- 标准输入输出重定向(Redirection)
- 通配符