如何将iPython设置为普通用户的简化命令shell

 dashan 发布于 2023-02-09 18:11

简介:是否可以将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是我快速得到答案的地方:)

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有