可以事半功倍的命令行小技巧

新浪微博 QQ空间

看到一篇介绍各种强大的命令行技巧的文章(链接),感觉写得非常不错。首先是被类似PPT效果的网页风格吸引住了,用鼠标滚轮翻页非常之流畅。不禁看了下代码,只用了几行代码就实现了,惊叹作者想象力之丰富。文章里提到的history命令的各种妙用也让人叹为观止,不过感觉大多数命令记忆起来相当繁琐,也许是我用得太少,因此觉得复杂。这里我也把自己常用的几个命令,结合从上述文章中学到的做一个总结。

1、有趣的history命令字统计游戏

如下一行脚本即可统计历史上使用的命令行的次数,并排出前十名,打印到屏幕:

history | awk '{CMD[$2]++;count++;}END { for (a in CMD)\
print CMD[a] " " CMD[a]/count*100 "% " a;}'
| grep -v "./" \
| column -c3 -s " " -t | sort -nr | nl | head -n10

我的系统上面打印的结果是:

root@u1:~# history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] \
> " " CMD[a]/count*100 "% " a;}' | grep -v "./" | \
> column \-c3 -s " " -t | sort -nr | nl | head -n10
1 138 13.7862% ps
2 102 10.1898% l
3 101 10.0899% cd
4 78 7.79221% curl
5 69 6.89311% keystone
6 66 6.59341% vi
7 34 3.3966% sh
8 31 3.0969% swift
9 26 2.5974% apt-get
10 24 2.3976% history
root@u1:~#

看来最近玩OpenStack有点多啦。另外还有没事喜欢看进程状态的习惯 : )

2、cd命令的几个小技巧

cd -          #回到上次所在目录,这个技巧我原来还真是不知道,感觉还是比较有用,省略了很多输入。
cd #回到主目录
cd ~ #同样也是回到主目录

当进入到一个很深的目录后,一不小心从该目录跳出了,该怎么办呢,别急,这时有cd – 命令可以快速跳回上一次cd命令执行之前的目录中,通常也在脚本中用该命令实现:进入某一目录,执行脚本,然后使用cd – 回到执行命令之前的目录下。

3、查看进程树

ps aufx

aufx可以查看进程的派生过程,可以看到每一个进程的父进程以及更上一代的父进程。对于理解程序的调用流程有帮助。

4、搜索history

通常复杂的命令行,我们只能记住其中的某个特定的命令字,将整个命令行全部再敲击一边,非常费时,history | grep “关键字” 不失为一个好办法,但是这样当然没有快捷键来得快和直观。像上面我的统计结果中,history命令的使用占24次,说明经常到历史命令中去找之前使用过的命令行。

使用 Ctrl + r 逆向搜索历史命令,敲入少量关键字,即可快速定位到所需要的命令行。另外结合 Ctrl + p 和Ctrl + n还可以向前和向后找下一条命令。

文中作者还提到了不少字符串构造、查找和替换的例子,特殊的时候应该非常好用。掌握了正则表达式,这些例子用起来应该会非常得心应手。

新浪微博 QQ空间

| 1 分2 分3 分4 分5 分 (4.60- 10票) Loading ... Loading ... | 这篇文章归档在:实用脚本 | 标签: , , . | 永久链接:链接 | 评论(0) |

评论

邮箱地址不会被泄露, 标记为 * 的项目必填。

8 - 2 = *



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <img alt="" src="" class=""> <pre class=""> <q cite=""> <s> <strike> <strong>

返回顶部