shell python运维脚本_六、生产上运维脚本和语言的学习(shell、Python)

一、Linux常用的脚本语言

主要有shell、Perl、Python,还有PHP也是可以做为脚本语言的,不过用的比较少。

Perl现在还在用的都是大神吧,新人几乎没人会去学Perl了。国内就是这种情形,国外就不太清楚了。

shell脚本是过程式编程,就是根据想要实现的功能从前往后一步一步写代码来实现。这种对于大型项目不是很合适,很多脚本无法重用。

Python是一门支持面向对象的编程语言,可以创建类放在那边,等谁想用时就可以调用,大大节省了开发时间。

程序语言发展到现在,shell语言已经越来越没有那么重要了。但是也不能完全抛弃,毕竟临时写个小脚本,shell还是最快的。

但现在光会shell已经无法满足平时的工作要求了,所以学习Python也几乎是必须的了。

其实语言都是工具,只要用好了一种就不错了。

不过由于在公司内,不是你一个人工作,一般都是需要团队合作,所以学一种大家都在用的语言就很重要了。

二、shell的学习

shell有很多种,不过我们一般说的都是Bourne Again Shell,也就是我们常见的/bin/bash。

要想写shell脚本,当然首先要用文本编辑器,Linux下有两个最出名的文本编辑器:Vim 和 Emacs,还有一个nano,不怎么出名。

Emacs号称是最强大的文本编辑器,我是用不习惯,所以最后成了Vim党。

Linux界有一个笑说是这么说Vim的:

问题:如何得到一串随机字符串?

答:让一个新手退出Vim。

因为要使用Vim都是需要命令来操作的,不像Windows里那样鼠标点点就行了。

要是不知道命令,真的是不知道怎么退出的。

vim现在生态很好,有别人制作的现成的各种插件可以使用。完全可以打造成一个功能强大的IDE。

去github.com上搜索vim,能搜到很多很好的配置好的vim环境。

我个人是在用exVim这套环境,网站https://exvim.github.io,基本上可以作为一个IDE使用。

我用Django开发网站时都是用这套环境,而没有去使用PyCharm这种专业IDE。

一句话:要多用,坚持用,习惯就好了。

推荐几个在线学习Vim的网站:

http://www.atool.org/vim.php

https://www.openvim.com/tutorial.html

https://vim-adventures.com/

学好了Vim,才好开始真正学shell。

最简单的shell就是你平时命令的组合。

比如列出/tmp目录下的文件,然后输出显示/tmp/hello.txt文件内容的一个脚本:

ls /tmp

cat /tmp/hello.txt

我们就可以把这两句命令写到一个文件里,文件名后缀可以随便自己定,但一般都是以.sh来后缀名,这样这个文件就是一个脚本了。

#vim test.sh1

2ls /tmp

cat /tmp/hello.txt

执行这个脚本:

#bash test.sh1

2111_\2018.log  111_2018.log  1.sh  hello.txt  tmp_2018-07-06.log

hello,world

平时我们是不太会用“bash + 脚本名称”这种方式来执行脚本,都是在脚本第一行指定执行的shell路径,再赋予执行权限的方式来执行。

在脚本第一行写上解释器路径,这样脚本就知道用哪种shell来执行脚本了。

#vim test.sh1

2

3#!/bin/bash

ls /tmp

cat /tmp/hello.txt

然后再赋予这个脚本执行权限:

#chmod +x test.sh

最后就可以不用bash来执行脚本了,只要直接执行这个脚本就行。

#/root/test.sh1

2111_\2018.log  111_2018.log  1.sh  hello.txt  tmp_2018-07-06.log

hello,world

这种shell脚本是最低级最简单的,光会这种是远远不够的。

我们还需要用到变量,if判断,for和while循环,还要用到函数。

这些我这里就不讲了,这些东西都要靠自己去学去写,也不是一两句能说清楚的,主要还是教大家学习方法。

三、Python的学习

一个最简单的脚本跟shell也差不多,可以用python命令执行,也可以在文件中指定python路径再赋权来执行。

这里要强调一下,写Python一定要用IDE工具来写,因为Python对缩进是敏感的,如果用普通的记事本来写Python,绝对是坚持不了的。Linux下就可以把VIM打造成IDE。

打印输出“hello,world”字符的一个小脚本:

#cat hello.py1print('hello,world')

# python hello.py1hello,world

Python还有一个最大的优势就是生态好,库多。

所以基本你想要实现什么功能,搜索一下,就会发现别人已经写好了,你只要import导入自己脚本中,再调用就可以实现很复杂的功能了。这也是很多没有编程经验的人选Python的一个原因。

比如我想打印系统时间戳,就导入时间库就行。

# cat nowtime.py1

2

3

4# -*- coding: utf-8 -*-

import time

now_time = time.time()

print (now_time)

# python nowtime.py11531039990.99

四、学习路径与方法

像shell脚本,如果一点基础没有,一开始就使用简单的命令组合来写脚本就可以。

随着对shell的熟悉,慢慢加入if/for/函数等元素,去实现更复杂的功能。

我觉得shell现在学的够用就行了,主要还是花精力去学Python这种语言。

学习网站:

菜鸟教程 http://www.runoob.com/linux/linux-shell.html

对于Python,首先当然是学习它的语法了。

然后就可以慢慢去练,这里推荐菜鸟教程的100例,可以照着慢慢去练习,主要是熟悉它的语法,也是让自己熟悉Python这种语言的风格。

再然后就需要用在平时工作中,开始可以把自己写的shell脚本用Python重新写过。

如果十几二十几个脚本练下来,一般都能达到不错的效果。

后面就可以用函数用类来编写一些方便调用和扩展的脚本。

最后我们不能只停留在写脚本这个层面上,我们应该根据自己的兴趣,选择一个方向去研究和使用Python,比如爬虫、大数据分析、WEB开发、自动化等等。只有去搞这些东西,你才能学的更多,也更有动力学下去。

推荐两个学习Python基础的网站:

菜鸟教程 http://www.runoob.com/python/python-tutorial.html

廖雪峰的Python教程 https://www.liaoxuefeng.com/

一定要多练,工作中如果用不到,自己也要去找些小项目去写。

编程一定要有意识的去培养良好的编程习惯,比如要有注释,要有合理的命名规范,这些在团队协作时非常重要。

在学习的过程中,要去学习程序设计相关的理论知识,比如面向对象编程的设计原理,只有了解了这些理论知识,你编程才能做到事半功倍的效果。

凡事都不能闷着头做,理论知识也是非常重要的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值