zoukankan      html  css  js  c++  java
  • Python sh库学习 上篇

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

  • 相关阅读:
    urllib3使用池管理发送请求和requests常用方法的基本使用+session使用
    Ajax爬取动态数据和HTTPS自动默认证书
    urllib库中的URL编码解码和GETPOST请求
    urllib的使用和进阶——urllib.request
    1.8学习进度总结
    1.7学习进度总结
    1.5学习进度总结
    1.4学习进度总结
    第十二周周进度总结
    第十一周周进度总结
  • 原文地址:https://www.cnblogs.com/james1207/p/3348002.html
Copyright © 2011-2022 走看看