IPython下执行shell命令-魔力函数(alias store rehash)- 千月的python linux 系统管理指南学习笔记(6)
来源:互联网 发布:淘宝三了个七什么意思 编辑:程序博客网 时间:2024/06/03 21:30
我们在工作中经常使用 linux 下的命令行模式,也就是 shell 。
但是 shell 有一个问题,就是必须一条一条执行命令。
输入命令,等待执行结果,继续输入命令,等待结果。好像一个循环。
而如果我们使用文本编辑器,编写脚本来执行,却又失去了交互的体验。
我们现在提到的魔力编辑,就是 IPython 在命令行和文本之间的一种折中,汲取了两者的优点。
我们使用 lsmagic来查看全部魔力编辑的内建函数,使用%magic 命令查看魔力函数的帮助
当然你要觉得 %magic 太多了。可以用%quickref来查看魔力函数的 “一句话”版本。
==================================================
我们如果希望使用 IPython 来取代 shell 。最大的问题其实是命令不互通。
很多系统命令我们要在IPython里实现的话会恨麻烦。就像之前我们做过的那样,调用 subprocess
因此我们可以通过我们接触到的第一个魔力函数 alias 来解决这个问题。
alias
到的alias 命令可以创建一个IPython的快速方式,执行系统命令。
我们看到,在 IPython 环境下直接执行 bash 命令是无效的。
但是我们通过 alias 对 bash 命令生成一个别名 nst ,再执行就可以了。
当然 bash 命令是可以加参数的。我们的例子就加了 -lptn 参数,在执行别名的时候,一起执行了。
同样我们在 alias 已经定义的别名后面加其他操作也是可以的。
好下面我们再讨论一个情况。如果我们要输入多个可变参数,能否有更方便的 alias 定义方法.
这里用到了 %s ,从例子中我们得知,我们使用 %s 定义了2个字符型的插入参数。
在使用命令的过程中,我们将参数跟在命令后面,会逐个读入。
如果参数少于定义的数量会报错
参数多余定义的数量会全部跟在后面。
store
要保存定义的别名,以方便今后使用,需要用到 %store 魔力函数
我们保存后退出
再次进入后执行 store -r 读取保存的 alias 。就可以使用了。
==================================================
在IPython下执行shell命令
我们上面说了别名方法执行 bash 的命令。下面我们再介绍一种更简单的方法。命令前加“!”
很方便,当然我们在 IPython 里不能传递个参数是不是很 low 。
和bash 一样,我们使用 $变量名 在 !下来调用变量。
可以使用变量,当然可以把结果赋值咯。
这里我们演示了把 bash 执行结果赋值给一个变量,顺便普及下中文的输出法。
直接输出变量 l 我们看到是乱码,因为我们并没有引入 chinese code ,显示不了中文。
因此我们可以使用 print str(变量名).decode('string_escape')显示中文
总结下,如果是常用的命令,就使用 alias 自己定制成自己顺手的,但是偶尔执行一次的话 !足以
rehash/rehashx
如果我们希望将全部的 shell 都创建一个 alias 可以使用到这个魔力函数。
虽然恨方便,但是确实不建议这么做,因为用 !就很好了。
这里就不做演示了。
0 0
- IPython下执行shell命令-魔力函数(alias store rehash)- 千月的python linux 系统管理指南学习笔记(6)
- IPython 下的信息收集-魔力函数(page pinfo who等)- 千月的python linux 系统管理指南学习笔记(9)
- IPython下目录的操作-魔力函数(cd pwd bookmark dhist )- 千月的python linux 系统管理指南学习笔记(7)
- Python 下字符串的提取、分割与删除- 千月的python linux 系统管理指南学习笔记(11)
- Python简介- 千月的Python linux系统管理指南学习笔记(1)
- Python 标准输入输出 StringIO urllib- 千月的python linux 系统管理指南学习笔记(16)
- Python docutils 文本到html 的转换 docutils- 千月的python linux 系统管理指南学习笔记(17)
- Python 创建、读取和写入文件以及yield关键字- 千月的python linux 系统管理指南学习笔记(14)
- Python 下字符串的连接、简单替换与unicode字符串- 千月的python linux 系统管理指南学习笔记(12)
- python 对异常的处理(try...finally...和with 方法)- 千月的python linux 系统管理指南学习笔记(15)
- Python 正则表达式的使用(re findall finditer match search)- 千月的python linux 系统管理指南学习笔记(13)
- linux学习笔记(系统管理命令)
- 【笔记】linux下alias命令
- Linux下的alias命令(为命令设置别名)
- Python.Unix和Linux系统管理指南----学习的动力
- Python subprocess,Linux下执行shell命令
- Python学习笔记(二)-- iPython notebook
- 我的openwrt学习笔记(十八):linux便捷开发命令之alias
- 【深入Java虚拟机】之二:Class类文件结构
- C++容器vector和map的正确删除方法
- HDU2098
- yii2.0文件如何在php命令行中运行
- Notification(通知栏通知)
- IPython下执行shell命令-魔力函数(alias store rehash)- 千月的python linux 系统管理指南学习笔记(6)
- 360如何用QConf搞定2W+服务器的配置管理
- 【深入Java虚拟机】之一:Java内存区域与内存溢出
- scala 初探(二)
- 集训队测试总结合集
- Wireshark入门教程
- 面试感悟---一名3年工作经验的程序员应该具备的技能(转载)
- java开发,大小写的坑,你可曾遇到?
- 使用git出现的问题