Linux特殊符号的用法

Linux特殊符号

===========================================================================================

$ 号

通常代表变量的意思

echo $变量名=变量值




= 等于号

一般定义变量时候用到

例如 [root@www aaa]# abc=/etc/passwd

[root@www aaa]# echo $abc

/etc/passwd




^

这个符号在规则表达式中,代表行的 "开头" 位置

例如 [root@www aaa]# grep "^a" 111

acb ac0 aaa

abc wwd www




# 井号

1、常出shell脚本一行的开头,或者表示为注释信息,这类情况表示符号后面的是文字,不会被执行。

例如:# This line is comments.

2、或者来注释掉命令,不让此命令执行

例如:#echo "www.baidu.com" >/root/abc




;分号

命令1;命令2 :表示前面的命令执行是否成功,都执行后面的命令,相当于回车,可以执行多个命令


例如: [root@www /]# cd /root/ ;ls -l

总计 84

-rw-r--r-- 1 root root     4 09-29 14:55 1.txt




;;双分号

专用在 case 的选项,担任 Terminator 的角色。不做过多解释




&

表示作业控制,将前台命令调到后台




&& 符号,逻辑与

命令1 && 命令2 :左边的命令1执行成功,右边的命令2才执行。如果左边的命令1执行不成功,右边的命令2不执行


例如:

[root@www ~]# echo "abc" >>/root/1.txt && ls -l /root/1.txt

-rw-r--r-- 1 root root 4 09-29 14:55 /root/1.txt

如果目录里没有1.txt这个文件,命令会自动创建然后追加abc到1.txt




| 管道

命令1 | 命令2 :前面命令的输出结果,作为后面命令的输入

例如: [root@www /]# cat /etc/passwd |wc -l

38




|| 双管道,逻辑或

命令1 || 命令2 :左边的命令1执行成功,右边的命令2就不执行。如果左边的命令1执行不成功,右边的命令2才执行


例如:

[root@www ~]# ls -l www.txt || touch www.txt  

ls: www.txt: 没有那个文件或目录

例如:[root@www ~]# ls -l www.txt || echo "yes"

-rw-r--r-- 1 root root 0 09-29 15:03 www.txt




’‘单引号

单引号里面的内容被视为普通符号处理,防止任何变量替换


例如: $www=www.baidu.com

[root@www ~]# echo "$www"

www.baidu.com

[root@www ~]# echo ‘$www‘

$www




" "双引号

被双引号用括住的内容,将被视为单一字串,防止通配符扩展,但允许变量扩展。


例如: $www=www.baidu.com

[root@www ~]# echo "$www"

www.baidu.com

例如:echo "\"/root/www/"\"

"/root/www/"

"\ \":反斜杠转换特殊字符





"\"/ /"\" 反斜杠

转换特殊符号


例如:echo "\"/root/www/"\"

"/root/www/"




` `反撇号,倒引号  == $ ( )

`命令`:反撇号里面是要执行的命令


例如1、[root@www ~]# fdv=`date +%F`;echo "Today $fdv"

Today 2014-09-29

例2、root@www /]# fdv=$(date +%F);echo "Today $fdv"

Today 2014-09-29




*号

匹配任意长度的任意符号


例如: ls /root/*.txt

1.txt  aaa.txt  www.txt




**号

表示次方运算

例如: [root@www ~]# let b=4**2 ;echo $b

16




?问号

匹配单个字符的单个长度

例如: [root@www ~]# ls /root/?.txt

/root/1.txt




,逗号

这个符号常运用在运算当中当做"区隔"用途





。句号

表示隐藏文件或者是当前目录,没多大用,不多解释




:冒号

通常在脚本中做间隔作用




!叹号

逻辑运算意义上的“非”的意思,主要用于awk中




_短横杠,俗称减号

一般是cd命令里面的回到上次工作目录的意思

或者作为运算符号




~ 波浪号

一般用于cd命令




[ ]中括号

[root@www aaa]# ls

a  d  f  fh  h  r  

[abcd]里面代表一定有一个字符 或者是a 或者是b 或者···是括号里面其中一个字符符合就显示

[root@www aaa]# ls -l [abcd]

-rw-r--r-- 1 root root 0 10-02 19:49 a

-rw-r--r-- 1 root root 0 10-02 19:49 d

表示一个连续的组合

[root@www aaa]# ll *[0-9]*

-rw-r--r-- 1 root root 0 10-02 19:18 1

-rw-r--r-- 1 root root 5 10-02 19:18 111

-rw-r--r-- 1 root root 0 10-02 19:18 2

-rw-r--r-- 1 root root 0 10-02 19:28 w323ewq




[-] 

表示从-前连续匹配到-后,如果没有就不显示继续匹配下一个直到连续的字符结束,然后显示匹配到的值

例如

[root@www aaa]# ll [1-3] 表示1-3之间的所有数字

-rw-r--r-- 1 root root 0 10-02 19:18 1

-rw-r--r-- 1 root root 0 10-02 19:19 3




[^]

表示取反的意思

[root@www aaa]# ll [^1-5] 匹配除了1到5只之外的所有数字都匹配

-rw-r--r-- 1 root root 0 10-02 19:19 6

-rw-r--r-- 1 root root 0 10-02 19:19 7

-rw-r--r-- 1 root root 0 10-02 19:19 8

-rw-r--r-- 1 root root 0 10-02 19:19 9




)小括号

一般表示在一个shell语句中子shell的起始

[root@www aaa]# awk ‘{if ($0~/abc/) print $1}‘ 111

abc




{ }大括号

中间为命令块的组合

例1、

cat 111 |awk ‘{print $0}‘

例2、

表示一个集合

[root@www aaa]# touch {1..9}{a,b,c}

[root@www aaa]# ls

1a  1b  1c  2a  2b  2c  3a  3b  3c  4a  4b  4c  5a  5b  5c  6a  6b  6c  7a  7b  7c  8a  8b  8c  9a  9b  9c



/ 斜杠:1、表示目录的路径的意思 + 加法运算符  - 减法运算符 \* 乘法运算符 /除法运算符 %取余运算符


例如:   echo "/etc/passwd/"

/etc/passwd


例如: [root@www ~]# x=100

[root@www ~]# a=30

[root@www ~]# expr $x + $a

130

[root@www ~]# expr $x - $a

70

[root@www ~]# expr $x \* $a

3000

[root@www ~]# expr $x / $a

3

[root@www ~]# expr $x % $a

10




文件描述符          名称         常用缩写     默认值

     0               标准输入      stdin            键盘

     1               标准输出      stdout         屏幕

     2            标准错误输出   stderr          屏幕

我们在简单地用<或>时,相当于使用 0< 或 1>

1> 表示正确的输出

0> 表示正确的输出


>     将输出的内容添加到文本文件内,并覆盖原有

>>     将输出的内容结果追加到文本文件内,不会覆盖原有


>test.txt  若有test.txt这个文件,则清空文件内所有内容

若没有test.txt文件,则创建一个test.txt文件


< 数据流重定向:将内容事先保存在一个文件中,需要里面的数值时候,指定文件路径,系统可自动检测读取

<< 输入导向


&>或者2>&1     将输出的正确信息与错误信息添加到同一个文本文件内,并覆盖原有

&>>     将输出的正确信息与错误信息添加到同一个文本文件内,并追加进去


2>     将输出的错误信息添加到文本文件内,并覆盖原有

2>>     将输出的错误信息追加到文本文件,不会覆盖原有


echo "www">1.txt 2>2.txt 表示将正确的信息输入到1.txt文件中,将错误的信息输入到2.txt文件中

保存错误的信息可以 2> /dev/null


cat > www

www.baidu.com

www.taobao.com

按Ctrl+d退出

然后你输入的信息就会保存在www这个文件中


cat > www << "eof"

www.baidu.com

www.taobao.com

eof 不需要按Ctrl+d退出

立即就结束了



$#         表示命令行中位置参数的个数

例:

[root@localhost ~]# vim test.sh

#!/bin/bash

#

echo "当前的位置变量是:$1"

echo "当前的位置变量是:$2"

echo "当前的位置变量是:$3"

echo "当前的位置变量是:$4"

echo $#

[root@localhost ~]# ./test.sh a b c d 

当前的位置变量是:a

当前的位置变量是:b

当前的位置变量是:c

当前的位置变量是:d

4 统计出运用了几个位置变量参数




$*     表示所有位置参数的内容

例:

[root@localhost ~]# vim test.sh

#!/bin/bash

#

echo "当前的位置变量是:$1"

echo "当前的位置变量是:$2"

echo "当前的位置变量是:$3"

echo "当前的位置变量是:$4"

echo $*

[root@localhost ~]# ./test.sh a b c d 

当前的位置变量是:a

当前的位置变量是:b

当前的位置变量是:c

当前的位置变量是:d

a b c d                     显示出位置变量的内容(值)




$?     表示前一条命令执行后的返回状态,返回值为0表示执行正确,非0值为执行错误

例1、  

[root@www /]# ls www

ls: www: 没有那个文件或目录

[root@www /]# echo $?                                   

2

例如: [root@localhost ~]# cat /etc/passwd

[root@localhost ~]# echo $?

0 返回的值为0,表示前面执行的命令cat /etc/passwd是正确的




$0     表示当前执行的脚本或程序的名称

例:

[root@localhost ~]# vim test.sh

#!/bin/bash

#

echo "当前的位置变量是:$1"

echo "当前的位置变量是:$2"

echo "当前的位置变量是:$3"

echo "当前的位置变量是:$4"

echo $0

[root@localhost ~]# ./test.sh a b c d 

当前的位置变量是:a

当前的位置变量是:b

当前的位置变量是:c

当前的位置变量是:d

./test.sh               显示执行的脚本或是程序


本文章符号在简单或普通的脚本中已经够用了,还有些特殊符号涉及到某些命令,我会在特定的命令中再次补充说明。

好了!现在大概就知道这么多符号,或许有些特殊符号我还没了解到,如果有不足之处还望各位读者多多包涵,相互学习吧。

谢谢支持!


本文出自 “LinuxCBB” 博客,请务必保留此出处http://linuxcbb.blog.51cto.com/9434555/1560411

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。