Linux命令中特殊符号1Word下载.docx
《Linux命令中特殊符号1Word下载.docx》由会员分享,可在线阅读,更多相关《Linux命令中特殊符号1Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
![Linux命令中特殊符号1Word下载.docx](https://file1.bdocx.com/fileroot1/2022-10/12/8ae4f5c9-a9f2-4dbc-9201-f196b7809387/8ae4f5c9-a9f2-4dbc-9201-f196b78093871.gif)
井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。
#Thislineiscomments.
由于这个特性,当临时不想执行某行指令时,只需在该行开头加上#就行了。
这常用在撰写过程中。
如果被用在指令中,或者引号双引号括住的话,或者在倒斜线的后面,那他就变成一般符号,不具上述的特殊功能。
[root@RHEL6scripts]#
echo
"
a=$a"
#a=
a=
#echo
[root@RHEL6scripts]#
~帐户的home目录
算是个常见的符号,代表使用者的home目录:
cd~;
也可以直接在符号后加上某帐户的名称:
cd~user或者当成是路径的一部份:
~/bin
~+当前的工作目录,这个符号代表当前的工作目录,她和内建指令pwd的作用是相同的。
#echo~+/var/log
~-上次的工作目录,这个符号代表上次的工作目录。
#echo~-/etc/httpd/logs
分号(Commandseparator)
1、在shell中,担任"
连续指令"
功能的符号就是"
分号"
。
例子:
cd~/backup;
mkdirstartup;
cp~/.*startup/.
在命令与命令中间利用分号(;
)来隔开,分号前的命令执行完成(无论成功与否)后就会立刻接着执行后面的命令
连续分号(Terminator)
专用在case的选项,担任Terminator的角色。
case
$fop"
inhelp)
Usage:
Command-help-versionfilename"
version)
version0.1"
esac
.点号(dot,就是“点”)
1、在shell中,使用者应该都清楚,一个dot代表当前目录,两个dot代表上层目录。
CDPATH=.:
~:
/home:
/home/web:
/var:
/usr/local
在上行CDPATH的设定中,等号后的dot代表的就是当前目录的意思。
2、如果档案名称以dot开头,该档案就属特殊档案,用ls指令必须加上-a选项才会显示。
3、在regularexpression中,一个dot代表一定有一个任意字符,空格字符也是一个字符。
'
单引号(singlequote)
被单引号用括住的内容,将被视为单一字串。
在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。
heyyou=homeecho'
$heyyou'
#Weget$heyyou
双引号(doublequote)
被双引号用括住的内容,将被视为单一字串。
它防止通配符扩展,但允许变量扩展。
这点与单引数的处理方式不同。
heyyou=homeecho"
$heyyou"
#Wegethome
`command`倒引号/反单引号(backticks)命令替换
在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?
答案是不会执行。
要处理这种情况,我们得用倒单引号来做。
1.[root@awakescripts]#fdv=`date+%F`
2.[root@awakescripts]#echo"
Today$fdv"
3.Today2015-06-19
4.[root@awakescripts]#
在倒引号内的date+%F会被视为指令,执行的结果会带入fdv变量中。
fdv=`date+%F`还有另外一种写法就是fdv=$(date+%F),两个命令是等价的,只是反单引号(``)容易被看穿('
)单引号而已。
逗点(comma,标点中的逗号)
这个符号常运用在运算当中当做"
区隔"
用途。
如下例
/bin/bashlet"
t1=((a=5+3,b=7-1,c=15/3))"
echo"
t1=$t1,a=$a,b=$b"
/斜线(forwardslash)
在路径表示时,代表目录。
cd/etc/rc.d
cd../..
cd/
通常单一的/代表root根目录的意思;
在四则运算中,代表除法的符号。
let"
num1=((a=10/2,b=25/5))"
\倒斜线/反斜线
在交互模式下的escape字元,有几个作用;
放在指令前,有取消aliases的作用;
放在特殊符号前,则该特殊符号的作用消失;
放在指令的最末端,表示指令连接下一行。
#typermrmisaliasedto`rm-i'
#\rm./*.log
上例,我在rm指令前加上escape字元,作用是暂时取消别名的功能,将rm指令还原。
#bkdir=/home#echo"
Backupdir,\$bkdir=$bkdir"
Backupdir,$bkdir=/home
上例echo内的\$bkdir,escape将$变数的功能取消了,因此,会输出$bkdir,而第二个$bkdir则会输出变数的内容/home。
|管道(pipeline)
pipeline是UNIX系统,基础且重要的观念。
连结上个指令的标准输出,做为下个指令的标准输入。
who|wc-l
善用这个观念,对精简script有相当的帮助。
!
惊叹号(negateorreverse)逻辑运算意义上的非(not)的意思
1、通常它代表反逻辑的作用,譬如条件侦测中,用!
=来代表"
不等于"
if
[
$?
=
0
]then
Executeserror"
exit1
fi
2、在规则表达式中她担任"
反逻辑"
的角色
lsa[!
0-9]
上例,代表显示除了a0,a1....a9这几个文件的其他文件。
3、在history命令中“!
”号的用法
[root@RHEL6
~]#history
......
1036echo$$
1037ll
1038ll
|
grep
^d'
1039ll
^d"
1040history
1041ll
1042history
~]#
1038
//执行第1038条命令
ll
drwxr-xr-x.
2rootroot4096Jun1215:
23bin
2rootroot4096Jun1615:
33scripts
7rootroot4096Nov212014vmware-tools-distrib
//执行上一个命令也就是刚刚的!
1038
//执行最近一echo为开头的命令,也就是1036那条命令
echo$$
4316
~]#
$的用法
mkdir/var/www/html/upload
chown
-Rapache
$#这时的!
$表示上一条命令
mkdir/var/www/html/upload,也就是chown将/var/www/html/upload的所有者权限分配给apache这个用户
:
冒号
在bash中,这是一个内建指令:
什么事都不干"
,但返回状态值0。
echo$?
#回应为0
>
f.
上面这一行,相当于cat/dev/null>
f.
不仅写法简短了,而且执行效率也好上许多。
有时,也会出现以下这类的用法
${HOSTNAME?
}${USER?
}${MAIL?
}
这行的作用是,检查这些环境变数是否已设置,没有设置的将会以标准错误显示错误讯息。
像这种检查如果使用类似test或if这类的做法,基本上也可以处理,但都比不上上例的简洁与效率。
除了上述之外,还有一个地方必须使用冒号
PATH=$PATH:
$HOME/fbin:
$HOME/fperl:
/usr/local/mozilla
在使用者自己的HOME目录下的.bash_profile或任何功能相似的档案中,设定关于"
路径"
的场合中,我们都使用冒号,来做区隔。
*星号(wildcard)
相当常用的符号。
1、在文件名扩展(Filenameexpansion)上,她用来代表0到无穷多个任意字符。
lsa*
aaaanaconda-ks.cfg
2、在正则表达式(RegularExpressions)中,*代表重复零个到无穷多个的前一个字符,如:
grep-n'
ess*file.txt,则可能会匹配es、ess、esss等等。
正则表达式中的0到无穷多个字符使用的是“.*”表示。
3、在运算时,它则代表"
乘法"
fmult=2*3"
除了内建指令let,还有一个关于运算的指令expr,星号在这里也担任"
的角色。
不过在使用上得小心,他的前面必须加上escape字元。
**次方运算
两个星号在运算时代表"
次方"
的意思。
sus=2**3"
sus=$sus"
#sus=8
$及$$钱号(dollarsign)
1、使用变量的前导符,即变量之前需要加的变量替代值
变量替换(VariableSubstitution)的代表符号。
1.[root@RHEL6
vrs=123
2.[root@RHEL6
vrs=$vrs"
3.vrs
123
4.[root@RHEL6
2、在RegularExpressions里被定义为"
行"
的最末端(end-of-line)。
这个常用在grep、sed、awk以及vim(vi)当中。
txt$"
//列出行末是txt结尾的行
2.-rw-r--r--.
1rootroot1700May2110:
501.