Linuxshell特殊符号学习汇总

合集下载

linux中特殊符号大全

linux中特殊符号大全

在linux中你会用这些特殊符号吗?在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == !=# 井号 (comments)这几乎是个满场都有的符号,除了先前已经提过的"第一行"#!/bin/bash井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。

# This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行了。

这常用在撰写过程中。

#echo "a = $a" # a = 0如果被用在指令中,或者引号双引号括住的话,或者在倒斜线的后面,那他就变成一般符号,不具上述的特殊功能。

~ 帐户的 home 目录算是个常见的符号,代表使用者的 home 目录:cd ~;也可以直接在符号后加上某帐户的名称:cd ~user 或者当成是路径的一部份:~/bin~+ 当前的工作目录,这个符号代表当前的工作目录,她和内建指令 pwd的作用是相同的。

# echo ~+/var/log~- 上次的工作目录,这个符号代表上次的工作目录。

# echo ~-/etc/httpd/logs; 分号 (Command separator)在 shell 中,担任"连续指令"功能的符号就是"分号"。

譬如以下的例子:cd ~/backup ; mkdir startup ;cp ~/.* startup/.;; 连续分号 (Terminator)专用在 case 的选项,担任 Terminator 的角色。

Linux之BASH和SHELL学习总结

Linux之BASH和SHELL学习总结

Bourne Again SHell (简称 bash)功能:1、命令编修能力 .bash_history文件2、命令与档案补全能力 Tab键[Tab] 接在一串指令的第一个字的后面,则为命令补全;[Tab] 接在一串指令的第二个字以后时,则为『档案补齐』!3、命令别名设定,指令: alias ---alias lm='ls -al',在.bash_profile文件里4、工作控制、前景背景控制: (job control, foreground, background)-----------------------???????????不懂5、程序化脚本: (shell scripts)6、通配符(Wildcard)bash内建命令 type type [-tpa] name,产看命令是否是bash内建命令,还是外部命令。

命令多行输入反斜杠'\' 然后紧接回车。

变量取用 echo $variable变量设定规则1、等号连接,等号两边没有空格;2、变量名只能是字母和数字,变量名开头不能为数字;3、发量内容若有空格符可使用双引号『"』或单引号『'』将发量内容结合起来,但双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:『var="lang is $LANG"』则『echo $var』可得『lang is en_US』单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』;4.可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符;5、在一串指令中,还需要藉由其他的指令提供的信息,可以使用反单引号『`指令`』或『$(指令)』。

特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号!例如想要取得核心版本的设定:『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』;6、若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:『PATH="$PATH":/home/bin』7、若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:『export PATH』8、通常大写字符为系统默认变量,自行讴定变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;9、取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的设定:『unset myname』获取版本信息 uname -r查看环境变量 env查看当前shell环境下所有环境变量,set 查看所有变量(包括环境变量和自定义变量),两者区别为该变量是否可以被子程序所继续引用。

linux shell 运算符

linux shell 运算符

linux shell 运算符Linuxshell运算符是在shell命令行界面下进行数学运算的工具。

它可以用来进行简单的数学计算,比如加减乘除、比较大小和逻辑运算等,为用户提供了方便和快捷的计算方式。

本文将会介绍几个常用的 Linux shell 运算符。

1. 基本运算符Linux shell 运算符中最基本的运算符是加减乘除等数学运算符。

在命令行界面下输入数学表达式,例如 3+2 或 5*6,使用 echo 命令输出结果即可。

例如:$ echo $((3+2))5$ echo $((5*6))30其中,双括号内的表达式会被 shell 解释器解析并计算出结果,然后 echo 命令会输出计算结果。

2. 比较运算符另一种常见的 Linux shell 运算符是比较运算符。

比较运算符可以用来比较两个数的大小关系,判断它们是否相等等。

常见的比较运算符有:- -eq:等于- -ne:不等于- -gt:大于- -lt:小于- -ge:大于等于- -le:小于等于这些运算符也可以用在 if 语句中,判断某个条件是否成立。

例如:if [ $a -eq $b ]thenecho 'a 等于 b'fi3. 逻辑运算符逻辑运算符在 Linux shell 中也很重要。

它们可以用来组合多个条件,判断复杂的逻辑关系。

常见的逻辑运算符有:- !:逻辑非- -o:逻辑或- -a:逻辑与例如:if [ ! $a -eq $b -o $a -lt $b ]thenecho 'a 不等于 b 或者 a 小于 b'fi上述代码中,逻辑或运算符 -o 表示只要其中一个条件成立就可以执行后面的代码。

总结一下,Linux shell 运算符是一个非常有用的工具,可以方便地进行数学计算和逻辑判断。

在日常使用中,可以结合 if 语句、for 循环等语句,编写出更加复杂的脚本,提高工作效率。

Shell特殊符号及条件判断

Shell特殊符号及条件判断

Shell特殊符号及条件判断一些特殊的符号$# 传递到脚本的参数个数$* 以一个单字符串显示所有向脚本传递的参数。

与位置变量不同,此选项参数可超过9个$$ 脚本运行的当前进程ID号$! 后台运行的最后一个进程的进程ID号$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数$- 显示shell使用的当前选项,与set命令功能相同$? 显示最后命令的退出状态。

0表示没有错误,其他任何值表明有错误。

$0 脚本名称$1..$9 第N个参数$(uname -r)=`uname -r`echo $((1+2))显示3,$((算术运算))一些判断总结-b file 若文件存在且是一个块特殊文件,则为真-c file 若文件存在且是一个字符特殊文件,则为真-d file 若文件存在且是一个目录,则为真-e file 若文件存在,则为真-f file 若文件存在且是一个规则文件,则为真-g file 若文件存在且设置了SGID位的值,则为真-h file 若文件存在且为一个符合链接,则为真-k file 若文件存在且设置了"sticky"位的值-p file 若文件存在且为一已命名管道,则为真-r file 若文件存在且可读,则为真-s file 若文件存在且其大小大于零,则为真-u file 若文件存在且设置了SUID位,则为真-w file 若文件存在且可写,则为真-x file 若文件存在且可执行,则为真-o file 若文件存在且被有效用户ID所拥有,则为真-z string 若string长度为0,则为真-n string 若string长度不为0,则为真string1 = string2 若两个字符串相等,则为真string1 != string2 若两个字符串不相等,则为真int1 -eq int2 若int1等于int2,则为真int1 -ne int2 若int1不等于int2,则为真int1 -lt int2 若int1小于int2,则为真int1 -le int2 若int1小于等于int2,则为真int1 -gt int2 若int1大于int2,则为真int1 -ge int2 若int1大于等于int2,则为真!expr 若expr为假则复合表达式为真。

linux命令符号

linux命令符号

在Linux系统中,命令符号是一些特殊字符,它们用于在命令行中执行各种操作。

以下是一些常见的Linux命令符号及其用法:
1. 重定向符号:
•>:将命令的输出重定向到文件,并覆盖文件内容。

•>>:将命令的输出重定向到文件,追加到文件末尾。

•<:从文件中读取输入,将文件内容提供给命令。

2. 管道符号:
•|:将一个命令的输出传递给另一个命令的输入。

3. 后台运行符号:
•&:将命令放在后台运行,允许继续输入其他命令。

4. 通配符:
•*:匹配任意数量的字符。

•?:匹配任意一个字符。

•[]:匹配括号内的任意一个字符。

5. 转义符号:
•\:用于转义特殊字符,使其失去特殊含义。

6. 分号符号:
•;:用于分隔多个命令,按顺序执行。

7. 反引号符号:
•`:用于执行命令,并将命令的输出作为参数传递给其他命令。

8. 双引号和单引号:
•":用于定义字符串,支持变量替换。

•':用于定义字符串,不支持变量替换。

这些是Linux命令行中常用的一些符号。

它们允许用户在命令行中执行各种操作,从文件重定向到后台运行命令,再到通配符和转义,都是Linux命令行操作的基本要素。

Linux下命令行通配符和特殊符号

Linux下命令行通配符和特殊符号

Linux下命令⾏通配符和特殊符号linux初学者经常会对命令⾏的通配符和正则表达式的特殊符号混淆.
通配符
*,代表0到⽆穷多个任意字符,
实例:
ls /*
,代表⼀定有⼀个任意字符
实例:
ls /
根⽬录下正好三个字符的⽂件名
[],代表⼀定有⼀个中括号内的字符,记住是⼀个
实例:
ls /*[a]*
[-],代表⼀个区间的所有数字,例如[0-9]
实例:
ls /etc/*[0-9]*
etc⽬录下⽂件名含有数字的⽂件或⽬录
[^],反选,和[]相反,指不包含[]⾥⾯的字符即可,例如[^0-9]指⼀定有⼀个字符,但不包含数字
实例:
ls /etc/*[^0-9]*
etc⽬录下⽂件名不包含数字的⽂件或⽬录
特殊符号
#,注释符号
\,转义符,可以把特殊字符和通配符还原成⼀般字符
|,管道符号,⽤于把两个命令的前执⾏结果进⾏重导向
;连续命令执⾏分隔符,例如ls; echo $PATH,可以同时执⾏两个命令,并且输出两个的执⾏结果
~,⽤户主⽬录,cd ~就能回到⽤户的主⽬录
$,变量前导符
!,逻辑⾮的意思
/,路径分隔符
>,数据流输出,覆盖式
>>,数据流输出,叠加式,在原有⽂件的末尾继续添加
<,数据流输⼊
<<,数据流输⼊
'',单引号,多个字符中间有空格是⼀⽤单引号当做⼀个整体,不具有保留变量能⼒
"",双引号,多个字符中间有空格是⼀⽤单引号当做⼀个整体,具有保留变量能⼒
``,反引号,中间的命令先执⾏,和$()相同。

linux shell if 逻辑‘与’运算符 例子

linux shell if 逻辑‘与’运算符 例子

linux shell if 逻辑‘与’运算符例子标题:Linux Shell中的逻辑‘与’运算符及其用法示例引言:在Linux Shell编程中,掌握逻辑运算符是非常重要的。

其中,逻辑‘与’运算符是用来判断两个条件是否同时满足的运算符,也是编写Shell脚本中常用的一种方式。

本文将详细介绍逻辑‘与’运算符的使用方法,并给出具体的示例,以帮助读者更好地理解和运用该运算符。

第一部分:逻辑运算符简介1.1 逻辑运算符的概念在计算机编程的世界中,逻辑运算符是用来连接多个条件表达式的关键词,通过这些关键词可以实现逻辑运算。

逻辑运算符可以分为逻辑‘与’、逻辑‘或’和逻辑‘非’三种。

1.2 逻辑‘与’运算符介绍逻辑‘与’运算符用于连接两个条件,并且只有当两个条件都满足时,整个表达式才为真。

在Linux Shell中,逻辑‘与’运算符的符号表示为"&&"。

例如,条件A && 条件B,表示当条件A和条件B都为真时,整个表达式为真。

第二部分:逻辑‘与’运算符的使用方法2.1 基本语法在Shell脚本中,可以使用中括号([])或者双括号([[]])来表示条件表达式。

逻辑‘与’运算符在中括号中使用时,语法为:[ 条件A ] && [ 条件B ]或者在双括号中使用时,语法为:[[ 条件A && 条件B ]]2.2 逻辑‘与’运算符的示例为了更好地理解逻辑‘与’运算符的使用方法,下面给出几个具体的示例:示例1:检查文件是否存在并且为可读状态file="/path/to/file"if [ -f "file" ] && [ -r "file" ]; thenecho "文件存在并且可读"elseecho "文件不存在或者不可读"fi在上述示例中,脚本首先使用条件表达式[ -f "file" ]检查文件是否存在,如果存在则继续执行第二个条件表达式[ -r "file" ],检查文件是否可读。

linuxshell备注(一)

linuxshell备注(一)

linuxshell备注(⼀)1、特殊字符#!/bin/bash# $表⽰当前PID IDecho $$# $n是shell脚本的参数,当0是第⼀个参数,即⽂件名echo $0# $#是shell当前脚本的参数个数# 例如:sh03.sh123# 输出: 3echo $## $*是shell当前脚本所有的参数# 例如:sh03 123# 输出: "1 2 3"echo $*# $@是shell当前脚本所有的参数# 例如:sh03 123# 输出: "1""2""3"echo $@## $? 上个命令的退出状态function show(){return 1}show# 输出: 1echo $?2、各种括号#!/bin/bash# () 数组初始化array=(item1 item2)# 输出:item1echo ${array[0]}# (()) 作为运算符扩展# 输出:2a=1((a=a+1))echo $a#输出:trueif((a==2));thenecho'true'fi# [] bash 中 test 命令的简写。

即所有的 [ expr ] 等于 test expr# 两侧需要加上空格# 输出: equalnum1=100num2=100if test $num1 -eq $num2;thenecho'equal'elseecho'not equal'finum3=100# 输出:equalif [ $num1 -eq $num3 ];thenecho'equal'elseecho'not equal'fi# [[]] 是bash中标准的条件判断语句# 两侧需要加上空格if [[ $num1 -gt 50 ]];thenecho'bigger'fi。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

肄在 shell 中常用的特殊符号罗列如下: 羈 # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{}[] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == !=羇输出/ 输入重导向膅 > >> < << : > &> 2&> 2<>>& >&2膂 # 井号 (comments)莈这几乎是个满场都有的符号,除了先前已经提过的 " 第一行 "螈#!/bin/bash芆井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文 字,不会被执行。

芀 # This line is comments.肁 echo "a = $a" # a = 0蒈由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行了。

这常用在 撰写过程中。

肃 #echo "a = $a" # a = 0蚃如果被用在指令中,或者引号双引号括住的话,或者在倒斜线的后面,那他就变成一般符 号,不具上述的特殊功能。

薀 ~ 帐户的 home 目录膈算是个常见的符号,代表使用者的 home 目录: cd ~ ;也可以直接在符号后加上某帐户 的名称: cd ~user肅或者当成是路径的一部份: ~/bin ;~+ 当前的工作目录, 这个符号代表当前的工作目录, 她和内建指令 pwd 的作用是相同的。

螁 # echo ~+/var/log~- 上次的工作目录,这个符号代表上次的工作目录。

羀 # echo ~-/etc/httpd/logs蚅 ; 分号 (Command separator)肃 Linux shell特殊符号学习汇总膆在shell 中,担任"连续指令"功能的符号就是"分号" 。

譬如以下的例子:cd ~/backup ; mkdir startup ; cp ~/.* startup/.膃;; 连续分号(Terminator)荿专用在case 的选项,担任Terminator 的角色。

蒅case "$fop" inhelp) echo "Usage: Command -help -version filename" ;;version) echo "version0.1" ;;esac羃. 逗号(dot)节在shell 中,使用者应该都清楚,一个dot 代表当前目录,两个dot 代表上层目录。

蝿CDPATH=.:~:/home:/home/web:/var:/usr/local膆在上行CDPATH 的设定中,等号后的dot 代表的就是当前目录的意思。

羅如果档案名称以dot 开头,该档案就属特殊档案,用ls 指令必须加上-a 选项才会显示。

除此之外,在regular expression 中,一个dot 代表匹配一个字元。

莀'string' 单引号(single quote)芈被单引号用括住的内容,将被视为单一字串。

在引号内的代表变数的$ 符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。

羆heyyou=homeecho '$heyyou' # We get $heyyou肆"string" 双引号(double quote)螃被双引号用括住的内容,将被视为单一字串。

它防止通配符扩展,但允许变量扩展。

这点与单引数的处理方式不同。

蚇heyyou=homeecho "$heyyou" # We get home蚆`command` 倒引号(backticks)袃在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?答案是不会执行。

要处理这种情况,我们得用倒单引号来做。

袁fdv=`date +%F`echo "Today $fdv" 莁在倒引号内的date +%F 会被视为指令,执行的结果会带入fdv 变数中。

莇, 逗点(comma)袅这个符号常运用在运算当中当做"区隔"用途。

如下例芃#!/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)蚅在文件名扩展(Filename expansion) 上扮演的角色是匹配一个任意的字元,但不包含null 字元。

肁# ls a?a1袈善用她的特点,可以做比较精确的档名匹配。

薆* 星号(wild card)蒃相当常用的符号。

在文件名扩展(Filename 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 "$*"蒆还有一个与$* 具有相同作用的符号,但效用与处理方式略为不同的符号。

相关文档
最新文档