今天我们要分享的是:最新shell脚本介绍!
专业知识的分享严肃而认真不需要配图
下面我们开始正文内容
(那边那个同学把手机放下来,后边那个小子不许睡)
一、shell的介绍
1、Shell 是什么?
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
shell脚本是什么?
shell脚本就是指令的集合。
如何来用shell
当然是把shell的基本语法熟练掌握,实战起来啦。
shell编程遵从UNIX哲学:把复杂问题分解成简单的小问题,然后再把各个部分功能组合起来解决复杂问题。
2、为什么要用shell
对于我们自己,学习shell是为了自动化,而自动化则是为了提高工作效率,提高产出,更进一步则是提高公司的收入 。
Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容。
shell必须是建立在UNIX或者Linux之上才有意义。所以在正式学习shell之前,我们需要掌握Linux知识。
3、shell有哪些功能
我们在Linux中输入命令的界面就成为shell。支持如下功能:
1、命令补齐(tab键)
2、记录历史命令
3、命令别名-alias 用法:alias [命令别名]=['具体的命令']
4、通配符
5、快捷键
二、shell脚本
1、shell的版本
Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux 的 Shell 种类众多,常见的有:可通过命令查看
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
……
Shell 脚本的版本,目前最常用的是:/bin/bash,这也是Linux默认的shell版本。
如何查看用户自己默认的shell、当前系统默认的shell
(1)echo $SHELL 查看用户自己默认的shell (SHELL是变量的名字,$读取变量名里面的内容,echo:输出)
(2)echo $0 查看当前系统默认的shell
2、脚本的命名和书写格式
2.1 脚本名字一般有两种情况:
(1) 是以.sh 结尾的,就通常代表了这是一个脚本文件;
(2) 是不带.sh 的,也可以表示一个脚本,但是直观上就不能识别出 来。
2.2 第一个shell脚本
#!/bin/bash
echo "hello world"
(1) 对于生成的文件,想要执行,需要给文件赋予可执行的权限
(2) 命令解释权#!
我们一般是在文本编辑器里面打开新的空文件来创建 Bash Shell 脚本。Bash Shell 脚本的第一行以【#!】开头,表示文件是 可执行的 shell 脚本,
后面跟上的路径名称是命令解释器,也就是 应该用于执行脚本的程序。由于 Bash Shell 脚本将由 Bash Shell 解释,因此他们是这么 开头的【#!/bin/bash】。
(3)执行文件(当前目录下需要加上 ./文件名)
3、变量
· 变量:用来存储一个可变的值,通常用于大写来命名,变量分为两种:普通变量,环境变量
例:预设变量PATH,定义了常用命令的绝对路径
因此我们可以直接输入命令echo命令可以输出一些语句(某些情况也可以读取变量的值),$符号用来读取变量内容
如:ls命令存放于/bin目录下,该目录已经添加到了PATH,所以可以直接使用,也可以通过绝对路径的方式进行使用
3.1 普通变量:一般是大写,但是也可以是小写,名字由字母、数字和_组成。
普通变量可以直接在命令行定义
例子:
3.2 环境变量:环境变量就是系统预定义的参数。在 wins 下也有。
· 在Linux中环境变量按照生存周期可以分为两大类:临时的(export、su)、永久的
(1)环境变量-临时-export命令:使用export 命令声明即可,变量在关闭 shell 时失效(在切换shell的时候,临时的环境变量也会生效。)
语法:export 变量名=值
export 定义临时的环境变量,配置举例
·
(2)环境变量-临时-su命令
· su test 和 su - test 的区别
·
(3)环境变量-永久
· 永久的:需要修改配置文件,变量才会永久生效。分为:全局和用户
· 定义全局变量的文件:/etc/bashrc 和/etc/profile
· 定义用户变量的文件:~/.bashrc 和~/.bash_profile(用户家目录中)
· 环境变量-永久-举例
·
·
3.3 位置变量
(1)用数字表示的变量
$0 表示脚本名称
$1 表示第一个参数
$2 表示第二个参数,以此类推,$3、$4
$? 表示程序退出的代表(一般 0 代表执行成功,非 0 表示执行失败)
$* 代表所有参数内容(整体)
$@ 代表所有参数内容(逐个读取)
$$ 代表当前进程的 ID 号码
$# 代表当前 shell 的参数个数
(2)转义字符
· 转义字符有三种:\(反斜杠) ‘’(单引号) “”(双引号)
(1)反斜杠\:可以消除紧跟在字符后面的单个字符的特殊含义,如有多个特殊字符,需要加多个\
(2)单引号:可以屏蔽引号中的一切特殊字符
(3)双引号:功能同单引号,但是不会屏蔽$符号,其他都屏蔽。
怎么样?这货干不干?硬不硬?
硬!你就点关注啊
如有咨询请在文章或公众号留言:姓名+联系方式(手机号或微信号)!
官方网站:www.njzhenghou.com
广西威扬学院