linux的文件系统,是把硬盘空间格式化为若干node和block数据块,一般文件的创建,目录的创建,都会占用一个node,如果创建的是文件,具体的数据保存在若干block数据块中,node记录数据块的号码,所有的node和block在文件系统中都已经编号好;如果创建的是目录,会占用一个node,一个block,block中记录着该目录中所有的文件名,block号码记录在node中。
根据linux文件系统的大体结构,用文件的方式,采用C++语言来模拟一些在shell中执行的命令:cd、mkdir、touch、clear、vim、cat、ls
工程结构:
1、node的模拟类文件:node.cpp node.h
2、block的模拟类文件:block.cpp block.h
3、权限的模拟类文件:authority.cpp authority.h
4、shell模拟类文件:shell.cpp shell.h
5、初始化类:init.cpp init.h
6、工程启动文件:start.cpp
命令目录:
cat: cat.cpp cat.h main.cpp makefile
ls: ls.cpp ls.h main.cpp makefile
mkdir: mkdir.cpp mkdir.h main.cpp makefile
touch: touch.cpp touch.h main.cpp makefile
rm: rm.cpp rm.h main.cpp makefile
cd: cd.cpp cd.h main.cpp makefile
vim: vim.cpp vim.h main.cpp makefile
具体的代码在博客文件中,名称是shellModel.tar,代码粗糙,自己为了加深对linux文件系统的认识写的模拟小工程!