补充:
因为在考生考试的通程中,考生可能多次用"打开终端"的按钮打开终端,所以cat /dev/null >/root/.bash_history 清空.bash_history文件命令不应该用这在儿,应该放在程序刚运行时,或在初始化控件显示题目时(不在TAB上添加事件把这个命令放到Tab上也是这个原因)
.bash_history 可以导出和考生的操作题题目一起发还给服务端
现在的问题,不知道是不是所有的题目能要用终端输命令来完成,还是可以通过面型界面用手工完成(如创建一个foo.txt 并将权限设置为777,是否可右击新建空白文件再改属性中的权限)
如果必须用命令完成,那只要把.bash_history文件内容给服务端就行了.不然还要通过判断这个foo.txt是否存在,然后取出它的权限发给服务端
现在是发送.bash_history文件内容给服务端,让服务端来判断考生的操作,如果想到客户端就判断出考生的操作,然后把相关结束发给服务端(服务端只要判断正确于否).那么还要对操作题进行分类,如新建特定权限的文件为一类,那在客户端只要在交卷只判断文件是否存在,它的权限是什么;或命令中分解中新建文件的命令和文件名,还是修改文件权限的命令和权限就行了.但是这样题目本身每一类都必须是相近的细化的.如:在用户主目录创建一个foo.txt 并将权限设置为777。或,在用户主目录创建一个foofoo.txt 并将权限设置为555。
命令的分解方法
.bash_history文件内容是一行一行保存的,分解文件时只要一行一行分析。
命令中一定有特定的命令的,如新建目录就有mkdir命令,只要找到这个命令然后再分析这个命令后面的参数,最后和答案进行对比判断对错就行了(标准答案也要以特定的格式保存)
注意:在分析命令时要注意空格