shell通配符、特殊符号与转义符

通配符(wildcard)是由shell处理的(不是由所涉及到命令语句处理的),它只会出现在命令的"参数"里(它不用在命令名称,也不用在操作符上)


通配符


含义


*


匹配零个或多个字符



匹配任意单个字符


[c1-c2]


匹配c1到c2(如[0-9],[a-z])中的任意单一字符


[list]


匹配list中的任意单一字符


[^list]


匹配非list中的任意单一字符


{string1,string2,…}


匹配string1或string2…其中一个字符串(注意是花括号)

查看硬盘文件的相关权限属性

找出/etc/目录下以cron为开头的文件名

找出/etc/目录下文件名刚好是五个字符的文件名

找出/etc/目录下文件名开头非a到x字母的文件名

其他特殊符号Meta(shell元字符)


字符


说明


IFS


(内部域分割符)由 <space> 或 <tab> 或 <enter> 三者之一组成(我们常用 space )。


CR


由 <enter> 产生。


#


批注符号,这个最长被使用在script脚本当中,视为说明,其后的数据均不执行。


~


用户的主文件夹


=


设定变量。


$


作变量(变量前导符,即变量之前需要加的变量替代值)或运算替换


>,>>


重定向 stdout,分别是"替换"与"追加"。 *


<,<<


重定向 stdin,分别是"替换"与"追加"。 *


|


管道(pipe),分隔两个管道命令的界定。 *


&


重导向 file descriptor ,或将命令置于背景下执行(作业控制 job control)。 *


( )


在中间为子shell的执行与结束(将其内的命令置于nested subshell执行),或用于运算或命令替换。 *


{ }


在中间为命令块的组合(将其内的命令置于 non-named function 中执行),或用在变量替换的界定范围。


;


在前一个命令结束时,而忽略其返回值,继续执行下一个命令(组合连续执行,命令之间无任何逻辑上的关系,区分于管道命令)。 *


&&


在前一个命令结束时,若返回值为 true,继续执行下一个命令。 *


||


在前一个命令结束时,若返回值为 false,继续执行下一个命令。 *


!


执行 history 列表中的命令。*

加入"*" 的字符是作用在命令名之间的。

可以发现shell 元字符,基本是作用在命令上,用作多命令分割(或者参数分割)。

因此看到与通配符有相同的字符(如!),但是实际上作用范围不同。所以不会出现混淆。

=:设定变量,$:变量前导符

&:将命令变成背景下工作(后台执行,退出shell后进程会停止)

<http://www.cnblogs.com/TianFang/archive/2013/01/23/2872645.html>

使用jobs命令查看当前后台命令(状态:running运行、stopped暂停、terminated终止),当前打包压缩的job号为1

fg 1:调至前台继续运行(ctrl+z可使前台进程挂起放置背景(stopped状态))

bg 1:将一个后台暂停(stopped)的进程,变成后台执行(running)

kill %1:终止(terminated)后台进程

使用ps命令查看进程状态,当前打包压缩的进程号PID为4463、4467

kill 4464;kill 4467:终止tar、gzip后台进程

参考资料: <https://zhidao.baidu.com/question/1819125360697847748.html>

;(分号):组合连续执行命令,命令间无任何逻辑上的关系,仅按循序执行

command1 && command2:仅当command1命令执行成功后才会执行&&控制符后面的command2命令

command1 || command2:仅command1命令执行失败后才执行||控制符后面的 command2命令(若前一个命令command1执行成功,则command2不执行,也就是command1和command2总仅有一条命令执行)

特殊字符用法: <https://www.cnblogs.com/lidabo/p/4323979.html>

转义字符


字符


说明


‘‘(单引号)


又叫硬转义,其内部所有的shell 元字符、通配符的特殊意义都会被屏蔽。注意:不可以在两个单引号(硬转义)中间单独插入一个单引号,单引号必须成对出现。


""(双引号)


又叫软转义,类似于单引号(硬转义),但其内部不会屏蔽`(单引号)、\(反斜杠)、$(变量前导符)这三个字符的特殊意义。


\(反斜杠)


又叫转义,去除其后紧跟的元字符或通配符的特殊意义。


``(反引号)


用于命令代替,把其中的命令执行后返回一个结果(就是先执行的命令,然后其执行结果将作为外部命令的输入信息。也可使用$()替代)

‘‘单引号(硬转义)

""双引号(软转义)

\反斜杠(转义)

使用硬转义(一对‘‘单引号)输出‘单引号:$‘\‘‘("$"+"单引号‘"+"\"+"单引号‘"+"单引号‘")

``反引号(最好使用$()代替)(``命令替换操作会创建一个子shell来运行对应的命令)

花括号{}的使用技巧:通过花括号扩展可以生成命令行或脚本所需要的字符串

  1. 括号中可以包含连续的序列或使用逗号分隔的多个项目;

  2. 连续的序列包括一个起点与一个终点,并使用".."(两个点)分隔。

理论上,文件名尽量不要使用到本笔记所提到的上述字符

参考资料: <http://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html>

$的作用类似于C语言中的指针

原文地址:https://www.cnblogs.com/dayoyan/p/8651887.html

时间: 2024-10-10 04:09:28

shell通配符、特殊符号与转义符的相关文章

linux shell通配符、元字符、转义符

Linux Shell 通配符.元字符.转义符使用实例介绍 说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1 1 2 3 4 [[email protected] ~/shell]$ ls a.txt  b.txt  c.old #2 1 2 3 4 [[email protected] ~/shell]$ ls *.txt a.txt  b.txt #3 1 2 [[email protected] ~/shell]$ ls d*.txt ls: 无法访

linux中的通配符、元字符、转义符

linux中的通配符.元字符.转义符 linux中的通配符元字符转义符 shell命令的构成 通配符 元字符meta 转义符 example reference shell命令的构成 每条linux命令中的每一个character都是下面两种之中的一个: - literal:普通纯文本 - 保留字:通配符.元字符.转义字符 通配符 通配符是由shell处理的(不是由所涉及到命令语句处理的.事实上我们在shell各个命令中也没有发现有这些通配符介绍), 它仅仅会出如今命令的"參数"里(它

linux shell转义符 元字符 通配符 特殊字符汇总

一.linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在命令的"参数"里(它不用在命令名称里,也不用在操作符上).当shell在"参数"中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行替换(路径扩展):否则就将该通配符作为一个普通字符传递给"命令",然后再由命令进

11.C#中的转义符和@符号的作用

转义符 转义符是指一个'\'+一个特殊的字符,组成的一个具有特殊意义的字符. \n:  表示换行. namespace _11.转义符 { class Program { static void Main(string[] args) { Console.WriteLine("窗前明月光,\n疑是地上霜.\n举头望明月,\n低头思故乡."); Console.ReadKey(); } } } 注意在windows操作系统下想实现换行,我们必须书写成\r\n. Mac操作系统下是支持\r

符号(注释符+转义符+接续符)

注释符: 1 #include <stdio.h> 2 int main() 3 { 4 int/*...*/i; //int i; 5 char* s = "abcdefgh //hijklmn"; //s[]=abcdefgh //hijklmn; 6 //Is it a \ 7 valid comment? //Is it a valid comment? 8 in/*...*/t i; //in t i; 9 return 0; 10 } 注释规则: 注释符的处理方

《LINUX SHELL脚本攻略》学习(1)--shell中echo的转义符

0.echo的命令项:(默认bash支持,csh不支持) -n     不输出换行符       -e     打开反斜杠ESC转义       -E     取消反斜杠ESC转义 (默认) 1.echo和printf都可以打印输出信息,区别在于echo默认是添加换行符(\n)的: echo -n "xxxx" ,也可以取消换行符 2.echo可以通过-e打开转义符,如输出颜色命令: #!/bin/bash # 先定义一些颜色:1是高亮 red='\e[0;31m'          

linux---网络基础配置及shell 通配符

临时配置网络(ip,网关,dns)+永久配置 dns :vim /etc/resolv.conf 网关:route add default gw 192.168.157.254 netmask255.255.255.0 route -n ip :ifconfig ens33 192.168.157.130/24 永久配置: cd /etc/sysconfig/network-scripts/ vim ifcfg-ens33 把BOOTPROTO="dhcp" 改成static IPAD

shell 通配符和正则表达式理解和区别

一.正则表达式: 元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符. 正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串. 正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合.实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据.                         基本的正则表达式元字符集合及其意义 符号 意义 * 0个或多个在*字符之前的那个普通字符和前

Linux Shell 通配符、转义字符、元字符、特殊字符

一.linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在命令的"参数"里(它不用在命令名称里,也不用在操作符上).当shell在"参数"中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行替换(路径扩展):否则就将该通配符作为一个普通字符传递给"命令",然后再由命令进