Linux 命令行通配符及转义符的实现

我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令会是:

[root@linuxprobe ~]# ls /dev/sda
[root@linuxprobe ~]# ls /dev/sda1
[root@linuxprobe ~]# ls /dev/sda2
[root@linuxprobe ~]# ls /dev/sda3

但有些时候确实不知道分区的

通配符

星号(*)代表匹配零个或多个字符

huanyu@ubuntu:~$ ls -l /dev/sda*

问号(?)代表匹配单个字符

huanyu@ubuntu:~$ ls -l /dev/sda?

中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符

huanyu@ubuntu:~$ ls -l /dev/sda[0-9]
huanyu@ubuntu:~$ ls -l /dev/sda[135]

示例:

查看sda开头的所有设备文件:

[root@linuxprobe ~]# ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2

查看sda后面有一个字符的设备文件:

[root@linuxprobe ~]# ls /dev/sda?
/dev/sda1 /dev/sda2

查看sda后面包含0-9数字的设备文件:

[root@linuxprobe ~]# ls /dev/sda[0-9]
/dev/sda1 /dev/sda2

查看sda后面是1或3或5的设备文件:

[root@linuxprobe ~]# ls /dev/sda[135]
/dev/sda1

转义符

反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串

huanyu@ubuntu:~$ echo "Price is \$$PRICE"

反引号(``):把其中的命令执行后返回结果

huanyu@ubuntu:~$ echo `uname -a`

示例

定义名称为PRICE的变量值为5:

[root@linuxprobe ~]# PRICE=5

想要输出”价格是5″:

[root@linuxprobe ~]# echo "Price is $PRICE"
Price is 5

想要输出”价格是$5″,但因为美元符号与代表变量取值的$符号冲突了,所以报错了:

[root@linuxprobe ~]# echo "Price is $$PRICE"
Price is 3767PRICE

添加一个反斜杠,将第一个$符号转义:

[root@linuxprobe ~]# echo "Price is \$$PRICE"
Price is $5

使用单引号,变量将不再被取值:

[root@linuxprobe ~]# echo 'Price is \$$PRICE'
Price is \$$PRICE

执行uname -a后可以查看到本机内核的版本与架构信息(反引号里面的命令会被执行):

[root@linuxprobe ~]# echo `uname -a`
Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Linux命令行和shell脚本编程宝典 Richard Blum

    第一个脚本文件 复制代码 代码如下: #!/bin/bashecho "This is my first bash code!"exit 0 重定向符号和数学计算 复制代码 代码如下: #!/bin/bashecho -n "The time and date are: "datevalue1=100  #等号前后不允许出现空格value2=$value1echo -n "value1="echo $value1echo -n "val

  • linux shell命令行选项与参数用法详解

    问题描述:在linux shell中如何处理tail -n 10 access.log这样的命令行选项?在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景.1,直接处理,依次对$1,$2,...,$n进行解析,分别手工处理:2,getopts来处理,单个字符选项的情况(如:-n 10 -f file.txt等选项):3,getopt,可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等).总结:小脚本手工处理即可,getopt

  • Linux终端命令行的常用快捷键详解

    history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有string字符串的最新命令 Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令 Ctrl+s 与Ctrl+r类似,只是正向检索 Alt+< 历史列表第一项 Alt+> 历史列表最后一项 Ctrl+f 光标向前移动一个字符,相当与-> Ct

  • linux shell命令行参数用法详解

    习惯使用linux命令行来管理linux系统,例如: 复制代码 代码如下: $ date 二 11 23 01:34:58 CST 1999  $ 用户登录时,实际进入了shell,它遵循一定的语法将输入的命令加以解释并传给系统.命令行中输入的第一个字必须是一个命令的名字,第二个字是命令的选项或参数,命令行中的每个字必须由空格或TAB隔开,格式如下:  复制代码 代码如下: $ Command Option Arguments 一,选项和参数 选项是包括一个或多个字母的代码,它前面有一个减号(减

  • Linux 命令行通配符及转义符的实现

    我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令会是: [root@linuxprobe ~]# ls /dev/sda [root@linuxprobe ~]# ls /dev/sda1 [root@linuxprobe ~]# ls /dev/sda2 [root@linuxprobe ~]# ls /dev/sda3 但有些时候确实不知道分区的 通配符 星号(*)代表匹配零个或多个字符 huanyu@ubuntu:~$ ls -l /dev/sda* 问号(?)代表匹配单个

  • windows中dos批处理之命令特殊符号通配符与转义符(推荐)

    目录 常用特殊符号 通配符(?和*) 转义符 对批处理中常用符号的详细解 1.@ 2.%.%% 3.: 和 :: 4.~ 5.>.>> 6.| 7.^ 8.& 9.&&.|| 10.() 11.+.-.*./ 12.equ.neq.lss.leq.gtr.geq 文章进行重新排版,并做了部分补充.所有命令均在win7 x64 中文旗舰版上进行测试. 常用特殊符号 @命令行回显屏蔽符 %批处理变量引导符 > 重定向符 > > 重定向符 <.&

  • 详解Linux命令行快捷键

    Ctrl+a:光标移到行首. Ctrl+e:光标移到行尾. Ctrl+l:清除终端.该快捷操作与在命令行键入clear作用相同. Ctrl+d:删除光标后一个字符: Ctrl+u:清除当前行.假如在命令行下工作,使用这一快捷操作可以清除从光标处到行首的字符. Ctrl+Alt+功能键之一会显示一个新屏幕.根据默认设置,从F1到F6是Shell提示屏幕. Ctrl+K:删除从光标到行末所有字符. 向上和向下箭头:显示命令历史. bash保存着以前键入过的命令的列表,这一列表被称为命令历史表. Ta

  • 在Linux命令行终端中使用python的简单方法(推荐)

    Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: Ctrl + Alt + t 关闭名命令行窗口 关闭命令行窗口的快捷键如下: Ctrl + d 进入python环境 在命令行中直接输入python即进入了python的编辑环境.进入环境后最明显的提示是:光标由-$变成>>>. 退出python环境 使用ctrl +d的方式退出python

  • linux命令行批量创建目录详解

    linux命令行批量创建目录详解 以前一直用-p创建目录链,觉得很方便了. 在空目录/opt/app/myapp里创建src,再创建main,再创建java mkdir -p /opt/app/myapp/src/main/java 没想到还可以这样玩##¥%--&*( root@vm1:~/tmp# mkdir -p src/{{main,test}/{java,resources},main/webapp} root@vm1:~/tmp# tree . └── src ├── main │

  • linux命令行下使用curl命令查看自己机器的外网ip

    Linux命令行下如何查看自己机器的外网ip?可以在命令行下使用curl命令实现这个功能,试一下下面的命令吧 复制代码 代码如下: curl ifconfig.me 输入此条命令,就可以获取到本机的外网ip.

  • 在 Linux 命令行中使用 tcpdump 抓包的一些功能

    tcpdump 是一款灵活.功能强大的抓包工具,能有效地帮助排查网络故障问题. 以我作为管理员的经验,在网络连接中经常遇到十分难以排查的故障问题.对于这类情况, tcpdump 便能派上用场. tcpdump 是一个命令行实用工具,允许你抓取和分析经过系统的流量数据包.它通常被用作于网络故障分析工具以及安全工具. tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛.由于它是命令行工具,因此适用于在远程服务器或者没有图形界面的设备中收集数据包以便于事后分析.它可以在后台启动

  • 关于Linux命令行下的数学运算示例详解

    前言 有几个有趣的命令可以在 Linux 系统下做数学运算: expr . factor . jot 和 bc 命令. 可以在 Linux 命令行下做数学运算吗?当然可以!事实上,有不少命令可以轻松完成这些操作,其中一些甚至让你大吃一惊.让我们来学习这些有用的数学运算命令或命令语法吧. expr 首先,对于在命令行使用命令进行数学运算,可能最容易想到.最常用的命令就是 expr ( 表达式 expression .它可以完成四则运算,也可以用于比较大小.下面是几个例子: 变量递增 $ count

  • 在Linux 命令行终端分屏的两种工具

    下面介绍两种终端分屏工具:screen和tmux 一.使用screen分屏(只能上下分屏,不能左右分屏) (1)安装工具 在ubuntu系统中使用sudo apt-get install screen 安装screen工具 (2)使用工具 1,输入命令screen使用工具 2,上下分屏:ctrl + a  再按shift + s 3,切换屏幕:ctrl + a  再按tab键 4,新建一个终端:ctrl + a  再按c 5,关闭一个终端:ctrl + a  再按x (或直接按exit退出) 二

  • Linux 命令行工具解析和格式化输出 JSON的方法

    JSON 是一种轻量级且与语言无关的数据存储格式,易于与大多数编程语言集成,也易于人类理解 -- 当然,如果格式正确的话.JSON 这个词代表 J ava S cript O bject N otation,虽然它以 JavaScript 开头,而且主要用于在服务器和浏览器之间交换数据,但现在正在用于许多领域,包括嵌入式系统.在这里,我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非

随机推荐