LFS技术细节解析(2):echo命令实现Linux shell人机交互详解

关联文章:
从LFS到自己的Linux发行版—系列教程之一:一步一步带你体验LFS8.2

LFS技术细节解析(1):Linux shell硬盘自动分区脚本详解

前言

LFS──Linux from Scratch时,多次需要人机交互才能进行下去,例如新增加的用于LFS的硬盘的分区、在宿主机中lfs用户密码设置等。如果过程中完全按照LFS手册,那么我们必须等在电脑旁及时回复shell的询问,否则LFS就无法进行下去,完全无法做到无人值守LFS。
我在:一步一步带你体验LFS8.2一文中,之所以做到了完全无人值守LFS,关键修改了需要人机对话时LFS手册中的部分 shell命令,利用了echo命令的输入功能。

LFS硬盘自动分区

详见上一篇文章:Linux shell硬盘自动分区脚本详解。核心内容,使用echo命令实现shell命令fdisk需要的人机交互:

echo "" | fdisk /dev/sdb

宿主机中lfs用户密码设置

一步一步带你体验LFS8.2一文中,在设置宿主机lfs用户密码时,为了实现在代码中预置密码123456进行自动人机交互,增加了下面一行代码(详见该文中的LFS代码LFS_code-3.1.3第71行):

echo "lfs:123456" | chpasswd

之于shell命令echo用于自动人机交互的细节,见上一篇文章Linux shell硬盘自动分区脚本详解

LFS系统root用户密码设置

一步一步带你体验LFS8.2一文中,在编译shadow过程中设置LFS系统root用户密码时,为了实现在代码中预置密码asd123asd进行自动人机交互,增加了下面一行代码(详见该文中的LFS代码LFS_code-3.1.3第1574行):

echo "root:asd123asd" | chpasswd

结语

Linux shell命令echo是一个功能强大的输入输出命令,大多数作为输出命令用于显示或者输出到文件,例如(详见该文中的LFS代码LFS_code-3.1.3第100行、1786行):

echo $LFS
echo "127.0.0.1 localhost $(hostname)" > /etc/hosts

Linux shell命令echo在用于输入时也有强大的功能,一步一步带你体验LFS8.2一文中就是利用echo命令强大的输入功能来实现自动人机交互的。

猜你喜欢

转载自blog.csdn.net/weixin_41217917/article/details/103343125