cuihao同学在学校机房发回报道

有一句话叫做"In UNIX Everything is a File"。在UNIX(包括Linux)中,文件可以用来代表各种东西,包括硬件设备、磁盘分区、网络链接、内核、终端…… 通过这种设计,你可以统一地使用简单的cat、echo命令控制硬件、与内核交互、进行网络通讯等等,我们不必为了完成这些操作专门编程调用系统API。简单的命令拥有了新的生命力,SHELL也因此变得强大。

 

来点简单的例子:

/dev/ttyX 是代表tty(ctrl+alt+Fn看到的那个命令行界面)的文件。尝试如下命令:

su -c "echo 'hi, tty9' > /dev/tty9"

就是用echo把一串字符输出到 /dev/tty9 文件中(使用su命令是因为普通用户没有使用tty设备文件得权限)。然后用Ctrl+Alt+F9切换到 tty9,会发现那串字符果然显示在tty上了。

再试试cat命令:

su -c "cat /dev/tty9"

键入后,cat处于等待输入的状态。进入tty9,输入一些内容,再切回原来的终端,键入的内容都被cat捕获了。键入Ctrl+D(文件结束符),cat就会终止。

 

然后是主题,用cat写ISO:

把ISO文件test.iso写入U盘设备(比如 /dev/sdc,会破坏数据,小心):

cat test.iso > /dev/sdc

自己加su用root执行。命令执行完毕后,你的U盘的分区表应该已经被破坏了 ^^ ISO已经写入到U盘中。可以使用这个技巧制作系统安装盘。很神奇的“设备文件”吧。

另外,使用后重新格式化U盘时,可能需要重建一下分区表。