赞
踩
为了方便以后工作使用和复习,吐血整理记录一下学习shell脚本的笔记,看这篇文章需要对linux系统熟悉,希望对大家有所帮助!
shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell属于内置的脚本,程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理)语法简单,代码写起来比较轻松,简单易学
cat /etc/shells
在linux中有很多类型的shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是 / b a s h / b a s h ( 重 点 ) color{#FF3030}{/bash/bash(重点)} /bash/bash(重点),流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。
编写规范:
#!/bin/bash [指定告知系统当前这个脚本要使用的shell解释器]
Shell相关指令
文件命名规范:
文件名.sh .sh是linux下bash shell 的默认后缀
快捷键
作用
ctrl+A
把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。
ctrl+E
把光标移动到命令行结尾。
ctrl+C
强制终止当前的命令。
ctrl+L
清屏,相当于clear命令。
ctrl+U
删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便
ctrl+K
删除或剪切光标之后的内容。
ctrl+Y
粘贴ctrl+U或ctul+K剪切的内容。
ctrl+R
在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
ctrl+D
退出当前终端。
ctrl+Z
暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。
ctrl+S
暂停屏幕输出。
ctrl+Q
恢复屏幕输出。
设备
设备名
文件描述符
类型
键盘
/dev/stdin
0
标准输入
显示器
/dev/stdout
1
标准输出
显示器
/dev/stderr
2
标准错误输出
输入重定向:是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。(重定向简单理解就是使用 “<”符来修改标准输入设备)
类型
符号(语法)
功能
标准输入
命令<文件1
命令把文件1的内容作为标准输入设备
标识符限定输入
命令<<标识符
命令把标准输入中读入内容,直到遇到“标识符”分解符为止
输入输出重定向(同时使用)
命令< 文件1 >文件2
命令把文件1的内容作为标准输入,把文件2作为标准输出。
输出重定向:(通俗的讲,重定向输出就是把要输出的文件信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏),在linux中,默认的标准输出设备是控制台(或称为显示器),用户输出的信息默认情况下都会显示到控制台
&表示全部文件,文件不管对错,1表示标准输出文件,2表示标准错误输出。
类型
符号
作用
标住输出重定向
命令 > 文件
以覆盖方式,把命令的正确输出内容输出到指定的文件或设备当中
标住输出重定向
命令 >> 文件
以追加方式,把命令的正确输出内容输出到指定的文件或设备当中
标准错误输出重定向
错误命令2 > 文件
以覆盖方式,把命令的错误输出输出到指定的文件或设备当中
标准错误输出重定向
错误命令2 >> 文件
以追加方式,把命令的错误输出输出到指定的文件或设备当中
正确输出和错误输出同时保存
命令 > 文件 2>&1
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
正确输出和错误输出同时保存
命令 >> 文件 2>&1
以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
正确输出和错误输出同时保存
命令 &> 文件
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
正确输出和错误输出同时保存
命令 &>> 文件
以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
正确输出和错误输出同时保存
命令 >> 文件1 2>>文件2
把正确的输出追加到文件1中,把错误的输出追加到文件2中。
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到**/dev/null**中
[root@localhost ~]$ command > dev/null
多命令执行符
作用
格式
;
命令1 ;命令2
多个命令顺序执行,命令之间没有任何逻辑联系
&&
命令1 && 命令2
当命令1正确执行( = 0 ) , 则 命 令 2 才 会 执 行 当 命 令 1 执 行 不 正 确 ( =0),则命令2才会执行 当命令1执行不正确( =0),则命令2才会执行当命令1执行不正确(≠0),则命令2不会执行
ll
命令1 || 命令2
当命令1执行不正确( ≠ 0 ) , 则 命 令 2 才 会 执 行 当 命 令 1 正 确 执 行 ( ≠0),则命令2才会执行当命令1正确执行( =0),则命令2才会执行当命令1正确执行(=0),则命令2不会执行
[root@localhost ~]$ vim test.sh
#!/bin/bash
echo “hello world”
两种方式执行shell脚本
第一种:给文件增加执行权限
[root@localhost ~]$ chmod u+x test.sh
[root@localhost ~]$ ./test.sh #绝对路径或相对路径执行
第二种(了解):通过Bash调用执行脚本
[root@localhost ~]$ bash test.sh
什么是变量?
在一个脚本周期内,其值可以发生改变的量就是变量。
在定义变量时,有一些规则需要遵守:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
等号左右两侧不能有空格,可以使用下划线“_”,变量的值如果有空格,需要使用单引号或双引号包括。如:“test=“hello world!””。其中双引号括起来的内容“$”,“(”和反引号都拥有特殊含义,而单引号括起来的内容都是普通字符。
不能使用标点符号,不能使用bash里的关键字(可用help命令查看保留关键字)。
环境变量建议大写,便于区分
如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含" 变 量 名 " 或 用 变量名"或用 变量名"或用{变量名}包含变量名。
[root@localhost ~]$ test=123
[root@localhost ~]$ test=" t e s t " 456 [ r o o t @ l o c a l h o s t ] test"456 [root@localhost ~] test"456[
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。