今天小编要跟大家分享的文章是关于Linux职场技术篇的文章,Linux

shell中元字符、转义符、通配符的使用方法。相信喜欢Linux系统的小伙伴对此都不会陌生,下面就来和小编一起看一看,这些字符的使用方法吧。

说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例:

[chengmo@localhost ~/shell]$ ls

a.txt b.txt c.old

[chengmo@localhost ~/shell]$ ls *.txt

a.txt b.txt

[chengmo@localhost ~/shell]$ ls d*.txt

ls: 无法访问 d*.txt: 没有那个文件或目录

从上面这个实例,不知道大家有没有发现问题呢。我们先了解一下,通配符相关知识,再分析下这个实例吧。

一、linux shell通配符(wildcard)

通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在

命令的“参数”里(它不用在命令名称里, 也不用在

操作符上)。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符实际上就是一种shell实现的路径扩展功能。在

通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。

我们回过头分析上面命令吧:在第2个命令中,*.txt 实际shell搜索文件,找到了符合条件的文件,命令会变成:ls a.txt b.txt

,实际在执行ls 时候传给它的是a.txt b.txt .

而命令3,d*.txt 由于当前目录下面没有这样的文件或目录,直接将”d*.txt” 作为ls 参数,传给了 ls .这个时候”*” 只是一个普通的

ls 参数而已,已经失去了它通配意义。由于找不到文件,所以会出现:无法访问提示!

了解了shell通配符,我们现在看下,shell常见通配符有那一些了。

shell常见通配符:

需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。把通配符理解为shell

特殊代号字符就可。而且涉及的只有,*,? [] ,{} 这几种。

二、shell元字符(特殊字符 Meta)

shell 除了有通配符之外,由shell 负责预先先解析后,将处理结果传给命令行之外,shell还有一系列自己的其他特殊字符。

加入”*” 都是作用在命令名直接。可以看到shell

元字符,基本是作用在命令上面,用作多命令分割(或者参数分割)。因此看到与通配符有相同的字符,但是实际上作用范围不同。所以不会出现混淆。

以下是man bash 得到的英文解析:

metacharacter

A character that, when unquoted, separates words. One of the following:

| & ; ( ) < > space tab

control operator

A token that performs a control function. It is one of the following symbols:

|| & && ; ;; ( ) |

三、shell转义符

有时候,我们想让 通配符,或者元字符 变成普通字符,不需要使用它。那么这里我们就需要用到转义符了。 shell提供转义符有三种。

man bash 英文解释如下:

There are three quoting mechanisms: the escape character, single quotes,

and double quotes.

实例:

[chengmo@localhost ~/shell]$ ls \*.txt

ls: 无法访问 *.txt: 没有那个文件或目录

[chengmo@localhost ~/shell]$ ls '*.txt'

ls: 无法访问 *.txt: 没有那个文件或目录

[chengmo@localhost ~/shell]$ ls 'a.txt'

a.txt

[chengmo@localhost ~/shell]$ ls *.txt

a.txt b.txt

可以看到,加入了转义符 “*”已经失去了通配符意义了。

四、shell解析脚本的过程

看到上面说的这些,想必大家会问到这个问题是,有这么想特殊字符,通配符,那么 shell在得到一条命令,到达是怎么样处理的呢?我们看下下面的图:

如果用双引号包括起来,shell检测跳过了1-4步和9-10步,单引号包括起来,shell检测就会跳过了1-10步。也就是说,双引号

只经过参数扩展、命令代换和算术代换就可以送入执行步骤,而单引号转义符直接会被送入执行步骤。而且,无论是双引号转义符还是单引号转义符在执行的时候能够告诉各个命令自身内部是一体的,但是其本身在执行时是并不是命令中文本的一部分。

以上就是小编今天为大家分享的关于Linux

shell中元字符、转义符、通配符的使用方法,希望本篇文章能够对正在学习和使用Linux系统的小伙伴们有所帮助,想要了解更多Linux相关知识记得关注达内Linux培训官网。

作者:程默

www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html

linux中分号转义字符,Linux职场技术篇-Linux shell中元字符、转义符、通配符的使用方法...相关推荐

  1. 视频教程-职场微技能 Word中的锦囊妙计-Office/WPS

    职场微技能 Word中的锦囊妙计 优就业互联网营销首席讲师 精通各大搜索引擎原理,对SEO有深入的研究和独到见解,擅长站内与站外优化与策略部署.熟悉常用的Web项目开发技术,擅长营销型.成交型网站策划 ...

  2. baq在聊天中啥意思_职场中的“老实人”如何实现逆袭,得到领导的重用?

    朋友说他最近很郁闷,喊我出来喝茶. 一起坐下以后,他开口便说:"我准备辞职了,你看看有什么好的坑没,给介绍个". 听到这个说法,我一时感到很惊讶. 之所以出乎意料,因为我知道我这朋 ...

  3. 在职场中,什么是职场大忌?

    1.在领导面前尽量不要耍小聪明,你的小聪明在领导面前只是小菜一碟,你要把自己当成正在考试的学生,而领导就是监考的老师. 2.千万不要在领导面前发牢骚,对你绝对没好处:也不要在领导的心腹面前说太多,因为 ...

  4. oracle视图执行脚本,Sh脚本中查询Oracle v$视图时需要在$号前加转义符“\”

    DBA经常会部署一些sh脚本登陆Oracle数据库查询v$动态视图得到一些东西来实际管理自动化的目的,但在sh脚本中写ORACLE SQL语句时,如果语句查询v$视图,直接写v$XXXX是不能成功的, ...

  5. 职场分享:工作中我们需要进行情绪管理

    情绪不但可以管理,而且它比其他的事情你的自主性更高,因为我们是自己情绪的真正主宰. 以前,经常会听到长辈们喜欢说穷人孩子早当家.为什么?因为贫困和生计问题磨练了他们的意志和承受力,遇事时更能彰显这类人 ...

  6. python 自动收集经济数据_完结】数据分析思维案例实战92 用Python自动办公,做职场高手【更新中】91.一课经济...

    相信会看到这篇文章的每- -位朋友,都是有寻找这个课程来努力学习.提升自我的想法.怎么样更低成本找到这个课程进行学习变成了很多人的难题?那么就让我来帮你吧. 那么今天的正题就是我们怎么样才能低成本找到 ...

  7. 从商鞅变法中领会出的职场感悟

    商鞅变法使得秦在战国七雄中强势崛起,但是也由于商鞅其人执法严谨.法不避私的一贯作风,加之其出卖魏国好友胜之不武的鸿门宴做法,使得商鞅在执政的十几年中得罪了不少政治人物,他人对商鞅的才干妒忌,使其成为诸 ...

  8. word 编辑过程中变为只读_职场小贴士(十一)办公软件小窍门之word篇

    点击蓝字 关注我们 办公软件小窍门 第一期 Word篇 ▶WPS Office是由金山办公软件出品的Office软件,可以实现办公软件最常用的文字.表格.演示等多种功能,办公效率要提高,巧用Offic ...

  9. 开会时重点总是记不全,职场前辈教我用这几个录音转文字方法

    会议记录的基本要求是准确写明会议名称,开会时间.地点,会议性质.还需要详细会议上的发言和有关动态.会议发言的内容是记录的重点.其他会议动态,如发言中插话.笑声.掌声,临时中断以及别的重要的会场情况等, ...

  10. 【SQL数据库】数据库的创建、查询、插入等操作使用方法(结合黑皮书教材网站(db-book中的例子)在MySQL Workbench和shell中实现查询操作

    SQL 数据库的创建.查询.插入等操作使用方法(结合黑皮书教材网站中的例子) 注:数据来源: https://www.db-book.com/university-lab-dir/sample_tab ...

最新文章

  1. Machine Learning | (8) Scikit-learn的分类器算法-随机森林(Random Forest)
  2. java产生随机数(学习)
  3. mac系统做云服务器,mac系统的云服务器
  4. 【Python】分享几个用Python给图片添加水印的方法,简单实用
  5. linux7.0怎么设置中文,CentOS 7 yum安装zabbix 设置中文界面
  6. 使用gradle-android搭建jenkins slave构建机器常见构建问题(一)
  7. 前端学习(2211):网络请求模块的选择--axios的配置相关
  8. 【转】syslog服务和syslogd守护进程
  9. linux中的运行模式,Linux系统运行模式介绍
  10. 个人品牌遇到危机怎么办?
  11. mysql的binlog意义_带你解析MySQL binlog
  12. andriod搭建自己的轮询框架
  13. 支付宝第三方登录接口调用
  14. iphone导出视频 无法连接到设备_如何解决爱思助手无法识别设备或连接超时等故障?...
  15. 操练Draco的代码
  16. 美国伊利诺伊大学香槟分校计算机专业,美国伊利诺伊大学香槟分校的专业排名分析...
  17. 全新三维成像技术:我们离科幻故事里的立体投影又近了一步
  18. 灭霸级——如何选择最适合你的Linux发行版
  19. power app 与 flow 咋实现前后端互动嘞
  20. 我终于读懂了适配器模式。。。

热门文章

  1. Python - How to make a chain of function decorators?
  2. 我奋斗了18年,不是为了和你一起喝咖啡
  3. cpu空载50度,大热天,cpu都上50度了! -
  4. python爬取微信好友教程_Python爬取微信好友
  5. 请输入一个年份和月份判断该月份的天数,注:闰年2月29天、平年2月28天。
  6. 速读原著-TCP/IP(Archie、WAIS、Gopher、Veronica和WWW)
  7. OPPO消息推送服务器,OPPO开放平台消息推送申请教程
  8. App中使用微信公众号的模版消息来进行消息推送
  9. 智课雅思词汇---二十三、动词性后缀-ate-fy-ish-ize
  10. 40163 php,微信支付授权获取 openId {quot;errcodequot;:40163,quot;errmsgquot;:quot;code been used, hints:...