Linux中的文本流

echo笔记


>>追加到文件结尾

参考: https://blog.51cto.com/laokebang/1891432

echo "net.ipv4.ip_forward = 1 
net.ipv4.conf.all.proxy_arp = 1" >> /etc/sysctl.conf

>覆盖文件

# 会将1.txt原内容覆盖
echo "123" > 1.txt

-e启用转义字符

# 启用转义字符
echo -e "\e[1;31mThis is red text\e[0m"

使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声
\b 删除前一个字符
\c 不产生进一步输出 (\c 后面的字符不会输出);
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab
\v\f相同;
\\ 插入\字符;
\nnn 插入 nnn(八进制)所代表的ASCII字符;


echo单引号和双引号的区别

单引号' ',双引号" "的区别:

  • 单引号’‘剥夺了所有字符的特殊含义,单引号’'内就变成了单纯的字符。
  • 双引号"“则对于双引号”"内的参数替换($)和命令替换(``)是个例外。
    在这里插入图片描述

Linux中的文本流

文本流存在于 Linux 的每一个进程
Linux 的每个进程启动时,会打开三个文本流的端口:

  • 标准输入
  • 标准输出
  • 标准错误

三个端口对应着一个程序输入输出异常的抛出

例如:
在 bash 中输入一串字符后,bash 进程中的标准输入端口捕获命令行中的输入,进行处理后从标准输出端口中传出回显在屏幕上;
如果处理过程中发生异常,则会通过标准错误端口,将异常回显在屏幕上。

>: 正确信息的重定向(只收集前面命令的正确输出)
2>: 错误信息的重定向,(只收集前面命令的错误输出)
&>: 混合重定向,收集前面命令的正确与错误输出


输出重定向


覆盖重定向>

覆盖重定向需要以END开始以END结束.

cat > 1.txt <<END
> 1
>
> END

# 再执行一次
cat > 1.txt <<END
> 2
> END

# 查看1.txt讲第一次是写入信息清空了
cat 1.txt
2

在这里插入图片描述

在这里插入图片描述


输出追加>>

使用这种方式会将程序的标准输出追加至文件的末尾

# 将标准输出追加到文件中:
ls >> dir_log 

小写end追加符.

cat >> 1.txt <<end
> 3
> 4
> end

# 查看1.txt
cat 1.txt

在这里插入图片描述


EOF结束符

<<EOF 表示当遇到EOF时结束输入
ENDEOF的区别:
https://blog.csdn.net/robin90814/article/details/86705155
cat>file<<EOF主要用于分行写入文件,以EOF(文件结束符)为结尾结束输入.
在这里插入图片描述


输入重定向

格式:command < inputfile

# 将右边的文件作为标准输入,然后传入左边的命令
wc -l < /dev/file

内联输入重定向:

格式: command << maker
输出重定向需要文件,而内联输入重定向可以使用即时输入的文本作为标准输入,传入左边的命令 右边的字符“maker”作为标志,表示标准输入开始结束,自身不包含在标准输入里。

在这里插入图片描述

# 输入
$less << EOF
> item1
> item2
> item3
> EOF
# 敲回车

显示如下图:
在这里插入图片描述


黑洞重定向

1 表示stdout 标准输出
2 表示stderr 标准错误
2>&1将错误输出标准输出

1> 指标准信息输出路径(也就是默认的输出方式)
2> 指错误信息输出路径
2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)


禁止输出

>/dev/null 2>&1作用如下:
> 是重定向
/dev/null 代表空设备文件
1 表示stdout标准输出,系统默认值是1,所以 “>/dev/null” 等同于 "1>/dev/null“
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同1


简便写法

# 黑洞重定向
&>/dev/null

示例

# 执行的命令 >> /dev/null 2&1
systemctl disable firewalldd.service >> /dev/null 2>&1

# 将所有输出都丢弃
systemctl disable firewalldd &>/dev/null

image.png


覆盖重定向和追加重定向

# 将/etc/passwd的前两行 覆盖追加到abc09.txt
head -2 /etc/passwd > /opt/abc09.txt

# 将主机名追加到abc09.txt
hostname >> /opt/abc09.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值