• 使用sh库执行shell命令


    python中执行shell命令

    之前执行shell命令多是通过os.system(shell命令)的方式来执行,比较麻烦。

    了解到sh是一个比subprocess好的库,能够执行shell命令

    1.查看ip:

    [root@iZj6cbstl2n6r280a27eppZ myblog]# ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 172.31.253.193 netmask 255.255.240.0 broadcast 172.31.255.255
    ether 00:16:3e:01:72:ac txqueuelen 1000 (Ethernet)
    RX packets 235322 bytes 231762359 (221.0 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 78402 bytes 15382388 (14.6 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    用sh完成:

    In [13]: from sh import ifconfig

    In [14]: print ifconfig("eth0")
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 172.31.253.193 netmask 255.255.240.0 broadcast 172.31.255.255
    ether 00:16:3e:01:72:ac txqueuelen 1000 (Ethernet)
    RX packets 236463 bytes 231849592 (221.1 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 79234 bytes 15505613 (14.7 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    2.查看/app目录下的文件:

    In [24]: print sh.ls("/app")
    git-2.14.1 myblog pyinit.py v2.14.1.tar.gz

    In [27]: sh.ls("-l", "/app")
    Out[27]:
    drwxrwxr-x 26 root root 24576 9?. 12 20:52 git-2.14.1
    drwxr-xr-x 6 root root 4096 9?. 13 21:53 myblog
    -rw-r--r-- 1 root root 273 9?. 12 20:43 pyinit.py
    -rw-r--r-- 1 root root 6983655 9?. 12 20:48 v2.14.1.tar.gz

    查看/app下有多少个文件:

    In [28]: sh.wc(sh.ls("-l", "/app"), "-l")
    Out[28]: 5

    3. 将/app下的文件存到列表里:

    In [42]: list=sh.glob('/app/*')

    In [43]: list
    Out[43]: ['/app/git-2.14.1', '/app/v2.14.1.tar.gz', '/app/pyinit.py', '/app/myblog']

    4.管道:

    In [45]: print(sh.sort(sh.du(sh.glob('/app/*'),'-shc'),'-rn'))
    397M ?.?
    378M /app/git-2.14.1
    13M /app/myblog
    6.7M /app/v2.14.1.tar.gz
    4.0K /app/pyinit.py

  • 相关阅读:
    全排列
    【React Native开发】React Native控件之DrawerLayoutAndroid抽屉导航切换组件解说(13)
    google PLDA + 实现原理及源代码分析
    codeforces 204(Div.1 A) Little Elephant and Interval(贪心)
    关于系统运维监控的几点建议
    jquery插件jTemplates使用方法
    手动控制事务
    Android--数据库数据显示至屏幕
    Qt应用程序中设置字体
    读刘未鹏老大《你应当怎样学习C++(以及编程)》
  • 原文地址:https://www.cnblogs.com/niansi/p/7541405.html
Copyright © 2020-2023  润新知