内容读取
**cat** 读取文件到文件最后内容,并直接退出命令
**more** 从开头读取文件内容,分屏显示内容,看到最后命令直接退出
**less** 从开头读取文件内容,分屏显示内容,看到最后命令不退出
**head** 默认读取文件开始的前10行,并退出命令
**head -3 network** 显示文件的前三行并退出命令
**tail** 默认读取文件最后的10行,并退出命令
**tail -3 network** 显示文件最后的后三行,并退出命令
**tail -f sxt.log** 动态追踪日志,会将日志的内容阻塞,即向日志插入内容时会动态追踪定位到每次插入内容的位置
管道
- 会开辟两个子进程
- 将|左边所有内容放进一个子进程,|右边所有内容放进一个子进程,将|前的输出,作为|后的输入
- 将输出传输到命令程序里而不是屏幕,留给后面的命令使用
head -3 network | tail -1 将文件前三行打印到管道里,然后读取管道内容,显示前三行的最后一行到屏幕
head -3 netwrok | tail -2 | tail -1 将文件前三行的最后一行输出到屏幕
- 对于一些特殊命令,比如 ls、cp、rm 不接受文本字符作为输入,需要用 xargs 转义一下
echo "/" | xargs ls -l
重定向
- 通过文件描述符,将程序内容输出给文件或将文件内容输出给程序
0 是标准输入
1 是标准输出
2 是标准错误输出
4 是软链接
echo "hello world" 1 > sxt.log
echo "hello world" 1 >> sxt.log
echo "hello world" &> sxt.log
cat 0< stx.log
cat > 1.txt <<EOF aaaa
bbb
ccc
ddd
EOF