简介:是否可以将iPython设置为普通用户(cd,ls,mkdir,rm等)的基本dos/bash命令行终端,然后公开一些额外的专有命令?
深度:我在一家视频游戏公司工作,用户从未在生产管道中体验过"好"的CLI.所以作为回应,我已经工作了一段时间在python中使用cmd.py编写CLI,重新创建常用的dos命令,然后使用我自己的自定义命令扩充它们以执行各种操作,例如:快速跳过预定义的生产文件夹,简化的perforce管理命令,使用递归的ant-glob模式查找/导入文件到我们的创作工具......等等......
在这个过程中,我偶然发现了ipython.我对它不是很熟悉,但我已经感觉到它应该是我应该使用的,因为它可以免费提供我想要的许多东西.它完美地处理了ansi的颜色.所有shell命令都可以通过"!"获得,可以免费使用"|,>,<"和所有内置的shell函数,其好处还在继续......
需要注意的是,我的目标受众很容易受到CLI的威胁......所以当他们输入"more textfile.txt"作为输入时,他们会期望打印文件内容的默认dos行为,而不是:
In [42]: more textfile.txt File "", line 1 more file.txt ^ SyntaxError: invalid syntax
当然,"!more textfile.txt"会做他们期望的,但我不希望他们必须输入"!" 对于他们将使用的基本上95%的命令.
所以我正在寻找一种方式以一种完全简化的方式启动ipython,在我的理想(幻想或许)世界中:
所有shell命令(cd,ls/dir,mkdir,more,rm/del等等)都可以在最前面访问,而不需要任何"!"
所有python命令(import,def,class,for,print,while等等)都是不可访问的,除了从预定义的几个专有命令进行各种管道操作,可能会保留基本的算术命令?
作为奖励:一种在默认ipython和非常克制和简化的命令shell替换版本之间交替的方法,我梦想着... ex:输入"normal"将恢复所有ipython的默认行为......并输入"cli" "会回到简化版.
最后的注意事项:我正在寻找的可能是一个傻瓜的差事,我应该坚持使用我自己的笨拙的CLI脚本在命令shell中启动python.exe,并称它为一天......但我想如果我是像iPython这样做是远程可能的,Stackoverflow是我快速得到答案的地方:)