官方文档有句话"allows you to call any program",并且:

helps you write shell scripts in Python by giving you the good features of Bash
第一句话助你在Python中轻松调用自己的程序,第二句则给你机会和Shell这种土豪交朋友
 
㈠ 调用系统的程序
[python]  
>>> import sh  
>>> print(sh.ls('/home/mysql'))  
cdio_bak.sql  mysql-5.5.16.tar.gz  
mm        percona-xtrabackup-2.1.4-656-Linux-i686.tar.gz  
mysql         percona-xtrabackup-2.1.4-Linux-i686  
mysql-5.5.16  startmysql.sh  
 
㈡ 调用自己的程序
[python]  
>>> import sh  
>>> r=sh.Command('/root/dd.py')  
>>> r()  
hello,DBA  
 
㈢ bake命令参数
[python]  
>>> import sh  
>>> du=sh.du.bake('-shc')  
>>> print (du('/home/mysql'))  
1.1G    /home/mysql  
1.1G    总计  
 
㈣ glob列出文件
[python]  
>>> import sh  
>>> list=sh.glob('/root/mm/*')  
>>> print list  
['/root/mm/Backup', '/root/mm/Usplash', '/root/mm/AWN', '/root/mm/Wallpapers', '/root/mm/GRUB', '/root/mm/Mozilla']  
 
㈤ 管道
[python]  
>>> print(sh.sort(sh.du(sh.glob('*'),'-shc'),'-rn'))  
712K    distribute-0.6.49.tar.gz  
672K    setuptools-1.1.5.tar.gz  
548K    get-pip.py  
 
管道是有序的,默认由内而外,但如果需要并行呢?加个_piped=True 
[python]  
>>> for line in sh.tr(sh.tail("-f", "/home/mysql/mysql/log/alert.log", _piped=True), "[:upper:]", "[:lower:]", _iter=True):  
...   print line  
...   
innodb: doublewrite buffer not found: creating new  
  
innodb: doublewrite buffer created  
  
innodb: 127 rollback segment(s) active.  
  
innodb: creating foreign key constraint system tables  
  
innodb: foreign key constraint system tables created 

Python sh库学习的更多相关文章

  1. Python sh库学习 上篇

    官方文档有句话"allows you to call any program",并且:helps you write shell scripts in Python by givi ...

  2. python requests库学习笔记(上)

    尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.pytho ...

  3. python标准库学习-SimpleHTTPServer

    这是一个专题 记录学习python标准库的笔记及心得 简单http服务 SimpleHTTPServer 使用 python -m SimpleHTTPServer 默认启动8000端口 源码: &q ...

  4. python requests库学习

    Python 第三方 http 库-Requests 学习 安装 Requests 1.通过pip安装 $ pip install requests 2.或者,下载代码后安装: $ git clone ...

  5. Python turtle库学习笔记

    1.简介 Python的turtle库的易操作,对初学者十分友好.对于初学者来说,刚学编程没多久可以写出许多有趣的可视化东西,这是对学习编程极大的鼓舞,可以树立对编程学习的信心.当然turtle本身也 ...

  6. python requests库学习笔记(下)

    1.请求异常处理 请求异常类型: 请求超时处理(timeout): 实现代码: import requestsfrom requests import exceptions        #引入exc ...

  7. python中库学习

    一.numpy NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字).在NumPy中维度(dimensions)叫做轴(axe ...

  8. Python标准库学习之zipfile模块

    ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo. ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的. ...

  9. Python PIL库学习笔记

    1.PIL简介 Python Imaging Library(缩写为PIL)(在新的版本中被称为Pillow)是Python编程语言的开源库,它增加了对打开,操作和保存许多不同图像文件格式的支持.它适 ...

随机推荐

  1. module.exports和exports得区别

    对module.exports和exports的一些理解 可能是有史以来最简单通俗易懂的有关Module.exports和exports区别的文章了. exports = module.exports ...

  2. linux比较两个文件的不同(6/21)

    cmp 命令:比较任意两个类型的文件,且吧结果输出到标准输出,默认文件相同不输出,不同的文件输出差异 必要参数 -c 显示不同的信息-l 列出所有的不同信息-s 错误信息不提示 选择参数 -i< ...

  3. 【Java】仿真qq尝试:用户注册(三)

    需求: 实现用户名和密码存入数据库. 思路: 1.连接数据表用静态加载块 2.crud写成4个静态方法 具体流程: from:https://www.tutorialspoint.com/jdbc/j ...

  4. Linux系统下强大的lsof命令使用宝典

    lsof命令简介: lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件 ...

  5. java获取当前文件路径 [转]

    1.如何获得当前文件路径 常用: 字符串类型:System.getProperty("user.dir"); 综合: package com.zcjl.test.base; imp ...

  6. idea通过springboot初始化器新建项目

    1.通过初始化器新建项目,勾选后 对应生成的pom文件 以及生成的包路径 2.生成项目后点击稍后弹出的自动自动导入maven工程的改变,当pom中有依赖改变时会自动刷新导入依赖 3.删除自动生成项目的 ...

  7. hadoop入门小知识点

    注意各个主机之间的通信 文件的复制 scp指令 scp /etc/profile acm03:/etc 所有历史版本: archive.apache.org hdfs://acm01:9000     ...

  8. Aizu 2677 Breadth-First Search by Foxpower LCA+bfs

    A - Breadth-First Search by Foxpower Problem Statement Fox Ciel went to JAG Kingdom by bicycle, but ...

  9. 为Visual Studio添加快捷工具

    添加额外工具: Tools -> External Tools... 1. 添加Git Console Title: Git Console Command: C:\Program Files\ ...

  10. eclipse配置tomcat运行项目访问不加项目名