1.Bash特性
查看linux支持的shell脚本类型
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
最早sh就叫sh,也叫bsh,发展来自与B语言,之后出现了Csh,它类似于c语言,在csh的基础之上出现了ksh,但是ksh为商业版,所有在Linux系统出现后,就开发了bash,集合了sh,csh以及ksh的优点;
现在最新的shell编译器也有zsh,但是使用较少;
1. 因为Linux是多用户,多进程的;所以每个用户应用的程序是相同的,但是进程是不一样的;进程可以理解为同一程序的克隆;它支持每个用户对自己的bash进程进行修改,但是实际上使用的bash程序都是一样的; Linux系统如何来区分每个用户的bash进程能,这就是通过pid来进行区分;
2 bash的特性:命令行的处理:ctrl+a ctrl+e ctrl+u ctrl+l ctrl+w ctrl+k
Ctrl+u 删除光标前的字符
Ctrl+k 删除光标后的字符
Ctrl+w 以空格为分隔符,去删除文件
Ctrl+r 进入一个交互界面,搜索最近一次使用的命令(要输入string)
命令历史:history
-c
-d 500
-d 500 10
-w //保存到家目录的.bash_history文件中去,这样的话,即使重启,或者-c清楚,也会保留history的命令记录
命令别名
alias
unalias
命令的替换
$(命令)
# echo "today is $(date)"和``实现的功能相同
# echo "today is `date`"
``:强制转意
Tab键的应用
1 补全命令
2 补全路径
当输入后需要补全的命令或者路径不是唯一的时候,所有选项都会显示出来;
当需要显示的选项过多时,会提示;
文件的通配符
*
?
[]
^
2.正则表达式
//转意字符
^ //以什么开头
$ //以什么结尾
[] //匹配在[]内某个字符,指定范围,[^0-9] 代表取反
[ - ] //输入[ - ]所标记的范围字符
. //某一个任意字符
* //0个或者多个任意的字符
{n,m}//匹配前一个字符或表达式n次到m次
{n,}//最少n次
{n} //只有n次
{,m}//最多m次
Grep “^\$” 文件名 //以$开头
3.扩展正则表达式
+ //匹配前一个字符或一次以上
? //匹配前一个字符或表达式0次一次
| //或
()//分组