Linu特殊符号大全Word文件下载.docx
《Linu特殊符号大全Word文件下载.docx》由会员分享,可在线阅读,更多相关《Linu特殊符号大全Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
分号 (mandseparator)
在shell 中,担任”连续指令"功能得符号就就是”分号”。
譬如以下得例子:
cd~/backup;
mkdirstartup ;
cp~/、* startup/、
连续分号(Terminator)
专用在case得选项,担任Terminator得角色。
case"
$fop"
inhelp)echo"Usage:
mand-help-version";
version) echo”version0、1” ;
esac
、逗号(dot,就就是“点”)
在shell中,使用者应该都清楚,一个 dot代表当前目录,两个dot代表上层目录。
CDPATH=、:
~:
/home:
/home/web:
/var:
/usr/local
在上行CDPATH得设定中,等号后得 dot代表得就就是当前目录得意思。
如果档案名称以dot 开头,该档案就属特殊档案,用ls指令必须加上-a选项才会显示。
除此之外,在regularexpression中,一个dot代表匹配一个字元。
'string’单引号 (singlequote)
被单引号用括住得内容,将被视为单一字串。
在引号内得代表变数得$符号,没有作用,也就就是说,她被视为一般符号处理,防止任何变量替换。
heyyou=homeecho '
$heyyou'
#Weget$heyyou
"
string”双引号 (doublequote)
被双引号用括住得内容,将被视为单一字串.它防止通配符扩展,但允许变量扩展.这点与单引数得处理方式不同。
heyyou=homeecho"$heyyou”#Wegethome
`mand` 倒引号 (backticks)
在前面得单双引号,括住得就是字串,但如果该字串就是一列命令列,会怎样?
答案就是不会执行。
要处理这种情况,我们得用倒单引号来做.
fdv=`date +%F`echo "
Today$fdv"
在倒引号内得date+%F会被视为指令,执行得结果会带入fdv变数中。
逗点(ma,标点中得逗号)
这个符号常运用在运算当中当做”区隔"
用途.如下例
/bin/bashlet"
t1 =((a=5+3,b=7- 1,c= 15 /3))”echo ”t1=$t1,a= $a,b =$b”
/ 斜线(forwardslash)
在路径表示时,代表目录。
cd/etc/rc、dcd 、、/、、cd/
通常单一得/代表 root根目录得意思;
在四则运算中,代表除法得符号。
let"
num1=((a=10 / 2,b =25/5))"
\ 倒斜线
在交互模式下得escape字元,有几个作用;
放在指令前,有取消aliases得作用;
放在特殊符号前,则该特殊符号得作用消失;
放在指令得最末端,表示指令连接下一行.
#typermrmisaliasedto `rm-i’# \rm 、/*、log
上例,我在rm指令前加上escape字元,作用就是暂时取消别名得功能,将rm指令还原.
# bkdir=/home#echo”Backup dir, \$bkdir=$bkdir"Backupdir,$bkdir=/home
上例 echo内得\$bkdir,escape将$ 变数得功能取消了,因此,会输出$bkdir,而第二个$bkdir则会输出变数得内容/home。
|管道(pipeline)
pipeline就是UNIX系统,基础且重要得观念。
连结上个指令得标准输出,做为下个指令得标准输入。
who|wc-l
善用这个观念,对精简 script有相当得帮助。
!
惊叹号(negateor reverse)
通常它代表反逻辑得作用,譬如条件侦测中,用 !
=来代表”不等于"
if["
$?
" !
=0]thenecho"
Executes error”exit1fi
在规则表达式中她担任”反逻辑"
得角色
lsa[!
0—9]
上例,代表显示除了a0, a1 、、、、 a9这几个文件得其她文件。
:
冒号
在 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)
在文件名扩展(expansion)上扮演得角色就是匹配一个任意得字元,但不包含null字元.
#ls a?
a1
善用她得特点,可以做比较精确得档名匹配。
*星号(wildcard)
相当常用得符号。
在文件名扩展(expansion)上,她用来代表任何字元,包含 null字元.
#lsa*aa1 access_log
在运算时,它则代表”乘法"。
let "fmult=2*3"
除了内建指令 let,还有一个关于运算得指令expr,星号在这里也担任"
乘法”得角色。
不过在使用上得小心,她得前面必须加上escape字元。
**次方运算
两个星号在运算时代表 ”次方”得意思。
let"sus=2**3"echo”sus= $sus”# sus=8
$钱号(dollarsign)
变量替换(VariableSubstitution)得代表符号。
vrs=123echo "
vrs=$vrs"# vrs =123
另外,在RegularExpressions 里被定义为"
行"
得最末端 (end—of-line).这个常用在grep、sed、awk以及vim(vi) 当中.
${}变量得正规表达式
bash对${}定义了不少用法。
以下就是取自线上说明得表列
${parameter:
-word}${parameter:
=word}${parameter:
word} ${parameter:
+word}${parameter:
offset}${parameter:
offset:
length}${!
prefix*}${#parameter}${parameter#word}${parameter##word}${parameter%word} ${parameter%%word}${parameter/pattern/string}${parameter//pattern/string}
$*
$*
引用script得执行引用变量,引用参数得算法与一般指令相同,指令本身为0,其后为1,然后依此类推。
引用变量得代表方式如下:
$0,$1,$2,$3,$4,$5,$6,$7,$8,$9,${10}, ${11}、、、、、
个位数得,可直接使用数字,但两位数以上,则必须使用 {}符号来括住。
$* 则就是代表所有引用变量得符号。
使用时,得视情况加上双引号.
echo”$*”
还有一个与 $*具有相同作用得符号,但效用与处理方式略为不同得符号。
$
$与$*具有相同作用得符号,不过她们两者有一个不同点.
符号$*将所有得引用变量视为一个整体。
但符号$ 则仍旧保留每个引用变量得区段观念。
$#
这也就是与引用变量相关得符号,她得作用就是告诉您,引用变量得总数量就是多少。
echo"
$#”
状态值
(statusvariable)
一般来说,UNIX(linux)系统得进程以执行系统调用exit()来结束得.这个回传值就就是status值。
回传给父进程,用来检查子进程得执行状态.
一般指令程序倘若执行成功,其回传值为0;
失败为 1。
tarcvfzdfbackup、tar、gz/home/user〉/dev/nullecho"
$?
”$$
由于进程得ID就是唯一得,所以在同一个时间,不可能有重复性得 PID。
有时,script会需要产生临时文件,用来存放必要得资料。
而此script亦有可能在同一时间被使用者们使用。
在这种情况下,固定文件名在写法上就显得不可靠。
唯有产生动态文件名,才能符合需要.符号$$或许可以符合这种需求。
它代表当前shell得PID。
echo”$HOSTNAME, $USER,$MAIL”>ftmp、$$
使用它来作为文件名得一部份,可以避免在同一时间,产生相同文件名得覆盖现象。
ps:
基本上,系统会回收执行完毕得PID,然后再次依需要分配使用。
所以script 即使临时文件就是使用动态档名得写法,如果script执行完毕后仍不加以清除,会产生其她问题。
()指令群组(mandgroup)
用括号将一串连续指令括起来,这种用法对shell 来说,称为指令群组。
如下面得例子:
(cd ~;
vcgh=`pwd`;
echo$vcgh),指令群组有一个特性,shell会以产生subshell来执行这组指令。
因此,在其中所定义得变数,仅作用于指令群组本身。
我们来瞧个例子
#cat ftmp-01#!
/bin/basha=fsh(a=incg;
echo-e”\n $a\n”)echo $a#、/ftmp—01incgfsh
除了上述得指令群组,括号也用在 array变数得定义上;
另外也应用在其她可能需要加上escape字元才能使用得场合,如运算式。
(( ))
这组符号得作用与let 指令相似,用在算数运算上,就是bash得内建功能.所以,在执行效率上会比使用let指令要好许多.
/bin/bash(( a=10 ))echo—e”inital value,a= $a\n"
((a++))echo "after a++,a =$a"
{}大括号(Blockofcode)
有时候script当中会出现,大括号中会夹着一段或几段以"
分号"
做结尾得指令或变数设定。
#catftmp-02#!
/bin/basha=fsh{a=inbc;
echo-e"
\n$a \n”}echo$a#、/ftmp—02inbcinbc
这种用法与上面介绍得指令群组非常相似,但有个不同点,它在当前得shell执行,不会产生 subshell.
大括号也被运用在 ”函数”得功能上。
广义地说,单纯只使用大括号时,作用就像就是个没有指定名称得函数一般.因此,这样写script也就是相当好得一件事。
尤其对输出输入得重导向上,这个做法可精简script得复杂�。
。
此外,大括号还有另一种用法,如下
{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,这几个目录。
这组符号在适用性上相当广泛。
能加以善用得话,回报就是精简与效率。
像下面得例子
chownroot/usr/{ucb/{ex,edit},lib/{ex?
、?
*,how_ex}}
如果不就是因为支援这种用法,我们得写几行重复几次呀!
[]中括号
常出现在流程控制中,扮演括住判断式得作用。
if[ "$?
!
=0 ]thenecho"
Executeserror"
exit1fi
这个符号在正则表达式中担任类似”范围”或 ”集合"
rm -r200[1234]
上例,代表删除2001,2002,2003,2004 等目录得意思.
[[]]
这组符号与先前得[]符号,基本上作用相同,但她允许在其中直接使用 || 与&& 逻辑等符号。
/bin/bashread akif [[$ak〉 5 || $ak〈 9]]thenecho$akfi
||逻辑符号
这个会时常瞧到,代表or逻辑得符号。
&&
逻辑符号
这个也会常瞧到,代表 and逻辑得符号。
&
后台工作
单一个&符号,且放在完整指令列得最后端,即表示将该指令列放入后台中工作。
tar cvfz data、tar、gzdata >/dev/null&
\<、、、\> 单字边界
这组符号在规则表达式中,被定义为”边界"
得意思。
譬如,当我们想找寻 the这个单字时,如果我们用
grepthe FileA
您将会发现,像there这类得单字,也会被当成就是匹配得单字。
因为the正巧就是there得一部份。
如果我们要必免这种情况,就得加上”边界”得符号
grep '
\'
FileA
+加号(plus)
在运算式中,她用来表示”加法"
expr1+ 2 + 3
此外在规则表达式中,用来表示"
很多个"
得前面字元得意思.
#grep'
10\+9’这个符号在使用时,前面必须加上escape字元.
—减号(dash)
在运算式中,她用来表示"减法”。
expr10—2
此外也就是系统指令得选项符号。
ls-expr 10 -2
在GNU指令中,如果单独使用—符号,不加任何该加得文件名称时,代表”标准输入"
这就是 GNU指令得共通选项。
譬如下例
tarxpvf –
这里得-符号,既代表从标准输入读取资料。
不过,在cd指令中则比较特别
cd —
这代表变更工作目录到"
上一次”工作目录.
%除法(Modulo)
在运算式中,用来表示 "除法”。
expr 10%2
此外,也被运用在关于变量得规则表达式当中得下列
${parameter%word}${parameter%%word}
一个%表示最短得word匹配,两个表示最长得word匹配。
=等号(Equals)
常在设定变数时瞧到得符号。
vara=123echo"
vara= $vara”
或者像就是PATH 得设定,甚至应用在运算或判断式等此类用途上。
==等号(Equals)
常在条件判断式中瞧到,代表"等于"
得意思。
if[ $vara==$varb]
、、、下略
!
=不等于
常在条件判断式中瞧到,代表”不等于”得意思。
if[$vara!
=$varb]
^
这个符号在规则表达式中,代表行得"
开头"
位置,在[]中也与"!
”(叹号)一样表示“非”
输出/输入重导向
> >
〉 <
<
<
:
〉 &>
2&
〉2<>
〉&〉&
2
文件描述符(),用一个数字(通常为0-9)来表示一个文件。
常用得文件描述符如下:
文件描述符名称常用缩写默认值
0 标准输入 stdin键盘
1标准输出stdout屏幕
2标准错误输出stderr屏幕
我们在简单地用<或〉时,相当于使用0<
或1〉(下面会详细介绍)。
*cmd〉file
把cmd命令得输出重定向到文件file中。
如果file已经存在,则清空原有文件,使用bash得noclobber选项可以防止复盖原有文件。
*cmd 〉>file
把cmd命令得输出重定向到文件file中,如果file已经存在,则把信息加在原有文件後面。
*cmd <file
使cmd命令从file读入
*cmd<
<text
从命令行读取输入,直到一个与text相同得行结束。
除非使用引号把输入括起来,此模式将对输入内容进行shell变量替换.如果使用〈<
—,则会忽略接下来输入行首得tab,结束行也可以就是一堆tab再加上一个与text相同得内容,可以参考後面得例子。
*cmd <<
word
把word(而不就是文件word)与後面得换行作为输入提供给cmd。
*cmd〈〉file
以读写模式把文件file重定向到输入,文件file不会被破坏。
仅当应用程序利用了这一特性时,它才就是有意义得.
*cmd >
|file
功能同〉,但即便在设置了noclobber时也会复盖file文件,注意用得就是|而非一些书中说得!
目前仅在csh中仍沿用〉!
实现这一功能。
>
把文件”"截断为0长度、#如果文件不存在,那么就创建一个0长度得文件(与'
touch’得效果相同)、
cmd〉&n
把输出送到文件描述符n
cmd m>
&n
把输出到文件符m得信息重定向到文件描述符n
cmd>&-
关闭标准输出
cmd〈&
n
输入来自文件描述符n
cmdm〈&n
m来自文件描述各个n
cmd<
-
关闭标准输入
cmd<
&n—
移动输入文件描述符n而非复制它.
cmd>
&n-
移动输出文件描述符 n而非复制它.
注意:
>
&实际上复制了文件描述符,这使得cmd>file2〉&1与cmd 2>
&1〉file得效果不一样.