使用 IPython 作为系统 Shell
IPython 其实也可以做系统 Shell。默认加载的 Profile 就附带了很多功能。例如:
%env foo
可以查看环境变量$foo
的值;%env foo=bar
可以设定环境变量$foo
的值为bar
;%env foo=$bar
可以设定环境变量$foo
的值为另一个环境变量$bar
的值。- 运行
%rehashx
之后可以加载 Shell 里你之前设定过的 alias。 - 运行
!your-cmd
(例如!ls /tmp
) 可以运行 Shell 命令,除了!cd /path/to/dir
不能真的跳到那个目录。 - 对于调目录,如果 automagic 开了可以直接
cd /path/to/dir
,否则要输入%cd /path/to/dir
。 - 最有用的 IPython 和 Shell 交互的功能,应该算是类似
var = !ls -l
这样的用法,我们可以将 Shell 的结果赋值到 Python 的上下文里; - 相应的,
echo "$var"
又可以将 Python 上下文里的变量用到 Shell 里去。 - Python 上下文里获得的 Shell 命令的结果,更可以用诸如
var.grep('pattern')
这样的方法去过滤结果集。