http://www.rhce.cc/?p=1005

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

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

type

fc

alias

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

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

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

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

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

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

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

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

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

类:

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

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

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

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

[[:space:]]

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

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

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

set -o

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

set -o 功能

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

set +o noclobber

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

关闭通配符:

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

shell options ==> shopt

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

*不会匹配隐藏文件

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

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

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

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

shopt -s dotglob

shopt -u dotglob

文件名的扩展:

在linux里表示硬盘使用的sdx(x的取值范围是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])

要查找出来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所代表的值给去除

【转】 bash简介及通配符、扩展通配符 shopt -s extglob的更多相关文章

  1. 【转】Linux 技巧: Bash 参数和参数扩展

    重点看下清单7 现在,很多 Linux® 和 UNIX® 系统上都有 bash shell,它是 Linux 上常见的默认 shell.通过本文,您将了解到如何在 bash 脚本中处理参数和选项,以及 ...

  2. Bash中的数学扩展

    Bash只支持整数运算,不支持浮点运算.如果需要进行浮点运算,需要使用bc程序.Bash中的数学扩展有两种形式:$[ expression ]或$(( expression )) 例子:$echo $ ...

  3. Java 泛型方法、泛型类、通配符、通配符上下限

    泛型方法 泛型方法定义规则: 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前. 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开.一个泛型 ...

  4. bash基础——管道符、通配符

    1.多命令顺序执行 多命令顺序执行 格式 作用 ; 命令1 ; 命令2 多个命令之间没有任何逻辑联系 && 命令1&&命令2 逻辑与 当命令1正确执行,则命令2才会执行 ...

  5. shell-3.bash的基本功能:通配符和其他特殊字符

    1. 2.

  6. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  7. Bash简介

    Bash(GNU bourne-Again Shell)是一个为GNU计划编写的Unix shell,它是很多Linux平台默认的使用的shell. shell是一个命令解析器,是介于操作系统内核与用 ...

  8. Flask框架简介,常用扩展包及两大核心

    Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...

  9. bash简介1

    bash脚本语言文件格式 第一行#!/bin/bash :定义bash脚本解释器 注释信息:# 代码注释: 缩进,适度添加空白行 bash中的变量介绍: 局部变量  本地变量   环境变量  位置参数 ...

随机推荐

  1. [转载]VS2012程序打包部署详解

    上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...

  2. 解决win8 64位提示MSVCP71.DLL等组件缺失

    把压缩包里面的DLL解压,只需要把其实缺失DLL复制到C:\Windows\SysWOW64即可.压缩包包含MSVCP70.DLL.MSVCP71.DLL.MSVCR70.DLL.MSVCR71.DL ...

  3. FaceNet--Google的人脸识别(转)

    引入 随着深度学习的出现,CV领域突破很多,甚至掀起了一股CV界的创业浪潮,当次风口浪尖之时,Google岂能缺席.特贡献出FaceNet再次刷新LFW上人脸验证的效果记录. 本文是阅读FaceNet ...

  4. NIO的Selector

    参考自 Java NIO系列教程(六) Selector Java-NIO-Selector java.nio.channels.Selector NIO新功能Top 10(下) 出发点: 如何管理多 ...

  5. CodePage------Encoding 类支持的编码以及与这些编码关联的代码页(CodePage)

    Encoding 类 .NET Framework 4  表示字符编码. 继承层次结构 System.Object  System.Text.Encoding    System.Text.ASCII ...

  6. 在C++中调用DLL中的函数

    如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下 ...

  7. Innodb引擎 long semaphore waits

    上一篇介绍了因为子表过多,导致innodb crash的情况,但crash的原因是long semaphore waits.long semaphore waits又为何物? 背景:Innodb使用了 ...

  8. Innodb parent table open时导致crash

    case描述: innodb中,父表和子表通过foreign constraint进行关联, 因为在更新数据时需要check 外键constraint,如果父表被大量的子表reference, 那么在 ...

  9. mysql 读取硬盘数据

    innodb 的最小管理单位是页 innodb的最小申请单位是区,一个区 1M,内含64个页,每个页16K ,即 64*16K=1M, 考虑到硬盘局部性,每次读取4个区,即读4M的数据加载至内存 线性 ...

  10. Jquery动画第二部分

    效果图:     →→→→→→ <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...