20145330 《信息安全系统设计基础》第10周学习总结
视频知识总结
- 目录 ls
- 功能:列出目录内容,显示文件信息
- ls -l:显示当前目录下详细信息(共7列)
- 第一位:文件属性(类—文件-目录)
- 二到四位:文件创建者权限(-代表无权限,r代表读权限,w代表写权限,x代表执行权限
- 五到七位:代表同组用户权限
- 八到十位:其他用户权限(具有读和其他权限,没有写权限)
- 第二列:文件子目录数
- 第三列:所有者
- 第四列:所属用户组
- 第五列:文件大小
- 第六列:文件最后修改时间
- 第七列:文件名
- 第一位:文件属性(类—文件-目录)
- man ls
- 查看功能
- 如何编写ls
-
如何列出目录内容
-
如何判断目录名与文件名
- 什么是目录:目录是一种特殊的文件,它的内容是文件和目录的名字
- 目录文件永远不会空,每个目录都有至少两个特殊的项“."(当前目录)和:".."(上一级目录)
- 是用什么系统项读取目录调用:man -k directory|grep read
- 输入命令:man 3 readdirectory可以看到详细信息
- see also :closedir(3) opendir(3)
- man opendirz(3)
- 自己编程实现:
- 什么是目录:目录是一种特殊的文件,它的内容是文件和目录的名字
-
`main`
opendir
while(readdir)
print d_name
closedir
-
问题:
- 排序
- 文件名读入数组
- qsort()排序
- 分栏:
- 文件名读入数组
- 计算列宽和行数
- .和..
- 加入-a选项
- 没有-a,不显示隐藏文件
- -l
- 功能不同
- 单独实现
- 排序
-
如何读取文件属性
- man 2 stat知给出文件路径获得文件属性
- st_size:所占字节数
- st_nlink:文件链接数
- st_mtime:文件最后修改时间(time_t->ctime)
- st_mode:文件类型和许可权限
who
-
who能做什么?使用一下man who
-
who命令参数:
- -a 打印能打印的全部
- -d打印死掉的进程
- -m 同am i,mom likes
- -q 打印当前登录用户数及用户名
- -u 打印当前登录用户登录信息
- -r 打印运行等级
-
通过whatis who或man -f who直接运行命令,可以了解who的大致功能,要进一步了解who的用法,需要借助联机帮助manpages。
代码调试
代码cp1.c
- 进行复制文件的操作,需要有源文件和目的文件
代码fileinfo.c
- 用来实现显示文件信息。先判断命令是否有操作数,有的话才能继续进行下去,如果没有报错就打印出来相关文件信息,报错就用perror将报错信息打印出来。
- 同样需要输入要查看的文件才会有信息打印出来
代码filesize.c
- 原本的代码是指定查找etc/passwd文件的大小,所以后面输入什么文件名都是一样的大小
代码ls1.c
- 简单的显示所在文件夹中的文件及文件夹列表
代码ls2.c
- 显示所在文件夹中的文件及文件夹详细信息的列表
代码setecho.c
- 可以改变符号显示状态,no是不显示符号,yes是显示
- 可以看到no指令后输入的命令看不见,状态值为0;yes指令后恢复可见,状值态为1.
代码echostate.c
用来检查命令行中的提示符是否显示的,如果显示,输入的命令都可见,不显示则表示输入的命令不可见
代码spwd.c
显示出所在目录
代码testioctl.c
计算当前命令行窗口的行列数大小
不同大小的变化如下:
代码who1.c
从UTMP_FILE文件中读取系统中用户信息
代码调试中的问题
-
代码fileinfo.c运行不出来,几次尝试都警告权限不够
-
代码setecho.c运行不出来
本周代码托管截图
感悟与思考
实践很重要
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 | |
第五周 | 50/1350 | 2/11 | 20/120 | |
第六周 | 100/1450 | 1/12 | 20/140 | |
第七周 | 50/1500 | 1/13 | 20/160 | |
第八周 | 000/1500 | 2/15 | 30/190 | |
第九周 | 50/1550 | 2/17 | 30/220 | |
第十周 | 400/2050 | 2/19 | 30/250 |