Python (第三方程序)执行系统命令的时候, 能找到系统命令执行的历史记录吗? (系统环境: Windows/ Linux /MacOS )

2020-02-24 14:05:37 +08:00
 wzw

例如: Python 在 Windows 中以下代码

import os

os.system("echo Hello from the other side!")

import subprocess

list_files = subprocess.run(["ls", "-l"])
print("The exit code was: %d" % list_files.returncode)

import subprocess

list_dir = subprocess.Popen(["ls", "-l"])
list_dir.wait()
956 次点击
所在节点    问与答
8 条回复
Buges
2020-02-24 14:10:32 +08:00
那个记录是 shell 程序做的。你自己的程序执行的命令相当于从自己的 shell 执行。所以如果你的程序没有实现记录功能那就没有。
wzw
2020-02-24 14:24:54 +08:00
@Buges #1 我是想着 系统记录会不会有这个记录.
ysc3839
2020-02-24 15:30:02 +08:00
我感觉这是
ysc3839
2020-02-24 15:31:06 +08:00
我感觉这是个 X-Y Problem ( https://coolshell.cn/articles/10804.html ),建议你说一下想实现什么功能。
wzw
2020-02-24 15:37:15 +08:00
@ysc3839 #4 我的问题很清楚吧, 就是想知道 这样的调用系统命令,是否会有历史记录.
Qzier
2020-02-24 15:56:31 +08:00
那是 bash 的功能,而且只有用控制台才有历史记录。
monsterxx03
2020-02-24 16:05:48 +08:00
默认没有的, 一些工具通过覆盖 LD_PRELOAD 来劫持 execv 等 syscall, 间接得实现记录这个功能, 比如 https://github.com/a2o/snoopy
wzw
2020-02-24 16:29:17 +08:00
@monsterxx03 #5 看来找了一下 windows 没有类似工具

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX