收藏 分销(赏)

Linu特殊符号大全.doc

上传人:鼓*** 文档编号:12149730 上传时间:2025-09-17 格式:DOC 页数:14 大小:33.50KB 下载积分:8 金币
下载 相关 举报
Linu特殊符号大全.doc_第1页
第1页 / 共14页
Linu特殊符号大全.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
Linux特殊符号大全 在shell中常用得特殊符号罗列如下: # ; ;; 、 , / \ 'string’| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $ `mand`{} [] [[]] () (()) || && {xx,yy,zz,、、、}~ ~+ ~- & \<、、、\> + - %= == !=   # 井号 (ments) 这几乎就是个满场都有得符号,除了先前已经提过得"第一行" #!/bin/bash 井号也常出现在一行得开头,或者位于完整指令之后,这类情况表示符号后面得就是注解文字,不会被执行。 # This line is ments、 echo "a = $a” # a = 0 由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行了。这常用在撰写过程中。 #echo "a = $a” # a = 0 如果被用在指令中,或者引号双引号括住得话,或者在倒斜线得后面,那她就变成一般符号,不具上述得特殊功能。 ~ 帐户得 home 目录 算就是个常见得符号,代表使用者得 home 目录:cd ~;也可以直接在符号后加上某帐户得名称:cd ~user或者当成就是路径得一部份:~/bin ~+ 当前得工作目录,这个符号代表当前得工作目录,她与内建指令 pwd得作用就是相同得。 # echo ~+/var/log ~— 上次得工作目录,这个符号代表上次得工作目录。 # echo ~-/etc/d/logs ; 分号 (mand separator) 在 shell 中,担任”连续指令"功能得符号就就是”分号”。譬如以下得例子:cd ~/backup ; mkdir startup ;cp ~/、* startup/、 ;; 连续分号 (Terminator) 专用在 case 得选项,担任 Terminator 得角色。 case "$fop" inhelp) echo "Usage: mand -help -version ";;version) echo ”version 0、1” ;;esac 、 逗号 (dot,就就是“点”) 在 shell 中,使用者应该都清楚,一个 dot 代表当前目录,两个 dot 代表上层目录。 CDPATH=、:~:/home:/home/web:/var:/usr/local 在上行 CDPATH 得设定中,等号后得 dot 代表得就就是当前目录得意思。 如果档案名称以 dot 开头,该档案就属特殊档案,用 ls 指令必须加上 -a 选项才会显示。除此之外,在 regularexpression 中,一个 dot 代表匹配一个字元。 'string’ 单引号 (single quote) 被单引号用括住得内容,将被视为单一字串。在引号内得代表变数得$符号,没有作用,也就就是说,她被视为一般符号处理,防止任何变量替换。 heyyou=homeecho '$heyyou' # We get $heyyou "string” 双引号 (double quote) 被双引号用括住得内容,将被视为单一字串.它防止通配符扩展,但允许变量扩展.这点与单引数得处理方式不同。 heyyou=homeecho "$heyyou” # We get home `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” / 斜线 (forward slash) 在路径表示时,代表目录。 cd /etc/rc、dcd 、、/、、cd / 通常单一得 / 代表 root 根目录得意思;在四则运算中,代表除法得符号。 let "num1 = ((a = 10 / 2, b = 25 / 5))" \ 倒斜线 在交互模式下得escape 字元,有几个作用;放在指令前,有取消 aliases得作用;放在特殊符号前,则该特殊符号得作用消失;放在指令得最末端,表示指令连接下一行. # type rmrm is aliased to `rm -i’# \rm 、/*、log 上例,我在 rm 指令前加上 escape 字元,作用就是暂时取消别名得功能,将 rm 指令还原. # bkdir=/home# echo ”Backup dir, \$bkdir = $bkdir"Backup dir,$bkdir = /home 上例 echo 内得 \$bkdir,escape 将 $ 变数得功能取消了,因此,会输出 $bkdir,而第二个 $bkdir则会输出变数得内容 /home。 | 管道 (pipeline) pipeline 就是 UNIX 系统,基础且重要得观念。连结上个指令得标准输出,做为下个指令得标准输入。 who | wc -l 善用这个观念,对精简 script 有相当得帮助。 ! 惊叹号(negate or reverse) 通常它代表反逻辑得作用,譬如条件侦测中,用 != 来代表”不等于" if [ "$?" != 0 ]thenecho "Executes error”exit 1fi 在规则表达式中她担任 ”反逻辑" 得角色 ls a[!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或任何功能相似得档案中,设定关于"路径"得场合中,我们都使用冒号,来做区隔. ? 问号 (wild card) 在文件名扩展( expansion)上扮演得角色就是匹配一个任意得字元,但不包含 null 字元. # ls a?a1 善用她得特点,可以做比较精确得档名匹配。 * 星号 (wild card) 相当常用得符号。在文件名扩展( expansion)上,她用来代表任何字元,包含 null 字元. # ls a*a a1 access_log 在运算时,它则代表 ”乘法"。 let "fmult=2*3" 除了内建指令 let,还有一个关于运算得指令expr,星号在这里也担任"乘法”得角色。不过在使用上得小心,她得前面必须加上escape 字元。 ** 次方运算 两个星号在运算时代表 ”次方” 得意思。 let "sus=2**3"echo ”sus = $sus” # sus = 8 $ 钱号(dollar sign) 变量替换(Variable Substitution)得代表符号。 vrs=123echo "vrs = $vrs" # vrs = 123 另外,在 Regular Expressions 里被定义为 "行" 得最末端 (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 "$#” $? 状态值 (status variable) 一般来说,UNIX(linux) 系统得进程以执行系统调用exit()来结束得.这个回传值就就是status值。回传给父进程,用来检查子进程得执行状态. 一般指令程序倘若执行成功,其回传值为 0;失败为 1。 tar cvfz dfbackup、tar、gz /home/user 〉 /dev/nullecho"$?”$$ 由于进程得ID就是唯一得,所以在同一个时间,不可能有重复性得 PID。有时,script会需要产生临时文件,用来存放必要得资料。而此script亦有可能在同一时间被使用者们使用。在这种情况下,固定文件名在写法上就显得不可靠。唯有产生动态文件名,才能符合需要.符号$$或许可以符合这种需求。它代表当前shell 得 PID。 echo ”$HOSTNAME, $USER, $MAIL” > ftmp、$$ 使用它来作为文件名得一部份,可以避免在同一时间,产生相同文件名得覆盖现象。 ps: 基本上,系统会回收执行完毕得 PID,然后再次依需要分配使用。所以 script 即使临时文件就是使用动态档名得写法,如果script 执行完毕后仍不加以清除,会产生其她问题。 ( ) 指令群组 (mand group) 用括号将一串连续指令括起来,这种用法对 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" { } 大括号 (Block of code) 有时候 script 当中会出现,大括号中会夹着一段或几段以"分号"做结尾得指令或变数设定。 # cat ftmp-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,这几个目录。这组符号在适用性上相当广泛。能加以善用得话,回报就是精简与效率。像下面得例子 chown root /usr/{ucb/{ex,edit},lib/{ex?、?*,how_ex}} 如果不就是因为支援这种用法,我们得写几行重复几次呀! [ ] 中括号 常出现在流程控制中,扮演括住判断式得作用。if [ "$?" != 0 ]thenecho "Executes error"exit1fi 这个符号在正则表达式中担任类似 ”范围” 或 ”集合" 得角色 rm -r 200[1234] 上例,代表删除 2001, 2002, 2003, 2004 等目录得意思. [[ ]] 这组符号与先前得 [] 符号,基本上作用相同,但她允许在其中直接使用 || 与&& 逻辑等符号。 #!/bin/bashread akif [[ $ak 〉 5 || $ak〈 9 ]]thenecho $akfi || 逻辑符号 这个会时常瞧到,代表 or 逻辑得符号。 && 逻辑符号 这个也会常瞧到,代表 and 逻辑得符号。 & 后台工作 单一个& 符号,且放在完整指令列得最后端,即表示将该指令列放入后台中工作。 tar cvfz data、tar、gz data > /dev/null& \<、、、\> 单字边界 这组符号在规则表达式中,被定义为”边界"得意思。譬如,当我们想找寻 the 这个单字时,如果我们用 grep the FileA 您将会发现,像 there 这类得单字,也会被当成就是匹配得单字。因为 the 正巧就是 there得一部份。如果我们要必免这种情况,就得加上 ”边界” 得符号 grep '\' FileA + 加号 (plus) 在运算式中,她用来表示 ”加法"。 expr 1 + 2 + 3 此外在规则表达式中,用来表示"很多个"得前面字元得意思. # grep '10\+9’ 这个符号在使用时,前面必须加上escape 字元. — 减号 (dash) 在运算式中,她用来表示 "减法”。 expr 10 — 2 此外也就是系统指令得选项符号。 ls -expr 10 - 2 在 GNU 指令中,如果单独使用 — 符号,不加任何该加得文件名称时,代表”标准输入"得意思。这就是 GNU指令得共通选项。譬如下例 tar xpvf – 这里得 - 符号,既代表从标准输入读取资料。 不过,在 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 cmd m〈&n m来自文件描述各个n cmd <&- 关闭标准输入 cmd <&n— 移动输入文件描述符n而非复制它. cmd >&n- 移动输出文件描述符 n而非复制它. 注意: >&实际上复制了文件描述符,这使得cmd > file 2〉&1与cmd 2>&1 〉file得效果不一样.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服