如何将iPython设置为普通用户的简化命令shell
摘要:
是否可以将i Python设置为普通用户(cd,ls,mkdir,rm等)的基本dos / bash命令行终端,然后公开一些额外的专有命令? 深度: 在这个过程中,我偶然发现了ipython.我对它不是很熟悉,但我已经感觉到它应该是我应该使用的,因为它可以免费提供我想要的许多东西.它完美地处理了ansi的颜色.所有shell命令都可以通过“!”获得,可以使用“|,>,<”所有内置的shell功能都是免费的,好处还在继续...... 需要注意的是,我的目标受众很容易受到CLI的威胁……所以当他们输入“more textfile.txt”作为输入时,他们会期望打印文件内容的默认dos行为,而不是: In [42]: more textfile.txt File "<ipython-input-42-e442b4ca857b>",line 1 more file.txt ^ SyntaxError: invalid syntax 当然,“!more textfile.txt”会做他们期望的,但我不希望他们必须输入“!”对于他们将使用的基本上95%的命令. 所以我正在寻找一种方式以一种完全简化的方式启动ipython,在我的理想(幻想或许)世界中: >所有shell命令(cd,ls / dir,more,rm / del等等)都可以在最前面访问,而不需要任何“!” 作为奖励:一种在默认ipython和非常克制和简化的命令shell替换版本之间交替的方法,我梦想着… ex:输入“normal”将恢复所有ipython的默认行为……并输入“cli” “会回到简化版. 最后的注意事项:我正在寻找的可能是一个傻瓜的差事,我应该坚持使用我自己的笨拙的CLI脚本在命令shell中启动python.exe,并称它为一天……但我想如果我是像iPython这样做是远程可能的,Stackoverflow是我快速得到答案的地方:) 解决方法
IPython用于接近你所要求的东西,它在0.11版本中被删除,因为缺乏使用/测试和兴趣.我认为将其恢复是可以接受的,但是我不确定它将涉及的工作量,因为我们知道架构已经发生了很大的变化.
我将强调你可能想要/不想这样做的一些原因,以及一些替代和技术要点. >你将永远无法获得IPython的完整真实shell体验 IPython本身正在工作的方式看起来存在的东西是有效的python,如果是这样的话.否则假设它是一个魔术,如果它是sens,将它转换为python语法并执行.然后回退到别名.我猜逻辑可以颠倒,但确定smth是否是有效的shell可能很困难. 您也可以挂钩自己的输入trasformer SageMath在某些地方使用它来允许自定义语法. 我不确定“交替”部分会很容易,但IPython非常灵活,输入转换器是协程库,所以应该是可实时修改的,它仍然可能需要在IPython中使用modif我想要暴露正确的API. 您可能对编写完整的IPython“内核”感兴趣(不要害怕它看起来更简单).也就是说只是获得用户输入和发回输出的部分,其余部分是免费的.如果你看一下IJulia并运行ipython console –profile = julia,你将被丢弃在julia shell中.你也可以在ruby和Haskell等地做同样的事情.其他优点是你不需要在python中编写内核,并且它可以与qtconsole,notebook emacs,vim和其他IPython前端一起使用. 我看到问题被提升了3次,我将补充说IPython是开源的,如果有人来,添加功能并帮助我们维护它,我们可以将它添加回核心. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |