复习——查看历史命令前十
来源:互联网 发布:曼哈顿软件 招聘 编辑:程序博客网 时间:2024/06/06 19:41
呃,其实这是一个很久很古老的话题了。之所以拿来写篇博客,是为了让自己一定一定要记住cut/sort/uniq/tr/sed
的用法,别再忘了……(拜托我自己,记性好点儿吧……)
首先,查看自己所有用过的命令历史记录,发现只有这一点儿……
lgl@pArch ~ $ cat .bash_history pacman -S zshsudo pacman -S zshexit cd /home/lgl clearlsexit
恩,我是一开始就装了zsh,后来就不用bash了……所以我应该查看.zsh_history来着。
: 1442485127:0;ls: 1442485132:0;exit: 1442485144:0;sudo pacman -Syu: 1442485151:0;exit: 1442485188:0;sudo pacman -S texlive-lang: 1442485439:0;pacman -Ss font: 1442485537:0;pacman -S wqy-microhei: 1442485544:0;sudo pacman -S wqy-microhei: 1442485562:0;sudo pacman -Ss ttf......
对,就是它,但是在命令前面怎么有一堆奇奇葩葩的东西……还是先搞掉吧。
最开始,我想使用cut把命令那一块儿切出来,但是cut的delimiter不支持多种,没办法,先用sed把所有的冒号和分号都换成空格:
lgl@pArch ~ $ sed 's/[:;]/ /g' .zsh_history | head 1442485127 0 ls 1442485132 0 exit 1442485144 0 sudo pacman -Syu 1442485151 0 exit 1442485188 0 sudo pacman -S texlive-lang 1442485439 0 pacman -Ss font 1442485537 0 pacman -S wqy-microhei 1442485544 0 sudo pacman -S wqy-microhei 1442485562 0 sudo pacman -Ss ttf 1442485584 0 sudo pacman -S ttf-arphic-ukai
没啥问题,然后再用cut把命令那一块儿切出来:
lgl@pArch ~ $ sed 's/[:;]/ /g' .zsh_history | cut -d ' ' -f 5 | headlsexitsudoexitsudopacmanpacmansudosudosudo
也没问题,再用uniq -c
(-c count)去重并统计频率,由于uniq只能去重连续的行,所以要先用sort -d
(-d dictionary)按照字典序把整体排一下,相同行就变成连续的了,再去重并统计,最后再把统计后的内容按照频率从大到小(默认是从小到大,所以从大到小排列就是逆序排列了)排序sort -nr
(-n numeric -r reverse),最后用head命令输出前十个就行了:
lgl@pArch ~ $ sed 's/[:;]/ /g' .zsh_history | cut -d ' ' -f 5 | sort -d | uniq -c | sort -nr | head 1093 sudo 606 ls 517 git 506 exit 463 cd 336 pacman 308 cat 202 shutdown 186 gpg 149 yaourt
用的最多的是sudo
,估计有很大一部分是sudo pacman
,其实本来是用pacman指令啦,不过无所谓了。
另外,在用完sed将冒号和分号全都替换成空格之后,会出现连续的空格,这样再用cut切命令名的时候将会不方便,所以可以用tr -s ' '
(-s, –squeeze-repeats压榨重复)将连续的空格“压榨”成一个空格:
lgl@pArch ~ $ sed 's/[:;]/ /g' .zsh_history | tr -s ' ' | head 1442485127 0 ls 1442485132 0 exit 1442485144 0 sudo pacman -Syu 1442485151 0 exit 1442485188 0 sudo pacman -S texlive-lang 1442485439 0 pacman -Ss font 1442485537 0 pacman -S wqy-microhei 1442485544 0 sudo pacman -S wqy-microhei 1442485562 0 sudo pacman -Ss ttf 1442485584 0 sudo pacman -S ttf-arphic-ukai
这样的话不会再有连续的空格了,方便多了。当然,如果想数起来更方便,不如把开头的空格也去掉,使用sed 's/^ //g'
:
lgl@pArch ~ $ sed 's/[:;]/ /g' .zsh_history | tr -s ' ' | sed 's/^ //g' | head1442485127 0 ls1442485132 0 exit1442485144 0 sudo pacman -Syu1442485151 0 exit1442485188 0 sudo pacman -S texlive-lang1442485439 0 pacman -Ss font1442485537 0 pacman -S wqy-microhei1442485544 0 sudo pacman -S wqy-microhei1442485562 0 sudo pacman -Ss ttf1442485584 0 sudo pacman -S ttf-arphic-ukai
嗯,命令所在的块儿就是第三块儿,一目了然!
最后,希望我记性好点儿吧……
ps:的确,很多用sudo的场合其实是在使用其他命令,而不是为了使用sudo命令本身,为此我们可以把sudo删掉之后再统计:
lgl@pArch ~ $ cat .zsh_history | sed 's/[;:]/ /g; s/sudo/ /g' | tr -s ' ' | sed 's/^ //g' | cut -d ' ' -f 3 | sort -d | uniq -c | sort -nr | head 984 pacman 615 ls 524 exit 517 git 466 cd 330 cat 234 shutdown 186 gpg 164 cp 159 yaourt
于是pacman果然就是使用频率第一高的命令了^_^
- 复习——查看历史命令前十
- web框架学习前复习——mysql命令
- 查看LINUX命令历史
- 【history】查看命令历史
- git查看历史命令
- win7 命令历史查看
- Linux查看历史命令执行时间
- Linux查看历史命令 history
- Linux查看历史命令 history
- Linux查看历史命令 history
- linux查看历史命令history
- linux查看历史命令history
- linux查看历史命令history
- git学习——查看提交历史
- c++ 多线程——c++复习(十)
- History(查看历史命令)的用法
- Linux 查看Shell历史命令方法
- cmd-查看历史命令 重定向
- 分析Linux内核创建一个新进程的过程
- FlatButton
- 8. String to Integer (atop)【E】【67】【leetcode】
- keyWindow
- 自定义函数分块实现功能
- 复习——查看历史命令前十
- UVA 10600 ACM Contest and Blackout(最小生成树)
- iOS UIImage 转NSString
- Tsinsen A1102 字符串编辑
- HDU1062 Text Reverse
- 补间动画(Tween Animation)
- 乘法口诀表,你是咋想的?
- HTML表格使用
- java设计模式之门面模式