十五、shell编程
1、Shell是什么
1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。(将人类语言翻译成机器能识别的二进制代码)
2)Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
2、Shell的分类
1)Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。Bourne家族主要包括sh、ksh、Bash、psh、zsh;
2)CShell:CShell主要在BSD版的Unix系统中使用,其语法和C语相类似而得名。C家族主要包括:csh、tcsh
3)Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。
3、/etc/shells 查看Linux支持的Shell
4、常用命令
1)echo 输出
语法 echo [选项] [输出内容]
选项:
-e:支持反斜线控制的字符转换
控制字符 |
作用 |
\\ |
输出\本身 |
\a |
输出警告音 |
\b |
退格键,也就是向左删除键 |
\c |
取消输出行末的换行符。和“-n”选项一致 |
\e |
ESCAPE键 |
\f |
换页符 |
\n |
换行符 |
\r |
回车键 |
\t |
制表符,也就是Tab键 |
\v |
垂直制表符 |
\0nnn |
按照八进制ASCll码表输出字符。其中0为数字零,nnn是三位八进制数 |
\xhh |
按照十六进制ASCll码表输出字符。其中hh是两位十六进制数 |
2)脚本执行
◆赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
◆通过Bash调用执行脚本
bash hello.sh
3)历史命令
历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改histsize
语法:history [选项] [历史命令保存文件]
选项:
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件 家目录/.bash history
历史命令的调用:
◆使用上、下箭头调用以前的历史命令
◆使用“!n” 执行第n条历史命令
◆使用“!!” 执行上一条命令
◆使用“!字串” 执行最后一条以该字串开头的命令
4)命令与文件补全
在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Eab”键就会自动进行补全
5)命令别名
alias别名=原命令 设定命令别名
alias 查询命令别名
修改 /root/.bashrc 让别名永久生效
unalias 别名 删除别名
命令执行时顺序
1第一顺位执行用绝对路径或相对路径执行的命令。
2第二顺位执行别名。
3第三顺位执行Bash的内部命令。
4第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
6)Bash常用快捷键