关于输入重定向

对于输入重定向来说,其需要用到的符号以及作用如表 1 所示。

命令符号格式作用
命令 < 文件 将指定文件作为命令的输入设备
命令 << 分界符 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串
命令 < 文件 1 > 文件 2 将文件 1 作为命令的输入设备,该命令的执行结果输出到文件 2 中。

【例 1】 默认情况下,cat 命令会接受标准输入设备(键盘)的输入,并显示到控制台,但如果用文件代替键盘作为输入设备,那么该命令会以指定的文件作为输入设备,并将文件中的内容读取并显示到控制台。

以 /etc/passwd 文件(存储了系统中所有用户的基本信息)为例,执行如下命令:

[root@localhost ~]# cat /etc/passwd #这里省略输出信息,读者可自行查看 [root@localhost ~]# cat < /etc/passwd #输出结果同上面命令相同

注意,虽然执行结果相同,但第一行代表是以键盘作为输入设备,而第二行代码是以 /etc/passwd 文件作为输入设备。

【例 2】

[root@localhost ~]# cat << 0

>c.biancheng.net

>Linux

>0

c.biancheng.net

Linux

可以看到,当指定了 0 作为分界符之后,只要不输入 0,就可以一直输入数据。常见的分界符有EOF

【例 3】 首先,新建文本文件 a.tx,然后执行如下命令:

[root@localhost ~]# cat a.txt

[root@localhost ~]# cat < /etc/passwd > a.txt

[root@localhost ~]# cat a.txt         #输出了和 /etc/passwd 文件内容相同的数据

可以看到,通过重定向 /etc/passwd 作为输入设备,并输出重定向到 a.txt,最终实现了将 /etc/passwd 文件中内容复制到 a.txt 中。

 

 

cat命令介绍

cat命令是concatenate(连接)的缩写,默认情况下,他接受一个文件作为参数,然后把这个文件的内容链接到标准输出上,同时接收多个文件作为参数时,可以将这些文件的内容连接到一起,输出到标准输出上

当键入cat直接按回车时,系统会等待从标准输入获取输入,输出到标准输出上

 

 

<<和<<-的区别。

在我们使用cat <<EOF时,我们输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。

比如,下面的语句就不会出错:

cat <<EOF
Hello,world!
EOF
如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。
而<<-就是为了解决这一问题:
cat <<-EOF
Hello,world!
EOF
上面的写法,虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束。
这就是<<和<<-的区别。

使用cat 和EOF写入数据到文件:

第一种:

cat <<EOF >phpinfo.php
<?php
phpinfo();
?>
EOF

 

第二种:

cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="yes"
PEERDNS="yes"
IPV6INIT="no"
EOF
cat> 文件名<<eof  
用来创建文件
在这之后输入任何东西 都是在 文件里的
输入完成之后EOF结尾 代表结束


posted @ 2021-03-12 12:47  风风羊  阅读(219)  评论(0编辑  收藏  举报