自动化运维用shell还是python_有了自动化运维工具,为什么还会用到shell脚本?...

shell 是 Unix/Linux 系统的基础用户界面。能互动式或脚本式,接受内建命令以实行自身操作,浏览文件系统,启动其它程序,脚本,以及图形界面。比如你输入一个程序名字 gedit 就会打开 gedit 程序。命令行概念来自 Multics 项目,让用户能与内核直接沟通 (暂不确定 Multics 那时已称呼 “shell”)。Ken Thompson 从 Multics 退出后才在 Bell labs 写了第一个 Unix shell 叫 Thompson Shell (只花四个星期开发了 assembler, editor, shell, kernel), 发明了 < > 的简单重定向符号, | pipeline 则是他上司 McIlroy (手写完美 compiler-compiler 让 Ken Thompson 钦佩不已的超级大神) 建议的。

现代 Linux 系统默认启动的 shell 程序是 sh(有时 symlink 去其它 shell 程序) , bash,dash, zsh 等等。至于 python shell 由于非传统且不如 < > | ./ 简单粗暴执行日常的交互式动作,所以不是默认的 shell。不过还是有人开脑洞开发了 xonsh 让 python 兼容 bash (不过我运行 xonsh 时错误,囧)。

Unix shell 的优势是日常简单粗暴,如果是较复杂的动作, 如涉及 arrary 或分析文件栏, 当然是选择比较容易写的 python。不过 Unix shell 也可以插入 python 返回。如果使用 python 就会去找与该命令孪生的 python 第三方库而尽可能减少 os.system 的间接命令行方式。

至于题主问的 “自动化运维工具”只是与运维相关的程序分类称呼,本身就是由各种高级程序语言直接或间接所写的, 譬如 Unix shell 脚本, python 脚本, perl 脚本, js 脚本,c/c++二进制程序等等。

即使你不做运维也偶尔会使用 shell 脚本实现某些事物, 更别说做运维需要实现和研究更多事物。你当然可以不顾效率/时间,坚持只用其它语言如 python, 取决于你。不过如果涉及的工具的 shell 脚本有问题, 那么你就得理解/排错/修改那个 shell 脚本, 这跑不掉的,更别说偶尔需要理解修改系统默认的 shell 脚本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值