import subprocess as sup # 以下注释很多(为了自己以后不忘), 如果只是想在python中执行Linux命令, 看前5行就够了

# 3.5版本之后官方推荐使用sup.run()

sup.run("ls -l", shell=True) # 如果参数args是字符串, shell要设置为True

sup.run(("ls", "-l")) # 推荐args为一个序列, list/tuple, 元组效率高

# 命令有返回值, 字符串类型(下同)

# sup.run(), call()等方法都是基于sup.Popen类的封装, run()如果不够用可以自己定义此类

pp = Popen(("ls", "-l"), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8") # 不输出到控制台

p2 = subprocess.Popen(['grep', 'data'], stdin=pp.stdout, stdout=subprocess.PIPE) # 可以将上一个命令的输出作为下一个命令的输入, 不需要|(管道符)

try:

pp.wait(timeout=1) # 等待1秒, 如果子进程没结束会报错(pp类是新开一个进程, 并在子进程中执行bash命令)

pp.kill() # 命令执行结束杀死子进程

# 有些阻塞的命令不要设置超时时间更不要杀死, 比如: 命令行python, 但是这样的命令不用的时候, 还是要杀掉子进程

except:

pass

print(pp.stdout.read()) # 输出命令查询结果

# 着重说一下 pp.communicate() # 另一种输出结果的方式, 还可以再传入命令input参数, 也可以再设置超时时间timeout

out, err = pp.communicate() # 如果是像python这样的阻塞命令, 可以用input="print(1)", 再执行python代码

print(out) # 输出bash命令结果, 字符串类型

python 调用linux命令-Python调用Linux bash命令相关推荐

  1. Linux如何记录运行的Bash命令?

    通常情况下,我会写一个脚本来处理数据,脚本中难免会有错误的地方,如果能记录下真实运行的命令,就能检查是否有bug存在,也便于以后查阅.因此,我在网上搜索到了一些解决方法. (1) 在脚本中添加set ...

  2. 在linux环境下模拟实现简单命令解释器_git bash 竟然不支持 tree 命令

    别人家的孩子 以下故事,纯属虚构,如有雷同,绝不可能! git 是一个思维敏捷做事可靠的好管家,什么事交给他都很放心,文件再也不用担心丢失了,还得记住文件内容的更改变化. 可惜的是,git 是别人家的 ...

  3. python:通过python脚本快速执行 bash 命令

    * git镇楼:git config --global core.filemode false* 实践出真知.虽然这个脚本代码量不大,但是也是经过3次修改才达到预期效果的. * 第一次写的时候,凭逻辑 ...

  4. linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解

    <Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...

  5. linux下的chroot命令详解,linux chroot 命令用法说明

    chroot,即 change root directory (更改 root 目录).在 linux 系统中,系统默认的目录结构都是以 /,即以根 (root) 开始的.而在使用 chroot 之后 ...

  6. linux中where作用,linux基础命令——whereis命令的使用介绍

    摘要: ​linux基础命令中的whereis命令用于查找文件.​该指令会在特定目录中查找符合条件的文件.这些文件应属于原始代码.二进制文件,或是帮助文件.​该指令只能用于查找二进制文件.源代码文件和 ...

  7. python中执行linux命令(调用linux命令)_Python调用Linux bash命令

    import subprocess as sup  # 以下注释很多(为了自己以后不忘), 如果只是想在python中执行Linux命令, 看前5行就够了 # 3.5版本之后官方推荐使用sup.run ...

  8. shell错位_Linux 中纠正拼写错误的Bash 命令方法

    我知道你可以按下向上箭头来调出你运行过的命令,然后使用左/右键移动到拼写错误的单词,并更正拼写错误的单词,最后按回车键再次运行它,对吗?可是等等.还有一种更简单的方法可以纠正 GNU/Linux 中拼 ...

  9. python 调用linux命令-Python 执行Linux系统命令的N种方法

    前言: 很多时候我们会用到python去调用外部工具/命令去实现某种功能. I. os https://docs.python.org/2/library/os.html os.system 执行流程 ...

最新文章

  1. Matlab--存储和加载.mat文件形式的数据
  2. STM32学习——ROV遇到的坑
  3. 官网改版项目问题总结
  4. C# 访问mongodb数据库
  5. 【三电平SVPWM学习
  6. 软考:McCabe环路复杂度计算方法
  7. 计算机添加桌面小插件,如何在电脑桌面添加时钟,日历等小工具_在电脑桌面添加时钟,日历等小工具的方法-系统城...
  8. 如何对关键工序进行质量控制,以保证产品高可靠性
  9. svn创建分支和合并
  10. 知道华为HMS ML Kit文本识别、银行卡识别、通用卡证识别、身份证识别的区别吗?深度好文教你区分
  11. 裤子尺码对照表eur40_有了裤子尺码对照表,再也不用担心买错裤子了
  12. E文积累_20080321_drink to the dregs
  13. 电脑无规律无响应,鼠标能动但是点击无反应一直在转圈。
  14. 使用D触发器完成带有异步清零clrn和同步使能wen的8位寄存器
  15. 【UOJ 454】打雪仗(通信题)(分块)
  16. 网络统考计算机实机操作,2020年国家开放大学电大考试《计算机应用基础》网络核心课形考网考作业试题及答案(完整版)(42页)-原创力文档...
  17. JVM调优之 -Xms -Xmx -Xmn -Xss
  18. WordCounter.icu - 一个简单的在线实时字数统计工具
  19. 组件数据更新页面未更新的解决方法
  20. Epoxide-PEG-Epoxide,环氧基-聚乙二醇-环氧基,Epoxide-PEG-EP

热门文章

  1. WebForm实现增删改查
  2. 使用span标签为文字设置单独样式
  3. WebAssembly 浏览器中运行c/c++模块
  4. 简单工厂模式(详细)(举例饮料)
  5. 给图片使用border-radius 图片会变成圆的。
  6. Thread Join()的用法
  7. android 布局中 layout_gravity、gravity、orientation、layout_weight
  8. java_jdbc_spring框架查询操作简例
  9. LPSTR LPCSTR LPWSTR LPCWSTR区别
  10. 夸克浏览器有没有linux,夸克浏览器怎么样?夸克浏览器使用说明