189 8069 5689

如何在Shell中使用特殊字符-创新互联

这期内容当中小编将会给大家带来有关如何在Shell中使用特殊字符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

成都创新互联公司不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的成都网站建设、网站设计质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式网络营销推广需求,让再小的高端网站设计也能产生价值!

1、;分号


连续运行命令


# ifdown eth0;ifup eth0

2、| 管道


正则表达式中表示或者


# echo "ooooee" |egrep '(oo|ee)'{2} 表示匹配 oooo 或者 eeee 的字符

前面命令的标准输出作为后面命令的标准输入


# ifconfig|grep eth0 表示ifconfig查出来的信息然后过滤出eth0的这一行

3、&


将命令放到后台执行


# mysqld_safe --user=mysql & 将MySQL放到后台启动

表示标准输出和标准错误输出


# ifconfig &>/dev/null 将ifconfig执行得到的结果输出到/dev/null里面

4、&&


前面命令返回值为0才执行后面的命令


# ls && echo "ok"

5、||


前面命令返回值为非0才执行后面的命令


# lls || echo "ok"

6、# 井号


# 表示注释


$# 表示位置参数的个数


# echo $#
0

${#变量名} 表示变量的长度


# a='hello'
# echo ${#a}
5

${#变量名[@]} 表示数组的个数


# a=(1 2 3)
# echo ${#a[@]}
3

7、!惊叹号


将命令或者条件表达式的返回值取反


# if ! [ 1<2 ]; then echo 'ok'; else echo 'no'; fi
ok

执行历史命令


# history 
1 ls
2 tail test1.txt
3 mysql -uroot -p123
4 ls /tmp/
5 cd /tmp/
[root@localhost ~]# !994
ls /tmp/
account.sql data.sql mysql.sock t1.txt t2.txt

vi或者ftp中执行外部shell命令


例如:在vim中,想要执行一条命令,就在末行模式,输入!感叹号后面加上要执行的命令


间接应用变量


例如:${!a}---- 间接取b 的值


8、$ 美元符号


取变量的值


# a=10
# echo $a
10

正则表达式表示行尾


egrep ':$' /etc/inittab 
egrep ‘^hello$' file

9、> 大于号


输出重定向


echo '123' >test.txt 表示将123 输入到文件test.txt中 条件测试中的大于号

11、< 小于号


输入重定向


条件测试中的小于号


= 等号


变量赋值 - 例如:设置变量a=10


条件测试中的等号 - 例如:[ a=b ] 判断变量a是否等于b


数值比较 == - 例如:(( a==20 )) 判断变量a是否等于20


12、+ 加号


算术运算中的加号 - 例如:1+3


正则表达式中1个或多个前面的字符 - 例如:ab+c 表示匹配ab和c之间有1个或者多个 字符


13、>>


输出重定向追加 - 例如:echo "123" >> test.txt 将123追加到文件test.txt中


14、<<


here document


例如:


# passwd < 123
> 123
> end

更改用户 root 的密码 。


15、- 减号


算术运算中的减号 - 例如:10-2


命令的选项 - 例如:ls -l


上一次工作目录 - 例如:cd -


通配符和正则表达式中表示范围 - 例如:[a-z]


tar -cvf - /home | tar -xvf -

表示输出流或输入流


将前面的输出 ,通过管道交给后面的命令,前面的压缩,后面的解压


16、'' 单引号


解决变量赋值空格的问题


例如:a='1 2'


阻止shell替换


17、"" 双引号


解决变量赋值空格的问题


例如:a="1 2"


阻止shell部分字符替换,对$、!等无效


18、`` 反引号 相当于 $()


命令行替换


例如:可以设变量a=`ls`


19、% 百分号


算术运算中的模运算


例如:echo $((100%10))就是100除以10的余数为0


vi中替换操作中表示所有行 (末行模式下,替换所有前面加 %)


例如:在末行模式下输入 :% s/D/d 表示将文本中的所有的D替换为d


20、() 单圆括号


子shell中执行命令,会继承父shell的变量


括起数组元素


例如:定义一个数组 a=(1 2 3 4)


21、(()) 双圆括号


算术运算


例如:echo $((10/2))结果就是5


整数比较测试


例如:(( 10>2 ))判断10是否大于2


22、[] 单方括号


通配符和正则中表示匹配括号中的任意一个字符


例如: [abc] 表示匹配abc中的任意一个字符


条件测试表达式


例如:[ -f /etc/passwd ]// 测试是不是文件


数组中下标括号


例如:echo ${a[0]}表示取数组中下标为0的值


23、[[]] 双方括号


字符串比较测试


例如:[[a=b]]用来字符串的比较


24、. 英文句点号


正则中表示任意1个字符


例如:a...b 表示 匹配 a和b之间夹三个字符的字符串


当前shell执行脚本命令


例如:./test.sh执行当前路径下的shell脚本test.sh


表示当前目录


例如:cd ./bgk 进入当前目录下的bgk目录下


25、{} 大括号


通配符扩展 abc{1,2,3}


正则表达式中表示范围


例如:a{3} 匹配3个 a


for i in {1...10}循环指定范围


匿名函数{ cmd1;cmd2;cmd3;} &> /dev/null


{ } 里面的命令,是在当前shell执行


注意: { } 第一条命令前面要有空格,后面的命令要有分号


括起变量名${abc}a


26、/ 正斜杠


算术运算中的除法


例如:echo $((10/2)) 结果就是5


根目录或路径分割符


例如:cd /usr/local/表示路径


27、^


在通配符中表示取反


例如:[^abc] 表示匹配除了abc外的任意一个字符


在正则表达式中表示以什么开头


例如:


egrep ‘^hello$' file

上述就是小编为大家分享的如何在Shell中使用特殊字符了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


网页标题:如何在Shell中使用特殊字符-创新互联
分享路径:http://cdxtjz.cn/article/ihdoj.html

其他资讯