GNU屏幕库:创建/关闭/列表/日志会话,插入命令…

screenutils的Python项目详细描述


警告:此项目不再维护,因为它的维护者不再使用它 (然后切换到tmux)。如果你贡献一点,你可以收回这个项目。

屏幕实用程序

screenutils是一组有助于处理gnu屏幕窗口的类。

它需要安装gnu screen二进制文件(命名为screen并在您的路径中)才能工作。

请随意报告您所做的任何修改,整个代码源是 在gplv2的条款下可用,但我考虑使用一个更许可的许可证(wtfpl)。

示例用法

python控制台中的示例:

>>> from screenutils import list_screens, Screen
>>> list_screens()
[]
>>> s = Screen("session1",True)
>>> # funky prompts could reduce log visibility. Use sh or bash for best results
>>> s.send_commands('bash')
>>> s.enable_logs()
>>> s.send_commands("df")
>>> print next(s.logs)
df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda6             20161172   8084052  11052980  43% /
none                   1505916       304   1505612   1% /dev
none                   1512676       936   1511740   1% /dev/shm
none                   1512676       380   1512296   1% /var/run
none                   1512676         0   1512676   0% /var/lock
none                   1512676         0   1512676   0% /lib/init/rw
none                  20161172   8084052  11052980  43% /var/lib/ureadahead/debugfs
/dev/sda7            403567768 196284216 186783420  52% /home
popi@popi-laptop:~/Dev/github/screenutils$
>>> s.disable_logs()
>>> s = None
>>> s = Screen("session1")
>>> s.exists
True
>>> s2 = Screen("session2")
>>> s2.exists
False
>>> s2.initialize()
>>> s2.exists
True
>>> list_screens()
[<Screen 'session2'>, <Screen 'session1'>]
>>>

安装

您可以通过执行以下操作从github安装screenutils:

$ pip install git+http://github.com/Christophe31/screenutils.git

或者只使用pypi上发布的包,例如pip:

$ pip install screenutils

功能

  • 屏幕列表
  • 屏幕会话创建
  • 屏幕会话关闭
  • 屏幕代码插入
  • 屏幕监视/记录
  • 与Unix用户共享屏幕会话(见下文)

核心文档

屏幕类

  • Screen(name, initialize=False)创建新屏幕。
    • name(必需):与屏幕关联的名称。
    • {TT3}$:如果为真,则创建屏幕会话(如果不存在)。
  • screen.id(property)屏幕的id作为字符串。
  • screen.status(属性)屏幕的状态为字符串。
  • {TT6}$(属性):如果屏幕存在(已初始化)
    • 注:.id.status.exists均基于screen -ls
    • 的输出
    如果不存在,则初始化一个屏幕。相当于运行screen -UR screen_name
  • screen.enable_logs()打开屏幕登录。日志文件的名称自动设置为Screen对象的名称。
  • screen.logs一个生成器,其作用类似于日志文件上的tailF
  • screen.disable_logs()关闭登录。
  • screen.kill()退出屏幕。相当于运行screen -x screen_name -X quit
  • screen.detach()从屏幕上分离。
  • screen.send_commands(*commands)向屏幕发送bash命令。
    • *commands要运行的命令(作为字符串)。
  • screen.add_user_access(unix_user_name)允许其他用户访问屏幕。
    • unix_user_name(必需):要添加的用户的Unix名称。
    • *注意:要允许此功能,您需要更改某些unix权限:
      • sudo chmod +s /usr/bin/screen
      • sudo chmod 755 /var/run/screen

函数

  • list_screens()列表屏幕。返回Screen实例的列表。

异常

  • ScreenNotFoundError:找不到屏幕时引发。

已知问题

这可能无法与bpython一起正常工作。

路线图

  • 多窗口屏幕支持

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
数组Java For Loop没有输出(我认为)它应该如何输出   java Maven可以在一个模块中打包两个jar,使用相同的文件名但不同的图表集吗?   java OData读取单个实体最佳实践   java为什么我的代码在以下条件下返回false?   java QueryDsl投影元素集合   在为Java Swing元素实现ActionListener时,如何解决静态引用错误?   libGDX设置允许我使用java8,它在Android中崩溃   如何将日期从shell脚本传递到java即时数据类型   java如何向JList添加复选框和图像   java如何编写这个Listview?   java Eclipse每项目构建设置   java如何将spring引导应用程序指向外部jar的logback。xml   java更改EditText的下划线/样式。。。。。不是链接,而是水平滚动文本   java JPQL:使用复合键建模具有多个关系的查询实体   javascript如何获取Java中的最后32个字节   sql检查Java Derby中是否存在架构   java如何从视图中获取MVC Spring控制器中jstl select的所有项   java gson在需要对象时遇到空数组问题