使用 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') 这样的方法去过滤结果集。