第十三篇:linux中的特殊符号

yuanxiaojiang / 2024-10-09 / 原文

引号系列

引号 含义  
单引号 单引号里面的内容会原封不动的输出 什么都不扩展
双引号 与单引号类似,对双引号里面的特殊符号会进行解析,对于{}花括号不能解析 允许部分扩展
不加引号 和双引号类似,支持花括号的通配符  
反引号 优先执行,先执行反引号里面的命令  

 

[root@yuan ~]# echo '`hostname` yuanxiaojiang $(whoami) $UID {1..5}'
`hostname` yuanxiaojiang $(whoami) $UID {1..5}  # 什么都不扩展

[root@yuan ~]# echo "`hostname` yuanxiaojiang $(whoami) $UID {1..5}"
yuan yuanxiaojiang root 0 {1..5}  # 允许部分扩展

[root@yuan ~]# echo `hostname` yuanxiaojiang $(whoami) $UID {1..5}
yuan yuanxiaojiang root 0 1 2 3 4 5

 

重定向符号系列

重定向:改变输出的方向(将命令的输入和输出导向文件或其他命令,而不是默认的终端)

重定向 含义 应用场景
> 或 1> 标准输出重定向:先清空文件,然后写入 大部分情况下先清空的时候可以使用
>> 或 1>> 标准输出追加重定向:直接写到文件的末尾 修改配置文件(表示追加的时候)
2> 标准错误输出重定向:先清空文件内容,然后写入错误信息 一般用于获取所有的输出(较少单独用)
2>> 标准错误输出追加重定向:直接将错误信息写到文件的末尾 一般用于获取所有的输出(较少单独用)
命令 >>文件名 2>&1 无论对错都把结果写入到文件中 定时任务、脚本中常用
命令 &>>文件名 无论对错都把结果写入到文件中 定时任务、脚本中常用
< 或 0< 标准输入重定向 搭配xargs、tr命令使用(使用较少)
<< 或 0<< 标准输入追加重定向 与cat搭配使用表示向文件中写入多行内容
# 标准输出重定向和标准错误输出重定向
    [root@yuan ~]# echo yuanxiaojiang >>yuan.txt
    [root@yuan ~]# cat yuan.txt 
    yuanxiaojiang
    [root@yuan ~]# ech yuanxiaojiang 2>>yuan.txt 
    [root@yuan ~]# cat yuan.txt
    yuanxiaojiang
    -bash: ech: 未找到命令

# 同时记录正常输出与错误输出

# 最容易理解的方法
    [root@yuan ~]# ech yuanxiaojiang >>yuan.txt 2>>yuan.txt 
    [root@yuan ~]# cat yuan.txt
    -bash: ech: 未找到命令

# 日常常用的方法之一
    [root@yuan ~]# ech zhongguo >>yuan.txt 2>&1
    [root@yuan ~]# cat yuan.txt 
    -bash: ech: 未找到命令
    [root@yuan ~]# echo zhongguo 2>>yuan.txt 1>&2
    [root@yuan ~]# cat yuan.txt 
    -bash: ech: 未找到命令
    zhongguo

# 最简写法
    [root@yuan ~]# echo Chinese &>>yuan.txt 
    [root@yuan ~]# cat yuan.txt 
    Chinese

 

输入重定向符号(与固定命令搭配)

[root@yuan ~]# echo `seq 1 10` >yuan.txt
[root@yuan ~]# cat yuan.txt
1 2 3 4 5 6 7 8 9 10
[root@yuan ~]# xargs -n3 <yuan.txt 
1 2 3
4 5 6
7 8 9
10