1. bash简介及通配符、扩展通配符

当我们执行一些命令的时候,很多的命令是由bash提供的。如果我们想知道某个命令是否是由bash内置的命令的话,我们可以使用type

bash内置命令:bash  通配符 扩展通配符 rhce

type

1. bash简介及通配符、扩展通配符

fc

alias

1. bash简介及通配符、扩展通配符

1. bash简介及通配符、扩展通配符

1. bash简介及通配符、扩展通配符

如果想让我们所做的别名继续生效的话,那么我们要写入到.bashrc bash 通配符 扩展通配符 rhce

1. bash简介及通配符、扩展通配符

有很多的shell内置的命令,如果我们想关闭某个命令的话,那么就可以使用

enable :用来开启或者关闭某个内置命令的功能

1. bash简介及通配符、扩展通配符

1. bash简介及通配符、扩展通配符

1. bash简介及通配符、扩展通配符

*和?
*匹配所有的、任意长度的字符(匹配不了隐藏文件)

ls *  ---> 显示当前目录下面所有的 非隐藏文件

1. bash简介及通配符、扩展通配符

?: 匹配一个字符,是一个不是0个,也不是多个,只能匹配一个

[] :匹配一个字符,不是0个,也不是多个

数字:[0-9] -是到的意思

1. bash简介及通配符、扩展通配符

字母:[a-z] [A-Z] [a-zA-Z]

1. bash简介及通配符、扩展通配符

类:

[[:alnum:]]: 所有的字母和数字

1. bash简介及通配符、扩展通配符

[[:alpha:]] 代表英文大小写字母 a-z A-Z

1. bash简介及通配符、扩展通配符

[[:blank:]] 代表空格键与 [Tab] 按键两者

1. bash简介及通配符、扩展通配符

[[:digit:]] :表示数字 [0-9]

1. bash简介及通配符、扩展通配符

[[:space:]]

[[:lower:]]:表示小写字母的[a-z]

1. bash简介及通配符、扩展通配符

[[:upper:]] :表示大写字母[A-Z]

1. bash简介及通配符、扩展通配符

以上我们所做的这些都是bash给我们提供的一些功能。这些功能我们可以选择性的开启或者关闭

set -o

1. bash简介及通配符、扩展通配符

1. noclobber 现在是off的,就说明我们现在可以执行 覆盖(>)

1. bash简介及通配符、扩展通配符

set -o 功能

如果想关闭的话就是set +o 功能

set +o noclobber

1. bash简介及通配符、扩展通配符


关闭通配符功能: set -o noglob

关闭通配符:

1. bash简介及通配符、扩展通配符

1. bash简介及通配符、扩展通配符

shell选项可以改变shell的工作模式

shell options ==> shopt

删除的时候是删除不了隐藏文件的

*不会匹配隐藏文件

1. bash简介及通配符、扩展通配符

1. bash简介及通配符、扩展通配符

直接删除,是删除不了隐藏文件的,因为*根本不能匹配隐藏文件

现在想匹配:shopt来更改shell的属性

shopt -s 功能:启用某个功能

shopt -u 功能; 关闭某个功能

1. bash简介及通配符、扩展通配符

shopt -s dotglob

shopt -u dotglob

1. bash简介及通配符、扩展通配符

文件名的扩展:

linux里表示硬盘使用的sdxx的取值范围是a-z),如果说硬盘数量太多sdz,现在还有几块硬盘,如何表示?sdaa, sdab, sdac....sdaz, sdba, sdbb

电脑里有很多的硬盘,我现在想对所有的硬盘来进行操作(不是对分区)。我如何表示所有的硬盘?

如果说sdx, sdxy?

sda[a-z]?   ---> sdax 就不能把sda sdb匹配出来

sda? --> sdab sda2,又不想匹配分区所以sda2不能显示

如果想实现这种功能的话,我们可以使用扩展的通配符.

如果想显示多个多个字母的话:

shopt -s extglob; ls sd+([a-z])

1. bash简介及通配符、扩展通配符

要查找出来sd后面有多个字母的,这样就把sd后面有数字的那些全部排出了.

有了extglob,可以匹配更多的模式

?():括号里的值可以有0个或者1

1. bash简介及通配符、扩展通配符

?的意思是后面括号里所表示的内容要出现1次或者0

1. bash简介及通配符、扩展通配符

*():括号里的值可以是0个或者多个

1. bash简介及通配符、扩展通配符

+():括号里的值可以是1个或者多个

@():匹配括号里出现一次的情况

1. bash简介及通配符、扩展通配符

1. bash简介及通配符、扩展通配符

要把那些abc后面出现一次mp3或者txt的文件找出来。是一次,不能是多次

所以abc.txt.txt就没有匹配,因为它出现里两次txt

!():与@()相反:课后题自己思考

shopt -p

*表示匹配所有的字符,但如果匹配某类之外其他所有的字符,可以是GLOBIGNORE

1. bash简介及通配符、扩展通配符

*匹配所有的,不管你是什么字符。

我现在不想匹配数字,也就是sda*,这个*要表示除了数字以外其他所有的字符

1. bash简介及通配符、扩展通配符

GLOBIGNORE=sda*[0-9]

*匹配的时候,要把GLOBIGNORE所代表的值给去除

对应视频下载地址:http://www.rhce.cc/?p=962

相关新闻

发表回复

Please Login to Comment

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

                                                                                                                                    RHCE9学习指南全部更新完成,点击阅读