关注分享主机优惠活动
国内外VPS云服务器

linux中有哪些特殊字符及其含义(linux特殊字符)

本文主要讲解“linux中有哪些特殊字符及其含义”。这篇文章的内容简单明了,易学易懂。请按照主机频道的思路,越走越深。让我们一起研究学习“linux中有哪些特殊字符及其含义”!

linux的特殊字符:1。" # "注释字符;2.“~”代表用户的主目录;3、";",这是“连续指令”功能的符号;4.“/”,路径目录分隔符;5." \ ",转义字符;6.“|”,管道符号;7, ".",表示当前目录;8, "..",表示父目录,即当前目录的上一个目录;9、"?",指单字符通配符,代表文件名中任意字符的匹配;10.“*”代表任意字符序列,匹配任意字符等。

linux特殊符号#的使用和含义:

以#开头表示这句话是注释。

#!/bin/bash经常出现在命令之前,或者命令之后,后面跟注释文本,不会执行。
#当输入的命令不想执行时,只需输入(#)。
#这一行是注释。(这是一行注释)

虽然上述段落被忽略,但它将被添加到您的命令历史中。

更强大的方法如下:

定义一个变量,将字符串“amazing alvin”赋给它。

this _ string = & quot神奇的阿尔文& quot

linux中的特殊字符及含义是什么

${this_string#amazing}返回已被注释掉的this_string字符串变量,因此您可以回显输出以查看结果:

echo awsome $ { this _ string # amazing }

惊艳只是被评论出去了,没有被删除,等你把评论去掉了还会回来:

echo $this_string

linux中的特殊字符及含义是什么

~

~代表用户的主目录,指的是主目录,也就是我们用户的个人目录。无论你在哪里,输入cd ~它都会带你回家!

cd ~

linux中的特殊字符及含义是什么

更高端的玩法是在后面加上特定的路径,直接定位到主目录的指定位置。方便吗?

CD ~/工作/存档

linux中的特殊字符及含义是什么

;分号

在shell中,作为“连续指令”的功能符号是“分号”。

这是一样的”;"差不多,我就不赘述了,主要是用来单独下单的。

ls & gtcount.txtWC-l count . txt;rm count.txt

linux中的特殊字符及含义是什么

这里注意,使用;分离命令时,即使第一个命令失败,第二个命令也会运行,即使第二个命令失败,第三个命令也会运行,依此类推。

如果您想在命令失败时停止,请使用“& amp& amp",如下所示:

光盘。/不存在& amp& ampCP ~/文档/报告/*。

linux中的特殊字符及含义是什么

;;连续分号(终止符)

选项专用于案件,扮演终结者的角色。

案例& quot$ fop & quotinhelp)回声& quot用法:命令帮助版本文件名& quot;;版)echo & quot版本0.1 & quot;;environmental systems applications center 环境系统应用程序中心

。点

在果壳里,用户应该知道一个。表示当前目录和两个。代表上层目录。

让我们看看当前目录中的所有文件:

ls -al

linux中的特殊字符及含义是什么

的。红圈里指的是当前目录,但是没有意义。我们在命令中更多地使用它,如下所示:

。/script.sh

这告诉bash只需在当前目录中查找并执行script.sh文件,而不是在路径中查找。

linux中的特殊字符及含义是什么

假设我们想回到上一个目录:

激光唱片..

linux中的特殊字符及含义是什么

和以前一样,您可以在它后面添加一个特定的目录,这意味着在与当前目录相同的级别上定位其他目录:

激光唱片../项目/

linux中的特殊字符及含义是什么

“字符串”单引号(字符串单引号)

单引号中的内容将被视为单个字符串。引号中代表变量的$符号没有任何作用,也就是说,它被视为通用符号,以防止任何变量被替换。

hello world = hello world echo & # 39$ hello world & # 39#我们得到了$hello world

“字符串”双引号(字符串双引号)

双引号中的内容将被视为单个字符串。它防止通配符扩展,但允许变量扩展。这不同于单一的论点。

heyyou = homeecho & quot$ heyyou & quot#我们回家了

命令反引号(反引号)

前面的单引号和双引号括起了一个字符串,但是如果这个字符串是命令行呢?答案是不会实施。为了处理这种情况,我们必须使用反单引号。

fdv = ` date+% f ` echo & quot;今天$ fdv & quot

倒引号中的Date +%F将被视为一条指令,执行的结果将被带入fdv变量。

逗号(逗号,标点符号中的逗号)

该符号通常在操作中作为“单独”使用。触摸f{1,2,3}示例

/正斜杠:

当表示路径时,它表示目录。通常single/代表根目录。

斜杠"/& quot;指的是路径目录分隔符,这里没什么好说的。

ls ~/工作/测试/

linux中的特殊字符及含义是什么

不过,有趣的是,如果/path目录分隔符前没有任何东西,是否意味着这就是顶级目录?由于Linux系统的目录树都是以/开头的,所以只有一个/代表我们常说的系统根目录。

cd /

linux中的特殊字符及含义是什么

\反斜杠(转义字符)

交互模式下的转义字符有几个作用;在指令之前,它具有取消别名的效果;当它放在特殊符号前面时,特殊符号的功能就消失了;在一条指令的末尾,表示该指令连接到下一行。

#类型rmrm别名为“RM-I & # 39;# \rm。/*.原木

在上面的例子中,我在rm命令前添加了转义字符,以临时取消别名功能并恢复rm命令。

# bkdir =/home # echo & quot;备份目录,\ $ bkdir = $ bkdir & quot备份目录,$bkdir = /home

在前面的例子中,\$bkdir,echo中的escape取消了$变量的功能,所以会输出$bkdir,第二个$bkdir会输出变量/home的内容。

管道

管道是UNIX系统中一个基本而重要的概念。将前一条指令的标准输出链接为下一条指令的标准输入。

谁| wc -l

善用这个概念对简化脚本相当有帮助。

!感叹号(否定或反转)

它通常代表反逻辑的功能,比如在条件检测中!=表示“不等于”

ls f[!9]代表显示除f0、f1之外的其他文件....f9。

:冒号

在bash中,这是一条内置指令:“什么都不做”,但返回状态值0。

echo $?#响应为0
:& gtf .美元

上述行相当于cat /dev/null > f.$$ .不仅文字简短,执行效率也好很多。

有时候,还会出现以下几种用法。

:$ {主机名?} $ {用户?} ${MAIL?}

这一行的目的是检查这些环境变量是否已经设置。如果没有设置,错误消息将显示为标准错误。如果您使用test或if之类的实践,这种检查基本上可以处理,但不如前面的例子简洁高效。

除了以上,还有一个地方必须用冒号。

PATH = $ PATH:$ HOME/fbin:$ HOME/fperl:/usr/local/Mozilla

在。bash_profile或者用户自己主目录下的任何具有类似功能的文件,设置关于“路径”的信息我们都用冒号来区分彼此。

?问号(通配符)

文件名扩展的作用是匹配任意字符,但它不包含空字符。

#是a?第一等的

星号(通配符)

很常见的符号。在文件名扩展上,她用来表示任何字符,包括空字符。

# ls a*a a1访问日志

在操作中,它代表“乘法”。

让& quotfmult = 2 * 3 & quot

除了内置的指令let之外,还有一个关于运算的指令expr,而星号在这里也起到了“乘法& quot的作用。但是使用的时候要小心。他的前面必须有转义字符。

* *电源操作

两个星号代表“权力”的含义。

让& quotsus = 2 * * 3 & quot回声& quotsus = $ sus & quot# sus = 8

美元

变量替换的代表符号。

vrs = 123echo & quotvrs = $ vrs & quot# vrs = 123

此外,它被定义为“行”行尾。这通常用于grep、sed、awk和vim(vi)中。

$ {}变量的标准表达式

Bash定义了$ {}的许多用法。以下表格列摘自在线帮助。

$ { parameter:-word } $ { parameter:= word } $ { parameter:?word } $ { parameter:+word } $ { parameter:offset } $ { parameter:offset:length } $ {!前缀* } $ { # parameter } $ { parameter # word } $ { parameter # # word } $ { parameter % word } $ { parameter % % word } $ { parameter/pattern/string } $ { parameter//pattern/string }

$*

$ *指的是脚本的执行引用变量,引用参数的算法与通用指令相同。指令本身是0,后面是1,依此类推。参考变量表示如下:

$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, ${10}, ${11} .....

可以直接使用一位数,但两位以上必须用{}符号括起来。

$ *是代表所有引用变量的符号。使用时,要酌情加双引号。

回声& quot$ * & quot

还有一个符号与$ *功能相同,但效果和处理方式略有不同。

¥@

$ @和$ *符号相同,但有一点不同。

符号$ *将所有引用的变量视为一个整体。

但是,符号$ @仍然保留了每个引用变量的节概念。

$#

这也是一个与参考变量相关的符号。它的作用是告诉你参考变量的总数是多少。

回声& quot$ # & quot

$?状态变量

一般来说,UNIX(linux)系统的进程是通过执行系统调用exit()来结束的。这个返回值就是状态值。返回父进程以检查子进程的执行状态。

如果通用指令程序执行成功,其返回值为0;失败是1。

tar cvfz dfbackup.tar.gz/home/user & gt;/dev/null echo & quot;$?"$$

因为进程的ID是唯一的,所以不可能同时有一个重复的PID。有时,脚本需要生成临时文件来存储必要的数据。而且这个脚本也可能同时被用户使用。在这种情况下,固定文件名在书写上是不可靠的。只有生成动态文件名才能满足需要。$ $这个符号可能满足这个需求。它表示当前shell的PID。

回声& quot$HOSTNAME,$USER,$ MAIL & quot& gtftmp。$$

将其作为文件名的一部分,可以避免同一文件名同时出现重叠现象。

Ps:基本上系统执行后会回收PID,然后根据需要重新分配。所以,即使临时文件是用动态文件名写的,如果脚本执行后没有清除,也会出现其他问题。

()命令组

用括号将一系列连续的指令括起来,这对于shell来说称为指令组。举个例子:(CD ~;vcgh = `pwdEcho $vcgh),指令组有一个特性,shell会通过生成一个subshell来执行这组指令。因此,其中定义的变量只作用于命令组本身。让我们看一个例子。

#卡特彼勒ftmp-01#!/bin/basha = FSH(a = incg;回声e & quot\ n $ a \ n & quot)echo $a#。/ftmp-01incgfsh

除了上面的指令组,括号也用于数组变量的定义;此外,它还用于其他可能需要转义字符的情况,比如表达式。

(( ))

这组符号类似于let指令。它用于算术运算,是bash的内置函数。所以在执行效率上会比使用let指令好很多。

#!/bin/bash((a = 10))echo-e & quot;初始值a = $ a \ n & quot((a++))echo & quot;在a++之后,a = $ a & quot

{}花括号(代码块)

有时候会出现在脚本中,一段或几段会夹在大括号里用“分号”做最后的命令或变量设置。

#卡特彼勒ftmp-02#!/bin/basha = FSH { a = inbc;回声e & quot\ n $ a \ n & quot}echo $a#。/ftmp-02inbcinbc

这种用法与上面描述的指令组非常相似,但有一点不同。它在当前shell中执行,不会产生子shell。

大括号在功能上也用在“函数”中。概括地说,当只使用大括号时,它的行为就像一个没有指定名称的函数。所以,这样写剧本也是一件相当不错的事情。特别是对于输出和输入的重定向,这种方法可以简化脚本的复杂度。

此外,大括号还有另一种用途,如下所示

{xx,yy,zz,...}

这种大括号的组合常用于字符串的组合。我们举个例子。

mkdir {userA,userB,userC}-{home,bin,data}

我们得到usera-home,usera-bin,usera-data,userb-home,userb-bin,userb-data,userc-home,userc-bin,userc-data,这些目录。这组符号的适用性相当广泛。如果我们能利用好它,回报就是简化和效率。比如下面这个例子

chown root /usr/{ucb/{ex,edit},lib/{ex?。?*,how_ex}}

要不是支持这种用法,我们还得写几行,重复几遍。

[]括号

它经常出现在过程控制中,起到封闭判断的作用。如果[& quot;$?"!= 0]thene CHO & quot;执行错误& quotexit1fi

此符号在正则表达式中用作类似于“作用域”或“设置”的角色的符号

rm -r 200[1234]

上面的例子表示删除目录,例如2001、2002、2003和2004。

[[ ]]

这组符号基本上与前面的[]符号具有&amp功能,但她允许直接使用||和& amp& amp逻辑和其他符号。

#!/bin/bashread akif[[$ AK & gt;5 | | $ ak & lt9 ]]thenecho $akfi

|||逻辑符号

这个会经常看到代表或逻辑的符号。

& amp& amp逻辑符号

你会经常看到这个符号代表and逻辑。

& amp后台工作

单&;符号,并放在完整命令行的末尾,这意味着命令行被放到后台工作。

tar cvfz data.tar.gz数据& gt/dev/null & amp;

& lt…& gt;单字边界

这组符号被定义为“边界”的含义。例如,当我们想要查找单词the时,如果我们使用

grep文件

你会发现像有这样的词也被视为匹配词。因为它恰好是那里的一部分。如果我们想避免这种情况,我们必须加上“边界”的符号

grep & # 39\'FileA

加号(加号)

在表达方式上,她习惯表达“加法”。表达式1 + 2 + 3
此外,在正则表达式中,它用来表达“许多”前面字符的含义。
# grep & # 3910\+9'file 109100910009100091000931010009 #当使用这个符号时,它必须以转义字符开头。

减号

在表情上,她习惯表达“减法”。
表达式10 - 2
此外,它还是系统指令的选项符号。
ls -expr 10 - 2
在GNU指令中,如果-符号单独使用而没有添加任何文件名,它意味着"标准输入"。这是GNU指令的一个常见选项。例如下面的例子
tar xpvf -
这里的-符号不仅表示从标准输入中读取数据。
但是,它在cd指令中是特殊的。
cd -
这意味着将工作目录更改为“上次”工作目录。

%除法(模数)

在一个表达式中,用来表示“除法”。

expr 10 % 2

此外,它还用于以下关于变量的正则表达式中。

$ { parameter % word } $ { parameter % % word }

1%表示最短的单词匹配,2%表示最长的单词匹配。

=等于(等于)

设置变量时经常看到的符号。

vara = 123echo & quotvara = $ vara & quot

或路径的设定,甚至应用于计算或判断等目的。

= =等于

常见于条件判断中,表示“等于”的意思。

If [$vara == $varb]...

!=不等于

常见于条件判断中,表示“不等于”的意思。

如果[ $vara!= $varb]...

^

此符号表示正则表达式中一行的“”。以“地点,在[],也是一样的”开头!"(感叹号)表示“不”

输出/输入重定向

& gt& gt& gt& lt& lt& lt:& gt& amp& gt2 & amp& gt2 & lt& gt& gt& amp& gt& amp2

文件描述符,用一个数字(通常是0-9)来表示一个文件。

常用的文件描述符如下:

文件描述符名称常用缩写的默认值
0标准输入标准输入键盘
1个标准输出stdout屏幕
2标准错误输出stderr屏幕

我们简单地使用相当于使用0

* cmd & gt文件

将cmd命令的输出重定向到文件file。如果文件已经存在,清空原始文件并使用bash的noclobber选项来防止覆盖原始文件。

* cmd & gt& gt文件

将cmd命令的输出重定向到文件file,如果该文件已经存在,则将信息附加到原始文件。

* cmd &lt。文件

使cmd命令从文件中读取。

* cmd &lt。& lt文本

从命令行读取输入,直到与文本相同的一行结束。除非输入用引号括起来,否则这种模式会用shell变量替换输入。如果你使用

* cmd &lt。& lt& lt单词

提供word(不是文件word)和下面的换行符作为cmd的输入。

* cmd &lt。& gt文件

在读写模式下将文件file重定向到输入,文件file不会被销毁。只有当应用程序利用了这个特性时才有意义。

* cmd & gt|文件

该函数与>相同,但即使设置了noclobber,也会覆盖文件file。小心用|而不是某些书上说的!目前还是只在csh >中使用!实现这个功能。

:& gtFilename将文件“filename & quot截断到长度0。#如果文件不存在,创建一个长度为0的文件(与& # 39;触摸& # 39;效果是一样的)。

cmd & gt& amp将输出发送到文件描述符

cmd m & gt& amp将输出到文件字符m的信息重定向到文件描述符n。

cmd & gt& amp-关闭标准输出。

cmd & lt& amp来自文件描述符的输入

cmd m&lt。& ampN m来自文件描述的每个n

cmd & lt& amp-关闭标准输入。

cmd & lt& amp移动输入文件描述符,而不是复制它。(需要解释)

cmd & gt& amp移动输出文件描述符n,而不是复制它。(需要解释)

注意:> & amp文件描述符实际上是被复制的,这使得cmd >:file 2 & gt;& amp1和cmd 2 & gt& amp1 & gt文件的效果是不同的。

未经允许不得转载:主机频道 » linux中有哪些特殊字符及其含义(linux特殊字符)

评论 抢沙发

评论前必须登录!