3-shell编程,shell 是可以直接操作Linux内核的,这是一个非常重要的工具,一定要掌握,

shell环境准备


Linux的来源于unix

unix是由三部分组成的,工具软件,应用程序,网络协议,


常见的Linux的发行版,ubuntu,centos,redhat,都是Linux的发行版,都是用的Linux的内核,


shell和Linux有密切的关系,shell可以直接操作Linux,
所以shell 是可以直接操作Linux内核的,这是一个非常重要的工具,一定要掌握,

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介绍

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

shell的功能

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

shell的语法:变量

命名规则

  • 命名只能使用英文字母,数字和下划线,
  • 首个字符不能以数字开头中间不能有空格,
  • 可以使用下划线 (不能使用标点符号)
  • 不能使用bash里的关键字 (可用help命令查看保留关键字)

定义与使用变量

your_name="abc
echo $your_name 

只读变量

a="123"
readonly a

注意变量定义的时候,等号两边不要有空格,否则会报错的

删除变量

unset variable_name
(不能删除只读变量)

变量类型

字符串: your_name="hogwarts"
拼接字符串: greeting="hello,"$your_name”!"
数组 array_name (value0 value1 value2 value3)
取数组 valuen=$farray_name[n]
单独赋值 array_name[o]=value0

实战2

  • 数组初始化
    my_array=(A B"C" D)
    echo"第一个元素为: ${my_array[0]}"

  • 数组单个定义
    my_array[1]=B
    echo"数组的元素为: ${my_array[*]}"
    echo"数组的元素为: ${my_array[@]}"

shell的语法:流程控制

if定义

if condition
then
  command1
  command2
  ...
  commandN
fi

fi是指的if语句的结束,

案例

if [ 2==2 ]; then echo "true"; else echo "false" ;fi
if [[ 2 > 1 ]]; then echo "true";else echo "false";fi

for循环

for var in item1 item2 ... itemN
do
  command1
  command2
  ...
  commandN
done

案例

for loop in 1 2 3 4 5
do
  echo "hello"
done

while循环

while condition
do
  command
done

案例

int=1
while(( $int<=5 ))
do
  echo $int
  let "int++"
done

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,输出内容

> 这是重定向,到一个文件,但是会覆盖
如果想要追加,就是两个符号,>>
posted @ 2020-06-01 19:09  技术改变命运Andy  阅读(261)  评论(0编辑  收藏  举报