shell编程
shell:本质上就是计算机上的一个程序,这个程序在计算机启动的时候就自动启动。用来跟用户进行交互的
shell 的分类:
GUI:gnome,KDE,Xface
GLI:sh、csh、ksh、bash、tcsh、zsh
进程:
在每个进程眼中看来,当前主机上只存在内核和当前 进程。进程是程序的实例,进程是程序的副本
bash的特性
1、命令历史
2、管道、重定向
3、命令别名
4、命令行展开
5、命令行编辑
6、文件名通配
7、变量
8、编程
命令行编辑
光标跳转
Ctrl +a :跳到命令行首
Ctrl +e:跳到命令行尾
Ctrl +u:删除光标至命令行首
Ctrl +k:删除光标至命令行尾
命令历史:
history
功能:查看命令行历史
选项:
-c:删除全部命令历史
-d n【m】 :删除第n个历史【开始的m个命令】
-w:保存缓存中的命令历史至文件
!!:执行上一条命令
!n:执行命令历史的第n条历史
!-n:执行命令历史的倒数第n条命令
!STRING:执行命令历史中的以STRING开头的命令
!$:引用上一条命令的最后的 一个字段
Alrt+a\esc .
命令补全:Tab键,两次Tab键将显示以你输入的命令的字母开头的所有的命令【搜索路径下】
路径补全:跟命令用法一样【在你给出的路径下查找路劲】
命令别名
alias
功能:定义和查看命令别名,在shell中定义的命令别名仅在当前的shell的生命周期。即该程序关闭之后即自动失效
alias COMMANDALIAS 'command'
unalias:
功能:撤销命令别名
命令替换
$(command) 反引号:`COMMAND`
bash支持的引号:
``:命令替换
“”:弱引用,可以实现变量替换
‘’:强引用,不可以实现变量替换
文件名通配;globbing
*:任意长度的任意字符
?:单个任意字符
[]:匹配指定范围内的任意单个字符
[ABC],[a-m],[a-z],[A-Z,][a-zA-Z0-9]
[^]:配指定范围之外的任意单个字符
[:space:]:所有的空白字符
[:punct:]:所有的标点符号
[:lower:]所有小写字母
[:upper:]所有的大写字母
[:alpha:]:大小写字母
[:digit:] 数字
[:alnum:]数字和字母