输出重定向符号
输入设备:
- 键盘输入数据
- 文件数据导入
输出设备:
- 显示器,屏幕终端
- 文件
程序的数据流:
- 输入流:<---标准输入(stdin),键盘
- 输出流:--->标准输出(stdout),显示器,终端
- 错误输出流:-->错误输出(stderr)
文件描述符:
在Linux系统中,一切设备都看作文件。
而每打开一个文件,就有一个代表该打开文件的文件描述符
程序启动时默认打开是哪个I/O设备文件:
- 标准输入文件(stdin),文件描述符0
- 标准输出文件(stdout),文件描述符1
- 标准错误输出文件(stderr),文件描述符2
符号 特殊符号 简介 标准输入stdin 代码为0,配合<或<< 数据流从右向左 标准输出stdout 代码1,配合>或>> 数据从左向右 标准错误stderr 代码2.配合>或>> 数据从左向右 重定向符号 数据流是箭头方向 标准输入重定向 0<或< 数据一般从文件流向处理命令 追加输入重定向 0<<或<< 数据一般从文件流向处理命令 标准输出重定向 1>或> 正常输出重定向给文件,默认覆盖 标准输出追加重定向 1>>或>> 内容追加重定向到文件底部,追加 标准错误输出重定向 2> 将标准错误内容重定向到文件,默认覆盖 标准错误输出追加重定向 2>> 标准错误内容追加到文件底部
其他特殊符号
符号 | 解释 |
---|---|
; | 分号,命令分隔符或是结束符 |
# | 1.文件中注释的内容;2.root身份提示符 |
| | 管道符,传递命令结果给下一个命令 |
$ | 1.$变量,取出变量的值;2.普通用户身份提示符 |
\ | 转义符,将特殊含义的字符还原成普通字符 |
{} | 1.生成序列,2.引用变量作为变量与普通字符的分割 |
;号
- 表示命令的结束
- 命令间的分隔符
- 配置文件的注释符
[root@timy-test-k8s01 ~]# pwd;ls #执行两条命令 /root 2022-05-13 2022-05-13.txt anaconda-ks.cfg Desktop test test.txt
|管道符
比如生活中的管道,能够传输物质
Linux管道符 | 用于传输数据,对Linux命令的处理结果再次处理,直到得到最终结果
能一次出结果的命令,尽量不要二次过滤,效率并不高
[root@timy-test-k8s01 ~]# ifconfig | grep inet #过滤显示inet字符段 inet 10.16.66.88 netmask 255.255.255.0 broadcast 10.16.66.255 inet6 fe80::2834:95d6:baaa:9918 prefixlen 64 scopeid 0x20<link> inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host>
[root@timy-test-k8s01 ~]# ls | grep .txt #过滤只显示文本文件 2022-05-13.txt test.txt
$符
Linux系统命令中,字符串前加$符,代表字符串变量的值
[root@timy-test-k8s01 ~]# echo PATH PATH [root@timy-test-k8s01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
{}符
1.生成序列,一连串的文本
[root@timy-test-k8s01 ~]# echo {1..20} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@timy-test-k8s01 ~]# echo {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z [root@timy-test-k8s01 ~]# echo test{1..10}.txt test1.txt test2.txt test3.txt test4.txt test5.txt test6.txt test7.txt test8.txt test9.txt test10.txt
2.利用{}快速备份文件
[root@timy-test-k8s01 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.ori} #{}里面的,号代表前面的路径/etc/sysconfig/network-scripts/,.ori代表备份的文件名
3.将变量括起来作为变量的分隔符
逻辑操作符
逻辑符既可以在Linux系统中直接用,也可以在Bash脚本中用
命令 | 解释 |
---|---|
&& | 前一个命令执行成功,再执行下一个命令 |
|| | 前一个命令失败了,再执行下一个名 |
! | 1.在bash中取反,2.在vim中强制性,3.历史命令中!ls找出最近一次以ls开头的命令 |
[root@timy-test-k8s01 ~]# ls
2022-05-13 2022-05-13.txt anaconda-ks.cfg Desktop test test.txt
[root@timy-test-k8s01 ~]# !! #!!代表执行上一次执行的命令
ls
2022-05-13 2022-05-13.txt anaconda-ks.cfg Desktop test test.txt
575 whereis
576 cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.ori}
577 echo $week
578 cd /etc/sysconfig/network-scripts
579 ls
580 cd
581 ls
582 history
2022-05-13 2022-05-13.txt anaconda-ks.cfg Desktop test test.txt
[root@timy-test-k8s01 ~]# !581 #输入history命令,!加执行命令的行数,会执行之前执行的命令
ls
2022-05-13 2022-05-13.txt anaconda-ks.cfg Desktop test test.txt