学校校园网在linux下是用Inode 802.1X Client for Linux 认证客户端 使用命令 linux1x -d 认证上网,经常掉线,每次重新登录时会提示Error: an instance of this program has been run already!
本来可以使用linux1x -k 来取消登录,不过也会不灵,不如直接杀掉进程方便。所以原来总会重复的使用 ps aux|grep 'linux1x' 来查看进程号,再用KILL命令。这样才麻烦,本来想写个SHELL,后来看了IPYTHON,果然是个神器,直接建个宏搞定,简单易懂。
In [1]: ps=!ps aux
In [2]: pid=ps.grep('linux1x').fields(1)[0]
In [3]: print 'pid is',pid
pid is 6669
In [4]: !sudo kill ${pid}
In [5]: print 'kill %s success!'
kill %s success!
In [6]: %macro killlinux1x 1-5
Macro `killlinux1x` created. To execute, type its name (without quotes).
Macro contents:
ps = _ip.magic("sc -l =ps aux")
pid=ps.grep('linux1x').fields(1)[0]
print 'pid is',pid
_ip.system("sudo kill ${pid} ")
print 'kill %s success!'
使用 %store命令把宏保存下来,以下次启动IPYTHON 还能调用killlinux1x
In [7]: %store killlinux1x
Stored 'killlinux1x' (Macro)
调用killlinux1x
In [8]: killlinux1x
------> killlinux1x()
pid is 8303
kill %s success!
ipython 神器!!!