20145316 《信息安全系统设计基础》第十周学习总结

代码调试

cp1.c

  • 功能:进行复制文件的操作
  • 要点:
    - 需要有源文件和目的文件

fileinfo.c

  • 功能:显示文件信息。
  • 要点:
    - 判断命令是否有操作数
    - 没报错则打印出来相关文件信息
    - 报错就用perror将报错信息打印出来。
    - 需要输入要查看的文件

filesize.c

  • 功能:查找etc/passwd文件的大小
  • 要点:
    - 只能查找etc/passwd文件的大小
    - 如需查找其他文件大小需对代码中如下内容进行修改:
    • stat( "/etc/passwd", &infobuf)
    • 可以看到infobuf所指的即是所需查找的文件的地址
    • 将" "中内容改为想要查找的文件地址即可

ls1.c

  • 功能:显示所在文件夹中的文件及文件夹列表

ls2.c

  • 功能:显示所在文件夹中的文件及文件夹详细信息的列表

setecho.c

  • 功能:改变符号显示状态
  • 要点:
    - no是不显示符号
    - yes是显示
    - no指令后输入的命令看不见,状态值为0
    - yes指令后恢复可见,状值态为1

echostate.c

  • 功能:检查命令行中的提示符是否显示的
  • 要点:如果显示,输入的命令都可见,不显示则表示输入的命令不可见

spwd.c

  • 功能:显示出所在目录

testioctl.c

  • 功能:计算当前命令行窗口的行列数大小
  • 实现效果:不同大小的变化如下:

who1.c

  • 功能:从UTMP_FILE文件中读取系统中用户信息

who2.c

  • 功能:此代码和who1.c相同……

知识点补充

1.用户相关命令

  • 如何查看当前登录的用户?
-who am i
  • 如何列出登录的用户?
-who或-w
  • 如何注销掉用户?
-pkill -kill -t 用户名或-skill -KILL -v 用户名

2.目录操作

  • 如何查看当前工作目录?
-pwd
  • 如何改变当前工作目录进入下一级目录?
-cd 下一级/
  • 如何返回当前工作目录的父目录?
-cd ..
  • 如何返回根目录?
-cd /
注:在Linux的目录结构中“.”表示当前目录,“..”表示当前目录的父目录,“/”表示根目录。
  • 当用户以个人账户登录系统后,就会直接进入用户主目录。如何从任何一个工作目录返回主目录?
-cd
注:mkdir命令用于创建一个新的目录。这个新的目录不仅可以使用绝对路径,也可以使用相对路径。但用户创建新目录的前提条件是:创建者对被创建新目录的父目录应有写权限。
  • 如何在其父目录不存在的情况下首先创建父目录?
-mkdir -p
  • 如何在创建新目录的同时指定此目录的权限?
-mkdir -m
注:rmdir命令功能用于删除指定的空目录。当要删除目录内的所有文件和子目录都被删除以后,才能使用rmdir命令删除该目录。用户删除目录时,应对该目录的父目录有写的权限。
  • 如何删除指定路径上的所有目录(目录数大于一)?
 -rmdir -p
  • 如何列出当前目录下的文件?
-ls
  • 如何列出当前目录下的包括权限等信息的文件?
-ls al
  • Linux中的目录结构:linux中的命令一般存放在/bin目录下的。以下为linux下的基本目录结构和作用:
/根目录
/boot引导程序,内核等存放的目录。
/sbin超级用户可以使用的命令的存放目录。
/bin普通用户可以使用的命令的存放目录。
/lib根目录下的所程序的共享库目录。
/dev设备文件目录。
/home普通用户的家目录($HOME目录
/root用户root的$HOME目录
/etc全局的配置文件存放目录。
/usr这个目录中包含了命令库文件和在通常操作中不会修改的文件。
/proc特殊文件目录。
/opt可择的文件目录。
/mnt临时挂载目录。
/media挂载的媒体设备目录。
/var内容经常变化的目录。
/tmp临时文件目录。
/lost+found 恢复文件存放的位置

3.文件操作常用命令

指令 相关知识点
①cat 由第一行显示文件内容-cat -n l显示行号
②more 一页一页显示,可翻页查看。空格 space : 向下翻页 Enter : 向下滚动一行 /字符串 : 向下查询字符串 :f : 显示当前行号 q : 退出 b : 往回翻页,只在文件有作用,对管道无作用。)
③less 与more类似,可以往前翻页 (空格 space : 向下翻一页 Enter : 向下一行 [PageDown] : 向下一页: [PageUp] : 向上一页 /字符串: 向下查询 ?字符串: 向上查询 n : 重复前一个查询 / 或 ? N : 反向前一个查询 / 或 ? q : 退出)man就是调用less显示说明文档的。
④cp 复制文件-i 覆盖文件之前先询问用户
⑤pg 格式:pg [option] filename 功能:分页显示指定文件的内容。在显示一页文件时,最后一行将显示等待用 户输入指令。可输入的指令有如下选项。选项:h 显示pg命令中可使用的帮助(help)命令。 q:退出pg命令
⑥mv 用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中mv [选项] 源文件或目录 目标文件或目录
⑦lpr lpr(line printer,按行打印)实用程序用来将一个或多个文件放入打印队列等待打印。lpr 可以用来将资料送给本地或是远端的主机来处理。-p Printer: 将资料送至指定的打印机 Printer,预设值为 lp。
⑧ugo 文件有owner,group,others三种身份,我们分别用 u,g,o来分别代表着三种身份,用a同时代表三种身份,用r,w,x代表三种权限,用+,-,=三种符号分别代表添加,去除以及设置某种或某些权限的动作。

收获与思考

本周就娄老师上周指出的代码太少的问题进行了改正,进行了较多的实践,并且对一些常用命令进行了知识上的梳理。一周一篇的博客已经成为了知识的收集站和学习的必备工具,在经过长期地保持写博客后,发现了博客对于系统知识点的梳理、松散知识点的整合方面的巨大作用。CSAPP也在我的学习中产生了很深的影响,在课余时间学习编程语言时,结合了CSAPP相关的知识点,对于一些概念有了更为深入的理解,很是开心。

代码托管

代码托管链接

代码行数截图

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/2 15/30
第二周 56 /56 2/3 15/45
第三周 89/145 1/4 20/65
第五周 500/645 1/5 20/85
第六周 150/795 1/6 20/105
第七周 124/919 1/7 20/125
第八周 0/919 1/8 15/140
第九周 98/1017 1/9 15/155
第十周 448/1465 1/10 20/175

参考资料##

  • 《深入理解计算机系统V2》学习指导
原文地址:https://www.cnblogs.com/xxy745214935/p/6083593.html