shell编程

####################

shell编程
1,shell不需要环境,直接Linux就可以运行了,不需要安装环境,
2,shell是原生的,Python是需要环境的,
3,shell入门很快,一天就能学会,就能写脚本了,

shell平时运维用的多,运维都是重复的工作,所以你可以使用这个来减轻自己的工作
1,做日志分析,pv,uv这样的分析,200的300的400的500的,访问有多少,哪一个地域访问我的最多,这些都可以使用shell来操作,
2,比如监控
3,比如初始化,安装等
4,比如备份脚本,这也可以使用shell

shell学习层次
1,能看懂shell脚本
2,能改别人的shell脚本
3,能自己写shell脚本
4,能优化shell脚本,

 #######################

shell是一个程序,也是一种解释性的编程语言,是c语言写的,和Linux内核沟通的桥梁
kernel,这是内核,内核管理所有的硬件,同时驱动所有的硬件,这是两个大作用,
shell,负责命令的解释,用户的指令给shell,shell转换成为机器语言给kernel,反之也是这样
user,这是下指令的,
内核是识别的二进制,只认识1和0,用户不能直接给内核下指令,

shell的功能
1,命令解释功能
2,启动程序
3,输入输出重定向
4,管道
5,变量维护
5,环境控制
6,shell编程,

########################

shell的语法
1,怎么写一个shell脚本
2,shell脚本的运行,
3,shell中的特殊符号
4,管道,
5,重定向
6,shell中的数学运算
7,脚本退出

########################

shell脚本
1,命名shell脚本,名字要有意义,
2,虽然在Linux中,没有后缀名的概念,但是还是建议是.sh结尾,
3,首行要定义shell的运行环境,
which bash
which python3
#!/usr/bin/python3
#号是注释
#!这两个组合就不是注释了,这是定义脚本在哪里运行
4,最好注释上,是谁写的,什么时间写的,脚本干什么的,将来谁写的谁改,
还可以写上版本号,
可以编辑vi编辑器,让打开一个问题的时候就自带这个内容,
5,后面才是执行的代码

########################

运行shell脚本
1,直接./文件名,就可以执行了,前提是给了这个文件的权限,chmod 700 hello.sh
2,bash hello.sh,使用这个bash命令也可以执行,sh hello.sh也可以,
3,特殊符号的问题
cd ~,回到家目录
cd -,回到上一层目录
history命令,可以看到所有执行过的命令,
!p,这是执行最近的一个p开头的命令
!62,这是执行第62行命令,
!!两个感叹号是执行上一个命令,
echo $USER,这是看当前用户是谁,
+ - * 、/ % 这些运算符
| 这是管道,
这是转译, 比如expr 3 * 3 就会报错,但是expr 3 * 3 就可以了,
shell中的管道
管道就是上一个命令的输出作为下一个命令的输入
比如:cat /etc/passwd | grep "root"
> 这是重定向,到一个文件,但是会覆盖
如果想要追加,就是两个符号,>>

#############################

shell数学运算
expr 1 + 2
必须要有空格,必须要是整数,


####################

原文地址:https://www.cnblogs.com/andy0816/p/13026853.html