1.1 概述
Linux系统可使用哪些特殊字符呢?这些特殊字符该如何使用呢?
本期文章结合具体的实践操作,向各位小伙伴总结分享关于Linux特殊字符的相关知识。
1.2 双引号””和反引号``和单引号’’
1.2.1 双引号
#双引号内可引用Linux系统命令,如date命令
[root@localhost abc]# echo "当前的时刻是:$(date '+%F %T')"
当前的时刻是:2023-07-20 13:35:34
[root@localhost abc]#
#双引号内也可引用自定义的变量
[root@localhost abc]# abc=onme0
[root@localhost abc]#
[root@localhost abc]# echo "我是${abc},大家好!!"
我是onme0,大家好!!
[root@localhost abc]#
1.2.2 反引号
#反引号可引用Linux系统命令,如pwd和ls -l
[root@localhost abc]# echo "当前目录`pwd`中的文件有:`ls -l`"
当前目录/root/abc中的文件有:total 0
-rw-r--r-- 1 root root 0 Jul 20 13:34 abc1.txt
-rw-r--r-- 1 root root 0 Jul 20 13:34 abc2.txt
-rw-r--r-- 1 root root 0 Jul 20 13:34 abc3.txt
[root@localhost abc]#
1.2.3 单引号
#原样输出单引号内的内容
[root@localhost abc]# echo '当前的时刻是:$(date '+%F %T')'
当前的时刻是:$(date +%F %T)
[root@localhost abc]#
1.3 重定向符号
>——标准的输出覆盖式重定向
>>——标准的输出追加式重定向
<——标准输入
标准输入——stdin——对应的数字代号是0
标准输出——stdout——对应的数字代号是1
标准输出错误——stderr——对应的数字代号是2
2>&1——stderr重定向,把stderr当做stdout进行处理
1.3.1 标准的输出覆盖式重定向
[root@localhost abc]# echo 我是第1行>abc1.txt
[root@localhost abc]# cat abc1.txt
我是第1行
[root@localhost abc]# echo 我是第2行>abc1.txt
[root@localhost abc]# cat abc1.txt
我是第2行
[root@localhost abc]#
1.3.2 标准的输出追加式重定向
[root@localhost abc]# echo 我是第3行>>abc1.txt
[root@localhost abc]# cat abc1.txt
我是第2行
我是第3行
[root@localhost abc]#
1.3.3 标准输出错误
[root@localhost abc]# cat abc4.txt
cat: abc4.txt: No such file or directory
[root@localhost abc]#
1.3.4 把stderr当做stdout进行处理
[root@localhost abc]# cat abc4.txt >>abc2.txt 2>&1
[root@localhost abc]# cat abc4.txt >>abc2.txt 2>&1
[root@localhost abc]# cat abc4.txt >>abc2.txt 2>&1
[root@localhost abc]# more abc2.txt
cat: abc4.txt: No such file or directory
cat: abc4.txt: No such file or directory
cat: abc4.txt: No such file or directory
cat: abc4.txt: No such file or directory
[root@localhost abc]#
1.4 字符&&
命令1&&命令2——仅当命令1执行成功后,命令2才会执行;
[root@localhost abc]# cat abc4.txt && echo OK
cat: abc4.txt: No such file or directory
[root@localhost abc]#
[root@localhost abc]# cat abc1.txt && echo OK
我是第2行
我是第3行
OK
[root@localhost abc]#
1.5 字符||
命令1||命令2——仅当命令1执行失败后,命令2才会执行;
[root@localhost abc]# cat abc1.txt || echo Failed
我是第2行
我是第3行
[root@localhost abc]# cat abc4.txt || echo Failed
cat: abc4.txt: No such file or directory
Failed
[root@localhost abc]#
[root@localhost abc]# cat abc1.txt && echo OK || echo Failed
我是第2行
我是第3行
OK
[root@localhost abc]#
1.6 分号;
命令1;命令2——无论命令1执行结果如何,命令2都会执行;
[root@localhost abc]# cat abc4.txt;cat abc1.txt
cat: abc4.txt: No such file or directory
我是第2行
我是第3行
[root@localhost abc]# cat abc1.txt;cat abc4.txt
我是第2行
我是第3行
cat: abc4.txt: No such file or directory
[root@localhost abc]#
1.7 管道字符|
[root@localhost abc]# ls -l | grep c2
-rw-r--r-- 1 root root 164 Jul 20 14:06 abc2.txt
[root@localhost abc]#
1.8 转义字符\
转义特殊字符\——还原字符原本含义
[root@localhost abc]# a=onme0
[root@localhost abc]#
[root@localhost abc]# echo "正在创建文件 ${a}"
正在创建文件 onme0
[root@localhost abc]# echo "正在创建文件 \${a}"
正在创建文件 ${a}
[root@localhost abc]#
1.9 生成序列字符{}
[root@localhost abc]# touch a{01..02}.txt
[root@localhost abc]# ls
a01.txt a02.txt
[root@localhost abc]# touch 1{A..B}.txt
[root@localhost abc]# ls
1A.txt 1B.txt a01.txt a02.txt
[root@localhost abc]#
1.10 字符$
引用变量及Linux系统命令
#定义变量a并赋值onme0
[root@localhost abc]# a=onme0
#引用变量a并输出
[root@localhost abc]# echo $a
onme0
[root@localhost abc]# echo ${a}
onme0
[root@localhost abc]#
#引用Linux系统命令并输出
[root@localhost abc]# echo $(date '+%F +%T')
2023-07-20 +14:57:05
[root@localhost abc]#
1.11 注释字符#
[root@localhost abc]# cat a01.txt
onme0
[root@localhost abc]#
[root@localhost abc]# #cat a01.txt
[root@localhost abc]#
1.12 总结
以上分享,希望各位小伙伴有所收获,欢迎各位点赞收藏和指正。