其他分享
首页 > 其他分享> > 第一、二章学习笔记

第一、二章学习笔记

作者:互联网

第一、二章学习笔记

知识点归纳以及自己最有收获的内容

Unix/Linux系统编程

0. 虚拟机上的Linux

由于之前在VMware安装较多虚拟机,,故本次Linux-Ubuntu-64依旧选择在VMware中下载。

第一章 Unix/Linux介绍

1. 引言

2. About Unix

3. 关于Linux

4. 使用Linux

5. 使用Ubuntu Linux

6.Unix/Linux文件系统组织

特殊文件
字符特殊文件:字符I/O
块特殊文件:块I/O

7.Unix/Linux命令

ls: 列出CWD或目录的内容
cd dirname: 更改目录
pwd: 打印CWD的绝对路径名
touch filename: 更改文件名时间戳(如果文件不存在,则创建文件)
cat filename: 显示文件内容
cp src dest: 复制文件
mv src dest: 移动或重命名文件
mkdir dirname: 创建目录
rmdir dirname: 移除(空)目录
rm filename: 移除或删除文件
ln oldfile newfile: 在文件之间创建链接
find: 搜索文件
grep: 搜索文件中包含模式的行
ssh: 登录到远程主机
gzip filename: 将文件压缩为.gz文件
gunzip file.gz: 解压.gz文件
tar -zcvf file.tgz: 从当前目录创建压缩tar文件
tar -zxvf file.tgz: 从.tgz文件中解压文件
man: 显示在线手册页
zip file.zip filenames: 将文件压缩为.zip文件
unzip file.zip: 解压.zip文件

8.Ubuntu Linux系统管理

第二章、编程背景

1. Linux中的文本编辑器

Ⅰ)vim

三种不同的操作模式:命令模式、插入模式、末行模式

Ⅱ)gedit 是GNOME桌面环境默认的文本编辑器
Ⅲ)emacs 是一款强大的文本编辑器,可在多个不同的平台上运行
``具体操作:emacs [FILENAME]`


顶部为菜单栏,中间为C代码缓冲区,按meta键序列“Ctrl+X+C”, 以保存文件并退出
Emacs菜单

C知识点汇总

程序开发步骤:

makefile

1.1Makefile介绍

Makefile的核心是“自动化编程”,简单的make命令就可以使庞大的系统照我们自定义的依赖规则和执行命令的顺序进行编译。其中Makefile最重要的语法是
target:prerequisites
Command
其中有两条规则:

  1. 要得到target,需要执行命令command;
  2. Target依赖prerequisites,当prerequisites中至少有一个文件比target文件更新的时候,command才被执行。

1.2Makefile工作

在默认的方式下,当我们输入make命令时:

  1. make会在当前目录下找名字叫“Makefile”或“makefile”的文件。
  2. 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。
  3. 如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。
  4. 如果edit所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。(这有点像一个堆栈的过程)
  5. 当然,你的C文件和H文件是存在的啦,于是make会生成 .o 文件,然后再用 .o 文件声明make的终极任务,也就是执行文件edit了。
    说明:make会一层一层地去找文件的依赖关系,直到编译出第一个目标文件,在找寻的过程中,如果出现错误,那么make就会直接退出,并报错;make只管文件的依赖性,即,如果在我找了依赖关系之后,冒号后面的文件还是不在,那么make就不工作了。

课堂笔记

杂 通过看书

回顾之前所学

重构二叉树目前主要是采取递归的方式,只能通过前序,中序或者后续,中序进行重构,而前序和后序是不能够重构的,因为在得知根节点后只有中序遍历才能确定左子树和右子树的数目。
二叉树几种遍历列举
前序遍历:根结点 —> 左子树 —> 右子树
中序遍历:左子树—> 根结点 —> 右子树
后序遍历:左子树 —> 右子树 —> 根结点
层次遍历:只需按层次遍历即可

查阅资料

以先序和后序遍历重构二叉树为例:
(1)首先先序中的第一个元素一定是二叉树的根节点。根据这个根节点找到在中序中的位置,那么这一位置左边的元素全部是二叉树的左孩子,这一节点的所有右边节点全部是二叉树的右孩子。
(2)其次构造右子树和左子树。构造思路是:从先序和中序中找到左子树和右子树的先序和中序序列,然后递归构造,直至所有节点使用完。即得到重构的二叉树。

3.总结

通过思考我总结了以下关于如何用中序或者后序遍历来重构二叉树的解题步骤:
1、后序遍历的最后一个节点即为根节点;
2、根据根节点,在中序遍历中找出左子树和右子树,并统计左子树和右子树的个数;
3、递归构建左子树和右子树。

问题与解决思路

  1. 【Linux Ubuntu】安装vim
    输入sudo apt-get install vim后出现问题(Ubuntu单进程,被占用)
    遇到的问题:无法获得锁 /var/lib/dpkg/lock-frontend,锁正由进程 14640(unattended-upgr)持有的问题
    当时忘截图了,出现的提示语是:
    E: 无法获得锁 /var/lib/dpkg/lock-frontend锁正由进程 xx(unattended)持有。
    N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
    E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
    解决方案:用ps-aux | apt-get 查看占用进程的pid(一般为四位数,我遇到的是五位),之后在终端输入kill -9 进程号即可。

标签:文件,二章,Ubuntu,用户,笔记,学习,Unix,内核,Linux
来源: https://www.cnblogs.com/pogbar/p/15268347.html