bash内置命令:bash 通配符 扩展通配符 rhce学习bash linux shell shell编程 shell脚本
type
fc
alias
如果想让我们所做的别名继续生效的话,那么我们要写入到.bashrcbash 通配符 扩展通配符 rhce
有很多的shell内置的命令,如果我们想关闭某个命令的话,那么就可以使用
enable:用来开启或者关闭某个内置命令的功能
*和?
*匹配所有的、任意长度的字符(匹配不了隐藏文件)
ls*—>显示当前目录下面所有的非隐藏文件
?:匹配一个字符,是一个不是0个,也不是多个,只能匹配一个
[]:匹配一个字符,不是0个,也不是多个
数字:[0-9]-是到的意思
字母:[a-z][A-Z][a-zA-Z]
类:
[[:alnum:]]:所有的字母和数字
[[:alpha:]]代表英文大小写字母a-zA-Z
[[:blank:]]代表空格键与[Tab]按键两者
[[:digit:]]:表示数字[0-9]
![1. bash简介及通配符、扩展通配符 bash for i in 1 100](http://img.aihuau.com/images/31101031/31074438t012ab10f41de2718c7.png)
[[:space:]]
[[:lower:]]:表示小写字母的[a-z]
[[:upper:]]:表示大写字母[A-Z]
以上我们所做的这些都是bash给我们提供的一些功能。这些功能我们可以选择性的开启或者关闭
set-o
1.noclobber现在是off的,就说明我们现在可以执行覆盖(>)
set-o功能
如果想关闭的话就是set+o功能
set+onoclobber
关闭通配符功能:set-onoglob
关闭通配符:
shell选项可以改变shell的工作模式
shelloptions==>shopt
删除的时候是删除不了隐藏文件的
*不会匹配隐藏文件
直接删除,是删除不了隐藏文件的,因为*根本不能匹配隐藏文件
现在想匹配:shopt来更改shell的属性
shopt-s功能:启用某个功能
shopt-u功能;关闭某个功能
shopt-sdotglob
shopt-udotglob
文件名的扩展:
在linux里表示硬盘使用的sdx(x的取值范围是a-z),如果说硬盘数量太多sdz,现在还有几块硬盘,如何表示?sdaa,sdab,sdac….sdaz,sdba,sdbb。
电脑里有很多的硬盘,我现在想对所有的硬盘来进行操作(不是对分区)。我如何表示所有的硬盘?
如果说sdx,sdxy?
sda[a-z]?—>sdax就不能把sdasdb匹配出来
sda?–>sdabsda2,又不想匹配分区所以sda2不能显示
如果想实现这种功能的话,我们可以使用扩展的通配符.
如果想显示多个多个字母的话:
shopt-sextglob;lssd+([a-z])
要查找出来sd后面有多个字母的,这样就把sd后面有数字的那些全部排出了.
有了extglob,可以匹配更多的模式
?():括号里的值可以有0个或者1个
?的意思是后面括号里所表示的内容要出现1次或者0次
*():括号里的值可以是0个或者多个
+():括号里的值可以是1个或者多个
@():匹配括号里出现一次的情况
要把那些abc后面出现一次mp3或者txt的文件找出来。是一次,不能是多次
所以abc.txt.txt就没有匹配,因为它出现里两次txt。
!():与@()相反:课后题自己思考
shopt-p
*表示匹配所有的字符,但如果匹配某类之外其他所有的字符,可以是GLOBIGNORE
*匹配所有的,不管你是什么字符。
我现在不想匹配数字,也就是sda*,这个*要表示除了数字以外其他所有的字符
GLOBIGNORE=sda*[0-9]
*匹配的时候,要把GLOBIGNORE所代表的值给去除
对应视频下载地址:http://www.rhce.cc/?p=962