官方文档有句话"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. vue-scroller的使用

    一 安装 使用npm 安装 npm install vue-scroller -S 二 引入 https://www.jianshu.com/p/a39f5276ff0b https://www.np ...

  2. 在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题

    A服务器(client)向B服务(server)SCP,SSH. A服务器:ssh-keygen -t rsa -C "kangzj" 一直回车. cd .ssh vim id_r ...

  3. 【bzoj5452】[Hnoi2016]大数(莫队)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4542 首先若p=2,5则这题就是道傻逼题,前缀和搞一下没了.如果p为其他质数,那么可以 ...

  4. spring半自动代理

    1.被代理类接口Person.java package com.xiaostudy; /** * @desc 被代理类接口 * * @author xiaostudy * */ public inte ...

  5. HTML常用标签——思维导图

    如图 思维导图图片链接 http://www.edrawsoft.cn/viewer/public/s/38d99149304484

  6. rabbitmq High Availability

    每个rabbitmq node运行RabbitMQ application,共享用户virtual hosts, queues, exchanges, etc. 一个nodes组称之为一个集群. 所有 ...

  7. Ajax基础(三)--eval的使用

    eval的使用: 1.定义和用法 计算某个字符串,并执行其中的js代码 eval(string) string必须,含有表达式或执行语句 string有返回值的话 2.实例 2.1 字符串上该用eva ...

  8. mysql数据库(三):查询的其他用法

    一. 查询—IN的用法 语法:select ... from 表名 where 字段 a in (值b, 值c, 值d...) 等价于 select ... from 表名 where 字段a=值b ...

  9. ThinkPHP之MVC简析

    MVC是一种设计模式.它强制性的使用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(Model).视图(View).控制器(Controller),它们各自处理自己的任务. 模 ...

  10. tflearn kears GAN官方demo代码——本质上GAN是先训练判别模型让你能够识别噪声,然后生成模型基于噪声生成数据,目标是让判别模型出错。GAN的过程就是训练这个生成模型参数!!!

    GAN:通过 将 样本 特征 化 以后, 告诉 模型 哪些 样本 是 黑 哪些 是 白, 模型 通过 训练 后, 理解 了 黑白 样本 的 区别, 再输入 测试 样本 时, 模型 就可以 根据 以往 ...