什么是Shell
操作系统最外层的程序,shell通过提示符让用户输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来,管理用户与操作系统之间的交互。
Shell是一个用户跟操作系统之间的一个命令解释器。Shell是用户与Linux操作系统之间沟通的桥梁。用户可以输入命令执行,又可以利用 Shell脚本编程去运行。
为什么要用到shell
shell是一个交互式程序,当用户输入一条命令,shell就解释一条,一次只处理一条命令。如果我们一些复杂操作,逐个敲命令工作量就会增大,因此,我们可以事先写一个脚本,在脚本中写入多条命令,让shell一次性把这些命令全都执行完毕,而不必一条一条的敲
常见的shell种类
/bin/sh,/bin/csh,/bin/ksh,/bin/bash等,bash是大多数linux默认的shell程序,因此,在日常工作中被广泛使用
编程基础:
程序:指定+数据
指令:由程序文件提供
数据:IO设备、文件、管道、变量等
程序编程风格:
过程式:以指令为中心,数据服务于指令
对象式:以数据为中心,指令服务于数据
编程语言:
强类型:必须实现声明定义的变量及变量类型。如 java、python
弱类型:无需事先声明变量,默认均为字符串类型,可直接调用变量。如 shell
程序运行方式:
编译运行:源代码 --> 编译器编译 --> 可执行的二进制文件
解释运行:源代码 --> 运行时启动解释器,边解释边运行
如何编写shell脚本:
脚本文件的第一行,顶格:给出shebang,解释器路径,用于指明解释执行当前脚本的解释器程序文件
常见的解释器:
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/python
编写第一个shell脚本:
一个好的shell脚本会标明、作者、日期、版本、作用,这是一个良好的习惯,不然我们代码写到百行的时候,过几个月或几年,回过头来看,又能知道自己写的是什么脚本呢
如何运行shell脚本:
(1)赋予脚本文件执行权限,并直接运行脚本
chmod +x SCRIPT_FILE
./PATH/TO/SCRIPT_FILE
(2)直接运行解释器,将脚本以命令参数传递给解释器程序
bash /PATH/TO/SCRIPT_FILE
变量:指向内存的命令空间
变量名+指向的内存空间
变量赋值:VAR_NAME=value
变量类型:存储格式、表示数据范围、参与的运算
字符型
数值:整型、浮点型(shell不支持浮点型)
变量替换:把变量名出现的位置替换为指定的内存空间中的数据
变量引用:${var_name},$var_name
变量名命名规则:
1.不能与系统中定义过的变量同名,不能与bash中的关键字同名,如 if case等等
2.只能包含数字、下划线、字母
3.要做到见名只义
bash变量类型:
本地变量:仅对当前shell进程生效
环境变量:对当前shell以及子shell生效
局部变量:仅对shell进程中某一代码片段生效
位置变量:脚本执行时传递给脚本的参数
特殊变量:shell内置的有特殊功用的变量
本地变量:
变量赋值:name='value'
变量引用:${name},$name
"":变量名会被替换为其值
'':变量名不会替换为值,当做字符串来处理
查看变量:set
撤销变量:un