像黑客一样使用linux命令行

3.30参加了CSDN主办的开源技术大会OSTC,会上linuxtoy的站长Toy发表了题为《像黑客一样使用linux命令行》的演讲。幻灯片

内容汇总为下文

1.使用^删掉多余部分

 

% grep fooo /var/log/auth.log     #foo错敲成了fooo
% ^o                              #用^o删掉历史命令中第一个匹配到的o
% grep foo /var/log/auth.log      #相当于执行了这条命令

 

2.使用^old^new替换输错的部分

 

% cat myflie                      #myfile错输成myflie
% ^li^il                          #用il替换li
% cat myfile                      #相当于执行了这条命令

 

 

3.使用!:gs/old/new将全部old替换成new

 

% ansible nginx -m command -a 'which nginx'
% !:gs/nginx/squid                              #将nginx替换成squid
% ansible squid -m command -a 'which squid'

 

4.使用ctrl-r逆向搜索命令

5.使用ctrl-p访问上一条命令

6.使用ctrl-n访问下一条命令

7.使用!!执行上一条命令

 

% apt-get install emacs            #忘记加sudo了
% sudo !!                          #sudo上一条命令
% sudo apt-get install emacs       #相当于执行了这条命令

 

8.使用!part执行历史中最近一次以part开头的命令

 

% ls /usr/bin                     
% !ls                              #执行了上一条命令

 

 

9.使用!?part执行历史中最近一次包含part的命令

 

% ls /usr/bin                     
% !?usr                            #执行了上一条命令

 

 

10.使用!n执行历史中第n条命令

11.使用!-n执行历史中倒数第n条命令

 

% ls /usr/bin
% !-1                              #执行了上一条命令

 

12.使用!#:n引用当前行第n个参数(命令本身的编号为0)

 

% echo hello world !#:1 !#:2       # !#:1代表了第一个参数hello !#:2代表了第二个参数world 
% echo hello world hello world     #相当于执行了这条命

 

 

13.使用!$得到上条命令的最后一个参数

14.使用!^得到上条命令的第一个参数

15.使用!:n得到上条命令的第n个参数

16.使用!:m-n得到上条命令的第m-n个参数

17.使用!:n*得到上条命令从n开始到最后的参数

18.使用!:*得到上条命令的所有参数

 

% cp foo.txt ~/such/a/long/path/to/go
% cd !$                                     #进入上条命令的目的文件夹
% cd ~/such/a/long/path/to/go               #相当于执行了这条命令

 

 

19.使用:h选取路径开头(相当于dirname)

20.使用:t选取路径结尾

21.使用:r选取文件名

22.使用:r选取扩展名

 

% ls /usr/bin/nano
% cd !$:h                                   #进入/usr/bin

 

posted @ 2014-04-01 11:38  沐恩赖特  阅读(649)  评论(0编辑  收藏  举报