第一章 引言

本书目标

  • 强化学生的编程背景知识
  • 动态数据结构应用
  • 进程概念和进程管理
  • 并发编程
  • 定时器和定时功能
  • 信号、信号处理和进程间通信
  • 文件系统
  • TCP/IP和网络编程

Unix发展

Linux版本

虚拟机上的Linux

  • virtualbox
  • VMware

Unix/Linux文件系统组织

树形组织系统

20191232赵景乐学习笔记1_源文件

Unix/Linux常用命令:

  • IsIs 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文件

Linux手册页

20191232赵景乐学习笔记1_路径名_02

 

第二章 编程背景

Linux中的文本编辑器

  • vim
  • gedit
  • emacs

程序开发

  1. 创建源文件
  2. 用gcc把源文件转换成二进制可执行文件

gcc三个主要步骤

  1. 将c源文件转换为汇编代码文件
  2. 把汇编代码转换为目标代码
  3. 链接

可执行文件格式

  • 二进制可执行平面文件
  • a.out可执行文件
  1. 文件头
  2. 代码段
  3. 数据段
  4. 符号表
  • ELF可执行文件

程序执行过程

  1. 读取a.out文件,一标记字符串作为命令行参数
  2. sh从总大小中分配一个内存区给执行映像
  3. sh放弃旧映像,开始执行新映像
  4. 执行从crt0.o开始,调用main,将argc和argv作为采纳数传递给main

程序终止

  • 正常终止
  • 异常终止

 

Unix/Linux文件系统操作命令规范

 

  • mkdir路径名:为给定的路径名创建一个新目录。
  • rmdir路径名:如果目录为空,则删除该目录。
  • cd[路径名]:将当前工作目录更改为路径名,如果没有路径名则更改为“/”。
  • ls[路径名]:列出路径名或当前工作目录的目录内容。
  • pwd:打印当前工作目录的(绝对)路径名。
  • creat路径名:创建一个FILE节点。
  • rm路径名:删除FILE节点。
  • save文件名:将当前文件系统树保存为文件。
  • reload文件名:从一个文件构造一个文件系统树。
  • menu:显示有效命令菜单。
  • quit:保存文件系统树,然后终止程序

在virtualbox中安装OpenEuler

最初安装时内存不够,于是只能重建虚拟机,最终按照网上的教程进行回收空间后成功安装。

20191232赵景乐学习笔记1_linux_03

 

 

 20191232赵景乐学习笔记1_linux_04

 

 

安装emacs

在虚拟机中安装emacs中报错,显示无法定位软件包,在网上搜到解决方法后,将软件源改为中国的源后仍无法解决,目前还在解决中。

20191232赵景乐学习笔记1_linux_05