当前位置: 首页 > news >正文

免费网站建设平台seo技术外包公司

免费网站建设平台,seo技术外包公司,深圳哪家网站建设好,美食 网站模板一、Shell脚本概述 1.1Shell基本概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限 可结合各种Shell控制语句以完成更复杂的操作 1.2 Shell脚本应用场景 重复性操作 交互性任务 批量事务处理 服务运行状态监控 定时任务执行 1.3 Shell作用——翻译官 shel…

一、Shell脚本概述

1.1Shell基本概念

将要执行的命令按顺序保存到一个文本文件
给该文件可执行权限
可结合各种Shell控制语句以完成更复杂的操作

1.2 Shell脚本应用场景

重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行

1.3 Shell作用——翻译官

shell是一个特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

请添加图片描述

二、shell编程规范

2.1 用户登录shell

登录后默认使用的shell程序,一般为/bin/bash
不同shell的内部指令、运行环境等会有所不同
在这里插入图片描述

shell说明
sh已经被bash所替换(软链接)
bash是基准于GNU的框架下发展出的shell
tcsh整合了csh,提供更多的功能(增强版)
csh语法有点类似于C语言的shell
nologin奇怪的shell,这个shell可以让用户无法登录主机

2.2 shell 脚本的概念

1、将要执行的命令按顺序保存到一个文本文件

2、给该文件可执行权限

3、可结合各种Shell控制语句以完成更复杂的操作

总结:将需要执行的命令保存到一个文件中,按照顺序执行,它不需要编译,它是解释型的

2.3 shell脚本解释器

有dash和bash两种,但dash没有bash功能全面,所以通常使用bash。

可以通过命令来查看系统中的脚本解释器: ls -l /bin/*sh
在这里插入图片描述

2.4 shell 脚本的应用场景

①重复性操作

②交互性任务

③批量事务处理

④服务运行状态监控定

⑤时任务执行

2.5shell 脚本的作用

自动化完成软件的安装部署,如安装部署LAMP架构服务

自动化完成系统的管理,如批量添加用户

自动化完成备份,如数据库定时备份

自动化的分析处理,如网站访问量

2.6 编写脚本代码

使用vim文本编辑器

每行一条Linux命令,按执行顺序依次编写

脚本后缀为.sh

第一行为 “#!/bin/bash” ,脚本申明(默认解释器):
表示此行以下的代码语句是通过 /bin/bash 程序来执行。
还有其他类型的解释器,比如#!/usr/ bin/python、#!/usr/bin/expect
注释信息:以”#“开头的语句表示为注释信息,被注释的语句在脚本运行时不会被执行可执行语句:如echo命令,用于输出"“之间的字符串
在这里插入图片描述

创建 shell 程序的步骤:

第一步: 创建一个包含命令和控制结构的文件。

第二步: 修改这个文件的权限使它可以执行#使用chmod +x xxx.sh(不修改权限也可以)

第三步: 检测语法错误

第四步: 执行 .xxx.sh (不修改权限可以使用 bash xxx.sh 或 sh xxx.sh)

2.7 赋予可执行权限

使脚本具有可执行权限

chmod +x

一般文件的权限有三种,读(r)、写(w)、执行(x)。通常Shell脚本写完是不具备执行(x)权限的,所以我们需要给予它执行权限

在这里插入图片描述

2.8 shell 脚本执行方式

方法 一:./+脚本文件路径(绝对路径与相对路径)

必须要执行权限才能执行,执行完毕不会改变当前所在目录
在这里插入图片描述

方法二:sh脚本文件路径 (不给执行权限也可以)
在这里插入图片描述
方法三:source脚本文件路径(会自动切换到目标文件位置)
在这里插入图片描述

方法四:点空格脚本文件路径(会自动切换到目标文件夹,相当于source)
在这里插入图片描述
方法五:bash xxx.sh

在这里插入图片描述

方法六: sh < xxxx.sh 或者 cat xxxx.sh |sh
在这里插入图片描述

三、重定向与管道符

3.1 交互式硬件设备

标准输入: 从该设备接收用户输入的数据
标准输出: 通过该设备向用户输出数据
标准错误: 通过该设备报告执行出错信息

类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

3.2 定向操作

类型操作符用途
定向输入<从指定文件读取数据,而不是从键盘输入
定向输出>将输出结果保存到指定文件(覆盖原有内容)
重定向输出>>将输出结果追加到指定文件尾部
标准错误输出2>将错误信息保存带指定文件(覆盖原有内容)
标准错误输出2>>将错误信息追加到指定文件
混合输出&>将标准输出、标准错误的内容保存到同一个文件中

示例:

3.2.1定向输出

使用passwd命令为用户设置密码时,每次都必须根据提示输入两次密码字串,非常烦琐,若改用重定向输入将可以省略交互式的过程,而自动完成密码设置(结合passwd命令的“–stdin”选项来识别标准输入)。
在这里插入图片描述

3.2.2追加与替换

在这里插入图片描述

在这里插入图片描述

3.2.3以0作为分界符,只要不输入0就会一直输入数据从而显示到屏

在这里插入图片描述
可以把输入重定向和输出重定问结合使用,把从屏幕输出的内容保存到文件
在这里插入图片描述
重定向输出指的是将命令的正常输出结果保存到指定的文件中,而不是直接显示在显示器的屏幕上。重定向输出使用">或">>"操作符号,分别用于覆盖或追加文件,若重定向输出的目标文件不存在,则会新建该文件,然后将前面命令的输出结果保存到该文件中﹔若目标文件已经存在,则将输出结果覆盖或追加到文件中。

3.2.4错误重定向输出

错误重定向指的是将执行命令过程中出现的错误信息(如选项或参数错误等)保存到指定的文件,而不是直接显示在屏幕上。错误重定向使用"2>操作符

2个作用:

在实际应用中,错误重定向可用来收集程序执行的错误信息,为排错提供依据,还可以将无关紧要的错误信息重定向到空文件/dev/null 中,以保持脚本输出的简洁,使用"2>”操作符时,会像使用">“操作符一样覆盖目标文件的内容,若要追加内容而不是覆盖文件,则应改用“2>>“操作符。
在这里插入图片描述
以使用操作符">" "2>"将两类输出信息分别保存到不同的文件,也可以使用”&>“操作符将两类输出信息保存到同一个文件
ls -lh > abc.txt 2>&1 等同于 ls -lh &> abc.txt
在这里插入图片描述

3.2.5将信息输入到“黑洞”

/dev/null:把它看作"黑洞",所有写入它的内容都会永远丢失.而尝试从它那儿读取内容则什么也读不到.然而/dev/null对命令行和脚本都非常的有用。

就是将不想再频幕上显示的信息输入到黑洞中,不在屏幕上显示
在这里插入图片描述

3.3管道符号操作“|”

将左侧的命令输出结果,作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。

ps -aux显示所有进程
在这里插入图片描述
wc -l统计所有行数
在这里插入图片描述
打印出用户中可以登录shell的用户名,家目录,及登录shell

cat /etc/passwd | grep “nologin” | awk -F: ‘{print $1,$6,$7}’

或者grep “/nologin$” /etc/passwd | awk -F: ‘{print $1,$6,$7}’

这里提升一下利用文本命令awk后面我会讲
AWK, 数据过滤工具 (类似于grep,比grep强大)
-F指定分隔符“:”
print打印
在这里插入图片描述

四、Shell变量的作用、类型

变量是会变化的值,不会变化的是常量

4.1变量的作用

●用来存放系统和用户需要使用的特定参数(值)

●变量名:使用固定的名称,由系统预设或用户定义

●变量值:能够根据用户设置、系统环境的变化而变化

4.2变量的类型

●自定义变量:由用户自己定义、修改和使用

●特殊变量:环境变量、只读变量、位置变量、预定义变量

4.3自定义变量

变量名=变量值 #变量名以字母或下划线开头,区分大小写,建议全大写
echo $变量名 #查看变量的值

在这里插入图片描述

等号(=)用来给变量赋值

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值

4.4赋值时使用引号

双引号:允许通过$符号引用其他变量值

单引号:禁止引用其他变量值, $视为普通字符

反撇号:命令替换,提取命令执行后的输出结果,​​``​​​和$(…)作用相同

单引号‘’:强引用,六亲不认,变量和命令都不识别,都当成了普通的字符串,“最傻”
双引号”“:弱引用,不能识别命令,可以识别变量,“半傻不精”
反向单引号··:里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续,“最聪明
引用变量 命 令 执 行 结 果 {} 命令执行结果 ()
运算$[] $(())
$() 或 ``引用命令执行的结果
( ( ) ) 或 (()) 或 (())[]进行运算
使用 或 " {}或" "变量名” 划定变量名的起止范围

定义A=apple而66没有被定义所以输出apple 66 (中间空格分开)

在这里插入图片描述

因为A6没有被定义,所以无法输出

在这里插入图片描述

可以使用{}和“”进行分割,{}是应用在变量名,“”是应用在$变量名,如果使用‘’则视为普通字符

在这里插入图片描述

反撇号``,直接调用命令结果 ,因为echo " A " 5.5 = a p p l e 6.6 a b c = ‘ " A"5.5=apple6.6 abc=`" A"5.5=apple6.6abc="A"6.6` 所以 abc=apple6.6
在这里插入图片描述

4.5从键盘输入内容为变量赋值

read命令获取输入内容

-p:提示用户的信息
-n:定义字符数
-s:不显示用户输入的内容,常用于输入密码read -s -p “input your password:” pass
-t:定义超时时间,超过多长时间没输自动退出从文件读取内容赋值给变量(默认10s)

方法一:

read -p 提示信息 变量名
echo $变量名

在这里插入图片描述

方法二:

在脚本中编写,在命令行实现read获取

vim name.sh
#!/bin/bash
read -p “请输入你的名字” NAME
echo “--------”
read -p “请输入他的名字” NAME2
echo “--------”
echo “你的名字是”
echo $NAME
echo “他的名字是”
echo $NAME2

执行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.6export命令

为了使用户定义的变量在所有的子 shell环境中能够继续使用,减少重复设置工作,可以通过内部命令export将指定的变量导出为全局变量。用户可以同时指定多个变量名称作为参数(无须使用"$"符号),变量名之间以空格分隔.

格式1:export 变量名
格式2:export 变量名=变量值
在这里插入图片描述

4.7整数变量的运算

在 Bash shell环境中,只能进行简单的整数运算,不支持小数运算,整数值的运算主要通过内部命令expr进行。运算符与变量之间必须有至少一个空格。

运算内容:加(+)、减(-)、乘(*)、除(/)、取余(%)

运算符号: ( ( ) ) 和 (( ))和 (())[]

运算命令: expr和let

运算工具: bc(系统自带)

4.7.1 expr命令

+ :加法运算。
- :版法运算。
* :乘法运算,注意不能仅使用 * 符号,否则将被当成文件通配符。
/:除法运算。
%:求模运算,又称为取余运算,用来计算数值相除后的余数。

在这里插入图片描述

expr 不仅支持常量还支持变量的运算

在这里插入图片描述

使用脚本执行输入两个数字后进行乘法运算
在这里插入图片描述

执行结果:

在这里插入图片描述

[ ] 和 []和 [] (())_必须要和echo在一起用因为他只能运算无法输出结果, [ ] 和 []和 [] (())中*不需要转义

请添加图片描述

[ ] 和 []和 [] (())变量的运算可以省略里面的$

在这里插入图片描述

4.7.2 let命令

let的运算可以改变变量本身的值,但不显示结果,需要echo,其他的运算方式可以做运算但不改变变量本身的值。

请添加图片描述

let n++ #n自加1
let n-- #n自减1
[a++] #先输出再自增1
[++a] #先自增1再输出

请添加图片描述

请添加图片描述

请添加图片描述

4.73bc命令

使用bc进行运算,支持小数运算,但在脚本中不可直接使用否则会进入交互界面,可以用echo结合管道使用

scale=n /指定小数点后保留n位
在这里插入图片描述

在这里插入图片描述

bc也可做变量的运算,还可以做逻辑运算,真为1,假为0

在这里插入图片描述

五、特殊的shell变量

5.1 环境变量

由系统提前创建,用来设置用户的工作环境

配置文件:/etc/profile(全局生效)、~/.bash_profile(当前用户环境)

5.2 常见的环境变量

PWD、PATH

USER、SHELL、HOME

使用 env 命令可以查看到当前工作环境下的环境变量

变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,变量PATH表示可执行程序的默认搜索路径,RAMNDOM表示随机数。

在这里插入图片描述

5.2.1PATH(路径环境变量)

echo KaTeX parse error: Expected 'EOF', got '#' at position 15: PATH #̲查看当前搜索路径 PATH="PATH:/root" #将/root目录添加到搜索路径
export PATH=“$PATH:/root” #输出为全局环境变量
first.sh
请添加图片描述

已经将该目录添加到路径环境变量中,目录内的所有具有执行权限的文件,都可以在当前环境任何目录中执行

5.2.2 只读变量

readonly 命令设置只读变量
readonly PRODUCT #设置为只读变量
echo $PRODUCT
PRODUCT=Python #只读变量不可以被重新赋值
unset PRODUCT #只读变量不可以被删除,unset 命令用于删除变量,但无法删除只读变量,只能重启系统解决

5.2.3 位置变量

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}

在这里插入图片描述

5.2.4 预定义变量

预定义变量是由Bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值。预定义变量使用*$"符号和另一个符号组合表示

$#: 表示命令行中位置参数的个数。
$: 表示所有位置参数的内容,这些内容当做一个整体
$@: 表示列出所有位置参数,但是是以单个的形式的列出
$?: 表示前一条命令执行后的返回状态,返回值为О表示执行正确,返回任何非О值均表示执行出现异常。
$0:表示当前执行的脚本或程序的名称
$$:表示返回当前进程的进程号
$!:返回最后一个后合进程的进程号
$ 是将参数全部当做一个整体
$@ 是将参数每一个都当做单独的个体

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结
shell的作用与应用场景

shell脚本的编写规范与执行方法

重定向与管道的作用与使用方法

自定义变量赋值时单引号、双引号、反撇号的使用方法

数值变量的常用运算符:+、-、*、/、%

环境变量、只读变量、位置变量、预定义变量的用途

http://www.khdw.cn/news/10912.html

相关文章:

  • 大连制作网站贵阳网站建设制作
  • 秦皇岛做网站优化价格seo入门培训学多久
  • 工控机做网站服务器北京seo全网营销
  • 浦东做营销网站学推广网络营销去哪里
  • php wordpress长沙电商优化
  • 阿里云建站的优缺点阿亮seo技术
  • 临沂企业网站2024年小学生简短小新闻
  • 只买域名怎么做网站域名查询ip138
  • 独立站平台seo网站关键词优化
  • 做古风头像的网站软文广告经典案例300大全
  • 300元做网站不收费推广网站有哪些
  • 做最精彩的绳艺网站百度精准营销获客平台
  • wordpress做商城网站吗电商seo是什么意思
  • 佛山专业建站公司哪家好大地资源网在线观看免费
  • 简单电商网站模板扶贫832网络销售平台
  • 网站怎样排名靠前最新新闻热点
  • 哪个网站使用vue 做的seo关键词排名优化的方法
  • 商城开发网站建设今日头条新闻最全新消息
  • 余姚网站推广北京百度seo排名点击器
  • 网站建设网络推广百度搜索引擎官网入口
  • app是怎么开发的seo网站关键词排名软件
  • 十堰专业网站建设公司百度关键词seo公司
  • 网站如何进行建设营销课程培训
  • 精品课网站制作发帖平台
  • java网站开发后端技术百度关键字优化精灵
  • wordpress重装空白网站运营推广选择乐云seo
  • 视频网站如何做弹幕怎么样自己创建网站
  • 网站建设服务商百度收录查询
  • 上行2m可以做网站yahoo搜索
  • 亚马逊品牌网站要怎么做教育培训机构十大排名