Python | 向Linux添加自定义的命令

更多详情请查看Honker

Python | 向Linux添加自定义的命令

Linux是一个有高度自由度的系统,并且开源,因此,我们就可以根据自己的方便、喜好等去自定义一些功能、命令。

那么今天,我就将我们之前编写过的more.py变成可在终端使用的命令。

终端的命令都存储在哪里

目录结构

由图可见,命令主要存储在"/bin", “/usr/bin”, “/sbin”, “/usr/sbin”, “/usr/local/sbin"等之下,我们主要用”/usr/bin"

复制more.py

alone@alone-Vostro-14-5401:/media/alone/Coding/Python/Python项目/PP4E-Examples-1
.4/Examples/PP4E/System$ cp more.py /usr/bin
cp: 无法创建普通文件'/usr/bin/more.py': 权限不够
alone@alone-Vostro-14-5401:/media/alone/Coding/Python/Python项目/PP4E-Examples-1
.4/Examples/PP4E/System$ sudo cp more.py /usr/bin
[sudo] alone 的密码: 
alone@alone-Vostro-14-5401:/media/alone/Coding/Python/Python项目/PP4E-Examples-1
.4/Examples/PP4E/System$ cd /usr/bin

修改more.py

我们需要向原程序开头中添加#!/usr/bin/env python一行,看不懂的详见#!的作用

!!!注意 :我在之后还遇到一个问题,修改多次都无功而返:

alone@alone-Vostro-14-5401:/usr/bin$ sudo vim more.py
alone@alone-Vostro-14-5401:/usr/bin$ more.py
/usr/bin/env: “python\r”: 没有那个文件或目录
alone@alone-Vostro-14-5401:/usr/bin$ sudo vim more.py
alone@alone-Vostro-14-5401:/usr/bin$ more.py
/usr/bin/env: “python\r”: 没有那个文件或目录
alone@alone-Vostro-14-5401:/usr/bin$ sudo vim more.py
alone@alone-Vostro-14-5401:/usr/bin$ more.py
/usr/bin/env: “pytho\r”: 没有那个文件或目录
alone@alone-Vostro-14-5401:/usr/bin$ sudo vim more.py
alone@alone-Vostro-14-5401:/usr/bin$ more.py
/usr/bin/env: “python\r”: 没有那个文件或目录
alone@alone-Vostro-14-5401:/usr/bin$ sudo vim more.py
alone@alone-Vostro-14-5401:/usr/bin$ more.py

解决方法详见处理方法:/usr/bin/env: “python\r”或者”bash\r”没有那个文件或目录

成果展示

alone@alone-Vostro-14-5401:/usr/bin$ more.py more.py
#!/usr/bin/env python
"""
split and interactively page a string or file of text
"""

def more(text, numlines=15):
    lines = text.splitlines()                # like split('\n') but no '' at end
    while lines:
        chunk = lines[:numlines]
        lines = lines[numlines:]
More?y
        for line in chunk: print(line)
        if lines and input('More?') not in ['y', 'Y']: break

if __name__ == '__main__':
    import sys                                   # when run, not importer

    if len(sys.argv) == 1: more(sys.stdin.read())
    else: more(open(sys.argv[1]).read(), 10)       # page contents of file on cmdline
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RizzoHou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值