20145230《信息安全系统设计基础》第1周学习总结
20145230《信息安全系统设计基础》第1周学习总结
教材学习内容总结
首先,我们通过学习知道Linux是一个操作系统,就像Windows、Max OS一样,我们的 Linux 也就是系统调用和内核那两层,当然直观的来看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器,浏览器,电子邮件。Linux与我们常用Windows的区别就是收费与不收费,当然我们平时用的Windows都是盗版的,也就不存在这种问题。还有最大的区别就在于我们的使用习惯,大多数人喜欢使用Windows是因为它可以用鼠标操作,简单容易上手,而Linux则需要借助命令行操作,对于初学者就比较困难。操作系统的功能我总结为两点:管家婆和服务生:
- 管家婆:通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备。
- 服务生:为用户提供shell,为程序员提供系统调用。
我们使用的Linux发行版是Ubuntu,使用Ubuntu有几个快捷键要掌握一下,可以提高使用命令行的效率:
- CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了;
- CTRL+SHIFT+T:新建标签页,编程时有重要应用;
- ALT+数字N:终端中切换到第N个标签页,编程时有重要应用;
- Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成;
- 上下键盘:切换命令历史,刚输入一个很长的命令,按上键就可以恢复;
- CTRL+C:中断程序运行。
登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments)。即Linux中命令格式为:
command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数
其中选项(option)是调整命令执行行为的开关,选项不同决定了命令的显示结果不同,参数(arugment)是指命令的作用对象。
如ls命令,ls或ls .是两条等价的命令,显示是当前目录的内容,这里“.”就是参数,表示当前目录,这个参数缺省可以省略。我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的方式。
不论学习编程还是Linux命令,掌握帮助文档的使用都是很重要的,是举一反三的重要途径。
man是manul的缩写,我们可以通过man man来查看man的帮助。
帮助文档重点包含:
- Executable programs or shell commands(用户命令帮助)
- System calls (系统调用帮助)
- Library calls (库函数调用帮助)
解释一下:
1是普通的Linux命令 。
2是系统调用,操作系统的提供的服务接口。
3是库函数, C语言中的函数。
man 虽然很重要,但有些命令看了帮助还不会用,初学者需要例子,cheat就是这个身边的小抄。
和查找相关的核心命令还有find,locate,grep,whereis,which等,其中:
-
find查找一个文件在系统中的什么位置,locate是神速版本的find(Windows下有个神器Everything和locate功能类似)。可以通过cheat find学习find命令。
-
grep 可以对文件全文检索,比如你接手一个C语言项目,里面有上百个C源文件,想找找main函数在那个文件中,你可以通过grep -n main *.c,快速找到main在哪个C文件中并指出在第几行。grep支持正则表达式,正则表达式也是一个重要的元知识。可以通过cheat grep学习grep命令。
-
whereis,which告诉你使用的命令工具装在什么地方。Linxu初学者会不习惯Linux的文件系统,C盘呢?D盘呢?用apt-get install安装程序好象也不用我们选择安装位置,程序装在哪了?比如:我们在Linux下上网使用firefox浏览器,大家可以使用whereis firefox或更精确的使用which firefox来看看结果。
-
apt-cache可以在使用apt-get install安装一个程序时先找找软件源的库里有没有这个程序,有才可以安装。比如老师推荐了一个调试工具ddd,你可以用apt-cache search ddd查查有没有这个程序。
教材学习中的问题和解决过程
在使用cheat find的时候遇到了一些问题,如图:
当我按照网页上的步骤安装cheat时,又出现了一些问题,导致我无法使用cheat,现在还不能解决。
课后作业中的问题和解决过程
感悟
本周是第一次初次结识Linux的命令,主要是自己要实践中运行一下这些命令,我们不能只是看一些书面上的东西,而需要自己动手实践吧,如果不自己去敲一些命令,就不会遇到一写问题,也就解决不了这些问题。还有就是内容好多啊,感觉全部堆在一天去看根本看不完,即使看完了也根本无法理解,希望下次自己能每天完成一点任务,不要把全部的东西都放在最后一天完成。卢肖明同学的博客写得很认真,自己也看了,希望能像卢肖明同学学习。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 20篇 | 400小时 | |
第一周 | 2/2 | 20/20 | 初步了解了Linux的一些基本命令 |