官方文档有句话"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. uvm的sequence

    1,每个sequence都有一个body任务.当一个sequence启动后,会自动执行sequence的body任务,所以在sequence的class中,一定要有一个名为body的task. 此外, ...

  2. CSS3自定义发光radiobox单选框

    在线演示 本地下载

  3. Python 类的方法,下划线有什么不同?

    问: 1,以一个下划线开头的命名 ,如_getFile2,以两个下划线开头的命名 ,如__filename3,以两个下划线开头和结尾的命名,如 __init__()4,其它这些命名有什么不同吗? 答:

  4. 微信app支付java后台流程、原理分析及nei网穿透

    一.流程步骤 本实例是基于springmvc框架编写 1.执行流程           当手机端app(就是你公司开发的app)在支付页面时,调起服务端(后台第1个创建订单接口)接口,后台把需要调起微 ...

  5. NumPy数学算数函数

    NumPy - 算数函数 很容易理解的是,NumPy 包含大量的各种数学运算功能. NumPy 提供标准的三角函数,算术运算的函数,复数处理函数等. 三角函数 NumPy 拥有标准的三角函数,它为弧度 ...

  6. PHP的可变变量名

    有时候可变的变量名会给编程带来很大的方便.也就是说变量名可以被动态的命名和使用.通常变量通过下面这样的语句来命名 : 1 2 3 <!--?php $a = 'hello'; ?--> 可 ...

  7. 带你彻底明白 Android Studio 打包混淆

    前言 在使用Android Studio混淆打包时,该IDE自身集成了Java语言的ProGuard作为压缩,优化和混淆工具,配合Gradle构建工具使用很简单.只需要在工程应用目录的gradle文件 ...

  8. js 格式化时间日期函数小结2

    方法一: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符,  // 年(y)可以用  ...

  9. 深入理解Lambda

    概述 Lambda是一个表达式,也可以说它是一个匿名函数.然而在使用它或是阅读Lambda代码的时候,却显得并不那么容易.因为它匿名,因为它删减了一些必要的说明信息(比如方法名).下面就来说说Lamb ...

  10. Hash算法-CityHash算法

    cityhash系列字符串散列算法是由著名的搜索引擎公司Google 发布的 (http://www.cityhash.org.uk/). Google发布的有两种算法:cityhash64 与 ci ...