Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python运行快捷键?_Python_Linux_Shell_Gnu Screen_Screenrc - Fatal编程技术网

如何使用Python运行快捷键?

如何使用Python运行快捷键?,python,linux,shell,gnu-screen,screenrc,Python,Linux,Shell,Gnu Screen,Screenrc,我知道,我们可以使用子进程执行Linux Shell命令 import subprocess subprocess.call(["ls", "-l"]) 如果我想在终端上运行CTRL+C操作,该怎么办 我的用例是: 1> Open a linux screen 2> Run a command over first window 3> Then create a window in the same screen 4> Run anoth

我知道,我们可以使用子进程执行Linux Shell命令

  import subprocess
  subprocess.call(["ls", "-l"])
如果我想在终端上运行CTRL+C操作,该怎么办

我的用例是:

   1> Open a linux screen
   2> Run a command over first window
   3> Then create a window in the same screen
   4> Run another command over the second window

很明显,我想自动化我日常工作的一部分。

啊!为你找到一个解决方案

如果您使用ubuntu或backtrack(基于debian的linux风格) 然后你可以安装这个:
apt get install xautomation

对于喜欢用英语编码的人来说,用这个调用击键稍微容易一些,但稍微复杂一些:

from subprocess import Popen, PIPE

control_f4_sequence = '''keydown Control_L
key F4
keyup Control_L
'''

shift_a_sequence = '''keydown Shift_L
key A
keyup Shift_L
'''

def keypress(sequence):
    p = Popen(['xte'], stdin=PIPE)
    p.communicate(input=sequence)

keypress(shift_a_sequence)
keypress(control_f4_sequence)

我不知道这是否可以通过shell脚本实现,您最好在python中找到可以用来调用击键的模块,然后调用值“^c”,其中^=CTRL,%=ALT,我已经很久没有这样做了,但是其他特殊键也有特殊字符,您可以在python中查看和使用。查找pid是另一回事,但无论如何,您需要一种方法来识别要关闭的命令。这似乎是可行的。特别是为了实现我的用例,创建屏幕并向其传递命令。例如,我们想模仿在xc会话中按Ctrl+C,我们可以运行screen-xXC-xeval“stuff\\003”。键入一个单词,然后按enter键,屏幕将显示-X-S xc eval“stuff Hello\\012”。这在自动化我的任务方面起到了很好的作用。[链接]()是的,我和我的大学伙伴让人们非常害怕只会做随机事情的调度脚本,人们会在公共计算机实验室继续尖叫,“有人入侵了这台计算机!”lmfu