什么是shell
史上最全教程:http://c.biancheng.net/shell/base/
shell是一个命令解释器,他在操作系统的最外层,负责用户和系统内核的一个交互,把用户输入的命令翻一个系统,然后将输入、输出的结果反馈给系统用户
通俗来讲shell就是把Unix/Linux下的命令放入一个文件内集中执行,它不仅是一个连接用户和Linux内核的程序,又是一个管理Linux的脚本语言的命令解释器,它是利用了shell功能写成的一个程序,将shell语句放入文件然后将结果反馈给用户,shell提供了数组、循环、条件以及逻辑判断等重要功能。

我们所输入的命令计算机是不可以设别的,它需要一种程序来进行翻译成自己识别的二进制程序,同时把结果反馈给我们
shell 的种类:https://www.cnblogs.com/leilong/p/9206487.html
编程语言的分类
机器语言:二进制语言
汇编语言:符号语言,使用助记符来代替操作码,也就是用符号代替二进制语言
静态语言:编译型语言 c、c++、java
动态语言:解释型语言 php、shell、python、Perl
gcc编译器:(解释器)讲人类理解的语言翻译成机器理解的语言
编程语言

解释型语言

语言分类

什么是shell脚本
通俗来讲shell脚本就是把Unix/Linux下的命令放入一个文件内集中执行,它不仅是一个连接用户和Linux内核的程序,又是一个管理Linux的脚本语言的命令解释器/bin/bash和/bin/sh,它是利用了shell功能写成的一个程序,将shell语句放入文件然后将结果反馈给用户,shell提供了数组、循环、条件以及逻辑判断等重要功能。

1. 书写脚本
cat /server/scripts/shell.sh
#!/bin/bash ----> 指定脚本默认使用的命令解释器 第一行
echo "hello word"
#执行结果
[root@m01 /server/scripts]# sh shell.sh
hello word
标注:
- 语法正确,文件有+x执行权限
chmod +x shell.sh
- 以 # 开头,整行注释不执行
- 文件以
.sh 结尾
- shell 脚本的执行方式
2. shell 脚本执行方式
- /root/shell.sh 或者 ./shell.sh (要有+x执行权限)usr/bin/bash
- bash shell.sh 或 sh shell.sh (可以不对脚本文件添加权限)
- sh < shell.sh (重定向)
- source 或 . 替你在当前环境中 执行1次脚本 ,source 一般用来实现include 功能 或配置环境变量 别名后生效. /etc/init.d/functions
注:在/etc/shells文件系统中给出系统已知的 shell :/bin/sh、/bin/bash、/usr/bin/sh、/usr/bin/bash
shell 变量及运用
shell 变量
变量是shell 传递数据的一种方法。变量是用来代表每个值的符号名。就好比我们小时候数学里的 变量和变量值,比如y=x+1 那么 相当与x+1的结果赋值给了y ,当然我么也可以不断给y赋值,之后赋值的y会把之前的值给替换掉。
变量的命名规则:
-
命令只能使用英文字母,数学和下划线,首个字母不能以数字开头。
-
中间不能有空格,可以使用下划线( _ )。
-
不能使用标点符号。
-
不能使用bash里的关键字( 可用help帮助 )
-
等号 = 用于为变量分配值,等号两边不能有空格
-
变量存储的数据类型是整数类型和字符串类型
-
在赋值时建议用引号括起来。因为如果字符串中存在空格符号,需要使用单引号或双引号。
-
要对变量进行调用,在变量前加 $ 符号
变量的分类:
-
用户自定义变量
-
环境变量:主要保存和系统操作环境相关的数据。
-
位置参数变量:主要是用来向脚本当中传递参数或数据,变量名不能自定义,变量作用是固定的。
-
预定义变量:是Bash 中已经自定义好的变量,变量名不
- 能自定义,变量作用也是自定义好的。
按照变量作用域可以分成 2 类:全局变量和局部变量
局部变量 是 shell 程序内部定义的,其作用仅限于定义它的程序,对其他程序不可见。包括:用户自定义变量、位置变量和预定义变量。
全局变量 是环境变量,其值不随 shell 脚本的执行结束而消失。
内置环境变量
shell 脚本基础
原文:https://www.cnblogs.com/Mercury-linux/p/12153548.html