如何在Shell中使用特殊字符

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

1、;分号

如何在Shell中使用特殊字符

连续运行命令

#ifdowneth0;ifupeth0

2、| 管道

正则表达式中表示或者

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

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

#ifconfig|grepeth0表示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=(123)
#echo${#a[@]}
3

7、!惊叹号

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

#if![1<2];thenecho'ok';elseecho'no';fi
ok

执行历史命令

#history
1ls
2tailtest1.txt
3mysql-uroot-p123
4ls/tmp/
5cd/tmp/
[root@localhost~]#!994
ls/tmp/
account.sqldata.sqlmysql.sockt1.txtt2.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<<end
>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中使用特殊字符了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2021-04-03 22:31:39
收藏
分享
海报
0 条评论
168
上一篇:printf语句怎么在Linux 中使用 下一篇:怎么在java中利用DecimalFormat实现四舍五入
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码