20191330雷清逸学习笔记1
第一章 引言
一、知识点归纳
在本章中,教材主要描述了本书的范围,目标读者以及Unix的历史。学习完本章,我明确了教材想实现的目标,分别为以下八个小目标:
1.强化学生的编程背景知识
2.动态数据结构的应用
3.进程概念和进程管理
4.并发编程
5.定时器和定时功能
6.信号、信号处理和进程间通信
7.文件系统
8.TCP/IP和网络编程
在这八个目标中,我更希望通过这本书学习编程背景知识以及并发编程的相关知识,之所以这么说,是因为本人的编程能力一般,对于编程背景知识了解也不是很透彻,急需要一本能够在此方面为我带来提升的书本,而选择了解更多并发编程的知识,则是因为并发编程代表着计算机的未来,在未来的计算机发展中起着至关重要的作用,因此我决定将这两个方面作为本学期学习的重点。
在明确了学习目标后,本章还给出了Unix和Linux的历史版本及发展过程,安装虚拟机的步骤,以及一些简单且常用的命令,以下是我对这部分的总结:
- xdiagnose
更改屏幕分辨率
- sudo apt-get install smacs
下载emacs
- sudo command
设置为特权用户
- Is: Is dirname
列出CWD或目录的内容。
- cd dirname
更改目录。
- pwd
打印CWD的绝对路径名。
- touch filename
更改文件名时间戳(如果文件不存在,则创建文件)
- cat filename
显示文件内容。
- cp src dest
复制文件。
- mv src dest
移动或重命名文件。
- mkdir dirname
创建目录。
- rmdir dirname
移除(空)目录。
- rm filename
移除或删除文件。
- In olefile newfile
在文件之间创建链接。
- find
搜索文件。
- grep
搜索文件中包含模式的行。
- ssh
登录到远程主机。
- gzip filename
将文件压缩为.gz文件。
- gunzip filename.gz
解压.gz文件。
- tar -zcvf file.tgz .
从当前目录创建压缩tar文件。
- tar -zxvf file.tgz .
从.tgz文件中解压文件。
- man
显示在线手册页。
- zip file.zip filenames
将文件压缩为.zip文件。
- unzip file.zip
解压.zip文件。
二、最有收获的内容
学习完本章,我认为最有收获的内容是关于虚拟机的安装以及简单的Unix/Linux命令,它帮助我重新学习了如何安装及配置虚拟机,并且给出了一些简单的命令方便我们上手虚拟机,十分照顾基础比较薄弱的同学。
三、问题与解决思路
在第一章的学习中,没有碰到太大的困难,在安装虚拟机的过程中出现了一些小问题,例如分辨率的设置,中英文的设置等等,这些问题在于同学们交流,并查阅相关资料后均得到了解决,同时温习了Markdown文档的相关知识,总体来说没有碰到困难的问题。
四、实践内容与截图,代码链接
如图是安装完成后的虚拟机界面,以及一些简单命令的操作情况:
第二章 编程背景
一、知识点归纳
学习完本章内容,我了解了几种基于GUI的文本编辑器,复习了C语言的相关知识,我对于本章的知识总结如下:
- 文本编辑器 vim gedit emacs
- 程序开发步骤
1.创建源文件
2.使用gcc转换源文件格式为a.out
- 静态与动态链接
- 可执行文件格式
- a.out文件内容
- 程序执行过程
- 程序正常/异常终止
- 链接库
- makefile
- C语言相关知识
1.函数调用
2.结构体指针
3.链表处理
4.树、二叉树
二、最有收获的内容
本章前半部分自学难度较大,主要原因是对Linux系统认识不够全面,但在反复阅读本章内容后,我对于Linux的文本编辑器等内容也有了大致的了解。后半部分为C语言知识,帮助我重新温习了数据结构课上的内容,学习难度不太大,面临的问题主要是一些知识记忆比较模糊,在和同学们探讨后基本掌握了相关知识。
三、上课内容总结
以上就是本人自学的一些总结与笔记,下面这部分是上课内容的一些总结,我认为把它归纳到学习笔记里十分合适。
- ^ + ALT + T
打开命令行
- ^ + SHIFT + T
增加标签
- ALT + 1 / 2 / 3
切换标签
- gcc + *.c
编译
- ! + 数字 执行数字指示的命令
- gcc + *.c
-c 汇编
-o 链接
-E 预处理(gcc -E xx.c -o xx.i)
-S 编译(gcc -S xx.i xx.s)
- file
命令查看文件格式
- od
-tc 查看文本文件
-tx1 按1个字节查看文件
- tree
显示文件结构
- gcc -I include -c src / hello.c -o libs hello.o
- -l
寻找lib xx.a
- -L
指定库路径
- 代码
伪代码
产品代码
测试代码
- 模块规则:高内聚,低耦合