目录
引言:学习脚本提高工作效率
一、shell脚本概述
1.什么是shell
Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质
2.shell的作用
Linux系统中的shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个"命令解释器"的角色,负责接收用户输入的操作指令(命令并进行解释,将需要执行的操作传递给内核调动硬件执行,并输出执行结果。
用户登陆Linux系统时,自动加载一个Shell程序
bash是Linux系统中默认使用的Shell程序
bash文件位于/bin/bash
cat /etc/shells可以查看shell的类型
3.shell脚本的概念
1.将要执行的命令按顺序保存到一个文本文件
2.给该文件可执行权限
3.可结合各种Shell控制语句以完成更复杂的操作
4.shell脚本释器
有dash和bash两种,但dash没有bash功能全面,所以通常使用bash
ls -l /bin/*sh 查看系统中的脚本解释器
5.shell 脚本的应用场景
1.重复性操作
2.交互性任务
3.批量事务处理
4.服务运行状态监控定
5.时任务执行
6.shell脚本的作用
自动化完成软件的安装部署,如安装部署LAMP架构服务
自动化完成系统的管理,如批量添加用户
自动化完成备份,如数据库定时备份
自动化的分析处理,如网站访问量
二、shell脚本的编辑规范以及运行方式
1.创建shell脚本的步骤
第一步:创建一个包含命令和控制结构的文件。
第二步:修改这个文件的权限使它可以执行 #使用chmod +x 文件名
第三步:检测语法错误 #set -x 追踪脚本是否有故障
四步:执行./ceshi.sh
2.shell脚本的构成
第一行为"#!/bin/bash” #脚本申明(默认解释器)
表示此行以下的代码语句是通过/bin/bash程序来执行。
还有其他类型的解释器,比如#! /usr/bin/python、 #!/usr/bin/expect
注释信息:以"#"开头的语句表示为注释信息,被注释的语句在脚本运行时不会被执行
可执行语句:如echo命令,用于输出””之间的字符串
3.shell脚本执行的方法
方法一:脚本文件路径(绝对路径与相对路径,需要x权限)
chmod +x 给予权限
相对路径
绝对路径
方法二:sh脚本文件路径(不要x权限)
相对路径
绝对路径
方法三:source或.脚本文件路径(不需要x权限)
source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令
4.Shell脚本的完善
三 、重定向与管道操作
1.交互式硬件设备
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息
类型 | 设备文件 | 文件描述编号 | 默认设备 |
标准输入 | /dev/stdin | 0 | 键盘 |
标准输出 | /dev/stdout | 1 | 显示器 |
标准错误输出 | /dev/stderr | 2 | 显示器 |
2.重定向操作
类型 | 操作符 | 用途 |
重定向输入 | < | 从指定文件读取数据,而不是从键盘输入 |
重定向输出 | > | 将输出结果保存到指定文件(覆盖原有内容) |
>> | 将输出结果追加到指定文件尾部 | |
标准错误输出 | 2> | 将错误信息保存到指定文件(覆盖原有内容) |
2>> | 将错误信息追加到指定文件 | |
混合输出 | &>> | 将标准输出、标准错误的内容保存到同一文件中 |
3.管道符号操作“|”
ps aux | wc -l 显示所有进程数
打印出用户中可以登录shell的用户名,家目录,及登录shell
$bash
$表示系统提示符,$表示此用户为普通用户,超级用户的提示符是#,bash是shell的一种,是linux下最常用的一种shell,$bash的意思是执行一个子shell,此子shell为bash
四、Shell变量的作用
变量是会变化的值,不会变化的是常量
1.变量的作用
用来存放系统和用户需要使用的特定参数
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化
2.变量的类型
自定义变量:由用户自己定义、修改和使用
特殊变量:环境变量、只读变量、位置变量、预定义变量
五、自定义变量
变量名=变量值 #变量名以字母或下划线开头,区分大小写,建议全大写
echo $变量名 #查看变量的值
1.赋值时使用引号
双引号:允许通过$符号引用其他变量值
单引号:禁止引用其他变量值, $视为普通字符
反撇号:命令替换,提取命令执行后的输出结果,``和$(…)作用相同
可以使用{}和“”进行分割,{}是应用在变量名,“”是应用在$变量名,如果使用‘’则视为普通字符
2.从键盘输入内容为变量赋值
(1)
(2)
vim name.sh
#!/bin/bash
read -p “请输入你的名字” NAME
echo "--------"
read -p “请输入他的名字” NAME2
echo "--------"
echo "你的名字是"
echo $NAME
echo "他的名字是"
echo $NAME2
六、特殊的Shell变量
1.环境变量
由系统提前创建,用来设置用户的工作环境
配置文件:/etc/profile(全局生效)、~/.bash_profile(当前用户环境)
2.常见的环境变量
PWD、PATH
USER、SHELL、HOME
使用 env 命令可以查看到当前工作环境下的环境变量
变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,变量PATH表示可执行程序的默认搜索路径,RANDOM表示随机数。
七、总结
好好学习脚本对工作很有帮助。