Linux特殊符号
===========================================================================================
$ 号
通常代表变量的意思
echo $变量名=变量值
= 等于号
一般定义变量时候用到
例如 [[email protected] aaa]# abc=/etc/passwd
[[email protected] aaa]# echo $abc
/etc/passwd
^
这个符号在规则表达式中,代表行的 "开头" 位置
例如 [[email protected] 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 :表示前面的命令执行是否成功,都执行后面的命令,相当于回车,可以执行多个命令
例如: [[email protected] /]# 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不执行
例如:
[[email protected] ~]# 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 :前面命令的输出结果,作为后面命令的输入
例如: [[email protected] /]# cat /etc/passwd |wc -l
38
|| 双管道,逻辑或
命令1 || 命令2 :左边的命令1执行成功,右边的命令2就不执行。如果左边的命令1执行不成功,右边的命令2才执行
例如:
[[email protected] ~]# ls -l www.txt || touch www.txt
ls: www.txt: 没有那个文件或目录
例如:[[email protected] ~]# ls -l www.txt || echo "yes"
-rw-r--r-- 1 root root 0 09-29 15:03 www.txt
’‘单引号
单引号里面的内容被视为普通符号处理,防止任何变量替换
例如: $www=www.baidu.com
[[email protected] ~]# echo "$www"
www.baidu.com
[[email protected] ~]# echo ‘$www‘
$www
" "双引号
被双引号用括住的内容,将被视为单一字串,防止通配符扩展,但允许变量扩展。
例如: $www=www.baidu.com
[[email protected] ~]# echo "$www"
www.baidu.com
例如:echo "\"/root/www/"\"
"/root/www/"
"\ \":反斜杠转换特殊字符
"\"/ /"\" 反斜杠
转换特殊符号
例如:echo "\"/root/www/"\"
"/root/www/"
` `反撇号,倒引号 == $ ( )
`命令`:反撇号里面是要执行的命令
例如1、[[email protected] ~]# fdv=`date +%F`;echo "Today $fdv"
Today 2014-09-29
例2、[email protected] /]# fdv=$(date +%F);echo "Today $fdv"
Today 2014-09-29
*号
匹配任意长度的任意符号
例如: ls /root/*.txt
1.txt aaa.txt www.txt
**号
表示次方运算
例如: [[email protected] ~]# let b=4**2 ;echo $b
16
?问号
匹配单个字符的单个长度
例如: [[email protected] ~]# ls /root/?.txt
/root/1.txt
,逗号
这个符号常运用在运算当中当做"区隔"用途
。句号
表示隐藏文件或者是当前目录,没多大用,不多解释
:冒号
通常在脚本中做间隔作用
!叹号
逻辑运算意义上的“非”的意思,主要用于awk中
_短横杠,俗称减号
一般是cd命令里面的回到上次工作目录的意思
或者作为运算符号
~ 波浪号
一般用于cd命令
[ ]中括号
[[email protected] aaa]# ls
a d f fh h r
[abcd]里面代表一定有一个字符 或者是a 或者是b 或者···是括号里面其中一个字符符合就显示
[[email protected] 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
表示一个连续的组合
[[email protected] 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
[-]
表示从-前连续匹配到-后,如果没有就不显示继续匹配下一个直到连续的字符结束,然后显示匹配到的值
例如
[[email protected] 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
[^]
表示取反的意思
[[email protected] 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的起始
[[email protected] aaa]# awk ‘{if ($0~/abc/) print $1}‘ 111
abc
{ }大括号
中间为命令块的组合
例1、
cat 111 |awk ‘{print $0}‘
例2、
表示一个集合
[[email protected] aaa]# touch {1..9}{a,b,c}
[[email protected] 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
例如: [[email protected] ~]# x=100
[[email protected] ~]# a=30
[[email protected] ~]# expr $x + $a
130
[[email protected] ~]# expr $x - $a
70
[[email protected] ~]# expr $x \* $a
3000
[[email protected] ~]# expr $x / $a
3
[[email protected] ~]# 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退出
立即就结束了
$# 表示命令行中位置参数的个数
例:
[[email protected] ~]# vim test.sh
#!/bin/bash
#
echo "当前的位置变量是:$1"
echo "当前的位置变量是:$2"
echo "当前的位置变量是:$3"
echo "当前的位置变量是:$4"
echo $#
[[email protected] ~]# ./test.sh a b c d
当前的位置变量是:a
当前的位置变量是:b
当前的位置变量是:c
当前的位置变量是:d
4 统计出运用了几个位置变量参数
$* 表示所有位置参数的内容
例:
[[email protected] ~]# vim test.sh
#!/bin/bash
#
echo "当前的位置变量是:$1"
echo "当前的位置变量是:$2"
echo "当前的位置变量是:$3"
echo "当前的位置变量是:$4"
echo $*
[[email protected] ~]# ./test.sh a b c d
当前的位置变量是:a
当前的位置变量是:b
当前的位置变量是:c
当前的位置变量是:d
a b c d 显示出位置变量的内容(值)
$? 表示前一条命令执行后的返回状态,返回值为0表示执行正确,非0值为执行错误
例1、
[[email protected] /]# ls www
ls: www: 没有那个文件或目录
[[email protected] /]# echo $?
2
例如: [[email protected] ~]# cat /etc/passwd
[[email protected] ~]# echo $?
0 返回的值为0,表示前面执行的命令cat /etc/passwd是正确的
$0 表示当前执行的脚本或程序的名称
例:
[[email protected] ~]# vim test.sh
#!/bin/bash
#
echo "当前的位置变量是:$1"
echo "当前的位置变量是:$2"
echo "当前的位置变量是:$3"
echo "当前的位置变量是:$4"
echo $0
[[email protected] ~]# ./test.sh a b c d
当前的位置变量是:a
当前的位置变量是:b
当前的位置变量是:c
当前的位置变量是:d
./test.sh 显示执行的脚本或是程序
本文章符号在简单或普通的脚本中已经够用了,还有些特殊符号涉及到某些命令,我会在特定的命令中再次补充说明。
好了!现在大概就知道这么多符号,或许有些特殊符号我还没了解到,如果有不足之处还望各位读者多多包涵,相互学习吧。
谢谢支持!