官方文档有句话"allows you to call any program",并且:
helps you write shell scripts in Python by giving you the good features of Bash
第一句话助你在Python中轻松调用自己的程序,第二句则给你机会和Shell这种土豪交朋友

㈠ 调用系统的程序

>>> 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

㈡ 调用自己的程序

>>> import sh
>>> r=sh.Command('/root/dd.py')
>>> r()
hello,DBA

㈢ bake命令参数

>>> import sh
>>> du=sh.du.bake('-shc')
>>> print (du('/home/mysql'))
1.1G /home/mysql
1.1G 总计

㈣ glob列出文件

>>> 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']

㈤ 管道

>>> 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

>>> 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

By DBA_WaterBin

2013-09-30

Good Luck

最新文章

  1. 论文阅读(Xiang Bai——【TIP2014】A Unified Framework for Multi-Oriented Text Detection and Recognition)
  2. Knockout 新版应用开发教程之Observable Arrays
  3. IOS NSThread
  4. ORACLE 11G内存管理方式
  5. URAL 1291 Gear-wheels(BFS)
  6. Stream,Reader/Writer,Buffered的区别(2)
  7. rails中的语法
  8. LoadRunner显示中文乱码的问题
  9. iOS工具种之16进制颜色转为UIColor
  10. python zip文件密码爆破
  11. Linux实用的网站
  12. 如何判断dt中所有行的状态并有选择的移除
  13. 关于Python打包运行的一些思路
  14. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】原创教程连载导读【连载完成,共二十九章】
  15. RelativeLayout 相对布局
  16. 简单直白的去理解AOP,了解Spring AOP,使用 @AspectJ - 读书笔记
  17. Oracle出现与并行相关的ORA-00600时的调查方法
  18. ios开发之--textview意见反馈页面(占位label,字数统计,提交按钮的交互设置)
  19. 【集群搭建】Zookeeper集群环境配置
  20. SSH执行远程命令和传送数据

热门文章

  1. hibernate设置mysql的timestamp默认值技巧
  2. Linux中的版本控制---diff和patch命令
  3. 暑假集训(2)第五弹 ----- Who's in the Middle(poj2388)
  4. [Guava官方文档翻译] 7. Guava的Immutable Collection(不可变集合)工具 (Immutable Collections Explained)
  5. 配置php的CAS客户端
  6. sea.js说明文档
  7. 用EPPlus导入导出数据到excel
  8. C# 中关闭当前线程的四种方式 .
  9. oracle创建job方法
  10. cms开发笔记2