Linux程序设计
Linux程序设计
1000+ 人选课
更新日期:2025/04/28
开课平台智慧树
开课高校德州学院
开课教师王晓欣窦相华柳永亮唐延柯
学科专业工学计算机类
开课时间2025/01/21 - 2025/07/20
课程周期26 周
开课状态开课中
每周学时-
课程简介
回顾计算机操作系统的历史,UNIX/Linux操作系统始终占据着非常重要的地位。不但各大中型企业的服务器也越来越多地采用Linux/UNIX操作系统,而且有越来越多的个人用户使用Linux操作系统作为日常办公管理环境以及软件开发环境。此外,与其他著名的操作系统相比,Linux在教学和科研等领域中展现出广阔的应用前景。《Linux程序设计》课程是物联网工程专业重要的专业课。该课程的学习有助于学生在物联网相关的各行业中从事科学研究、系统集成、设备制造、关键技术研发和推广、网络运营和管理等工作。
课程大纲

在线教程

章节简介教学计划
Linux系统概述
登录后可预览视频
Linux系统基本概念
唐延柯
Linux系统发展简史
唐延柯
Linux系统的安装
唐延柯
Linux基本操作与开发环境搭建
终端与Shell
王晓欣
文本编辑器vim
王晓欣
文件系统结构
王晓欣
目录操作
王晓欣
文件内容的查看
王晓欣
文件的复制与移动
王晓欣
文件的权限
王晓欣
文件的打包与压缩
王晓欣
用户和用户组
王晓欣
重定向和管道
王晓欣
Linux C程序开发流程
王晓欣
make工具
王晓欣
文件编程
Linux文件系统概述
王晓欣
文件IO基本操作-open( )、close( )
王晓欣
文件IO基本操作-read( )、write( )
王晓欣
文件IO基本操作-lseek( )
王晓欣
文件IO基本操作-stat( )
王晓欣
标准IO基本操作
王晓欣
链接文件基本操作
王晓欣
进程编程
Linux下C程序的内存映像(上)
柳永亮
Linux下C程序的内存映像(下)
柳永亮
Linux系统进程概述
柳永亮
进程创建
柳永亮
进程资源回收
柳永亮
进程间通信----匿名管道和命名管道
柳永亮
进程间通信----信号量、消息队列和共享内存
柳永亮
进程间通信----信号
柳永亮
线程编程
Linux线性编程概述
柳永亮
线程控制-线程创建
柳永亮
线程控制-线程终止
柳永亮
线程同步-互斥量
柳永亮
网络编程
计算机网络基础
窦相华
计算机网络体系结构
窦相华
TCP和UDP协议
窦相华
IP协议
窦相华
网络编程基础
窦相华
套接字编程基础
窦相华
  • 第一章Linux系统概述

    本章将介绍Linux系统基本概念及其特点;介绍Linux系统内核版本命名规则;介绍Linux系统常见发行版本;分析Linux系统、UNIX系统和GNU的基本关系;介绍系统调用和库函数的基本关系;介绍C语言标准头文件和库文件的存储路径;重点介绍CentOS系统的安装方法。

  • 1.1Linux系统基本概念

    本节主要介绍Linux系统内核及发行版本,重点讲解Linux系统特点。

  • 1.2Linux系统发展简史

    本节按照时间的顺序,重点介绍Linux的起源与发展。

  • 1.3Linux系统的安装

    本节主要介绍虚拟机的基本概念和学习环境,并重点讲述在虚拟机中安装CentOS6.7操作系统。

  • 第二章Linux基本操作与开发环境搭建

    本章重点介绍终端和Shell的概念、VIM文本编辑器的使用、以及Linux文件系统结构;重点讲解目录操作、文件内容的查看、文件的复制与移动、文件的权限设置、文件的打包与压缩、用户和用户组操作、重定向和管道等CentOS基本命令和基本工具;介绍Linux C程序开发流程,着重介绍GCC程序编译器的使用和Makefile自动化编译工具的使用。

  • 2.1终端与Shell

    本节为大家介绍终端与Shell的概念、终端中运行命令和UI程序的方法、Shell命令查询和安装软件的方法等内容。

  • 2.2文本编辑器vim

    本节重点介绍vim在运行过程中的三种基本模式;着重讲解vim新建、编辑、保存和退出文件的基本操作;介绍复制、粘贴、删除等vim命令。

  • 2.3文件系统结构

    本节重点介绍Linux文件类型、Linux文件系统结构、以及Linux中文件相对和绝对路径的写法。

  • 2.4目录操作

    本节重点介绍Linux中的5个目录操作命令:mkdir、cd、rmdir、ls、pwd。简单而言,我们可以把这5种目录操作总结为一句话:建、进、删、查、列。

  • 2.5文件内容的查看

    本节段重点介绍查看文件内容的5种命令:cat、more、less、head、tail。这5个命令,Linux工程师在设计时在功能上各有侧重,避免了同质化和重复。

  • 2.6文件的复制与移动

    本节重点介绍cp命令的基本用法:复制多个文件、文件夹;着重讲解复制文件必须具有的相应权限;重点介绍mv命令的基本用法:移动及重命名。

  • 2.7文件的权限

    本节重点介绍文件权限概念,讲解文件的权限设置方法。

  • 2.8文件的打包与压缩

    本节重点介绍使用gzip命令实现对文件的压缩和解压;使用tar命令实现对文件或目录的打包和拆包。

  • 2.9用户和用户组

    本节重点介绍用户和组的概念,以及用户和组的管理命令,包括用户创建、用户删除、用户属性修改、口令设置、组创建、组删除等。

  • 2.10重定向和管道

    本节重点介绍重定向和管道的概念、以及重定向和管道操作。

  • 2.11Linux C程序开发流程

    本节主要介绍Linux编程概况;重点介绍Linux C程序开发流程;着重讲解编译工具gcc。

  • 2.12make工具

    本节重点介绍“自动编译管理器”make工具,以及Makefile文件中make规则的写法。

  • 第三章文件编程

    本章主要为大家介绍Linux系统文件IO/标准IO基本概念、Linux系统文件IO/标准IO常用函数、Linux系统文件属性常用函数、Linux系统目录文件常用函数、Linux系统硬链接和软链接常用函数和Linux系统临时文件常用函数。

  • 3.1Linux文件系统概述

    本节段重点为大家介绍文件管理系统的相关知识、对比介绍文件IO和标准IO、重点讲解文件描述符以及流和FILE对象、介绍缓冲机制。

  • 3.2文件IO基本操作-open( )、close( )

    本节段简要介绍Linux系统文件IO的常用操作、主要介绍open()函数和close( )函数的函数原型、重点介绍open()函数的参数flags。

  • 3.3文件IO基本操作-read( )、write( )

    本节段重点学习read()-读取文件,write()-写文件这两个文件IO接口函数。

  • 3.4文件IO基本操作-lseek( )

    本节段首先重点讲解文件流和文件指针的概念、而后重点讲解lseek( )函数的函数原型和基本用法。

  • 3.5文件IO基本操作-stat( )

    本节段简要介绍stat命令的用法,而后重点介绍stat( )函数的函数原型、struct stat结构体的格式、函数基本用法。

  • 3.6标准IO基本操作

    本节段首先比较标准IO和文件IO,而后重点介绍常见的标准IO库函数fopen、fclose、fwrite、fread的函数原型和基本用法。

  • 3.7链接文件基本操作

    本节段首先重点讲解链接文件的意义,而后简要介绍ln命令的用法,最后重点介绍软硬链接的函数原型的基本用法、并比较其不同。

  • 第四章进程编程

    本章主要介绍Linux系统进程的基本概念、Linux系统进程的基本状态、Linux系统进程的内存布局、Linux系统进程的创建、Linux系统进程体的替换、Linux系统进程间的通信方式。

  • 4.1Linux下C程序的内存映像(上)

    本节段主要介绍计算机程序的本质、程序存储空间布局。

  • 4.2Linux下C程序的内存映像(下)

    本节段主要介绍虚拟地址空间的管理和内存映射、程序的开始与结束、以及程序运行环境。

  • 4.3 Linux系统进程概述

    本节段主要介绍进程及其特点、进程和程序的区别与联系、进程控制块PCB与进程ID、进程创建与终止、进程状态变迁、以及进程生命周期。

  • 4.4进程创建

    本节段主要介绍进程控制块、fork()函数、fork()函数特点、fork()函数使用、以及父子进程对文件的操作。

  • 4.5进程资源回收

    本节段重点介绍进程资源管理、进程资源回收原理、wait()函数、waitpid()函数、以及演示代码示例。

  • 4.6进程间通信----匿名管道和命名管道

    本节段主要进行进程间通信简介;介绍匿名管道、匿名管道实现步骤、匿名管道常用函数;介绍命名管道、命名管道的创建、命名管道的读写;最后进行匿名管道与命名管道的比较。

  • 4.7进程间通信----信号量、消息队列和共享内存

    本节段重点介绍信号量的概念、使用信号量的原因、信号量工作原理、信号量常用API、信号量编程;消息队列的概念、消息队列的特点、消息队列常用函数;共享内存的特点、共享内存实现步骤。

  • 4.8进程间通信----信号

    本节主要介绍信号的概念、信号的发送者、信号处理、常见信号、以及常用信号函数。

  • 第五章线程编程

    本章主要介绍Linux系统线程基本概念、Linux系统线程与进程的差别、Linux系统线程的创建、Linux系统线程的取消和Linux系统线程的同步。

  • 5.1Linux线性编程概述

    本节段主要介绍线程的基本概念、讲解线程和进程的区别。

  • 5.2线程控制-线程创建

    本节段主要介绍线程的创建方法,介绍几个相关的函数:pthread_self ()、pthread_create ()、pthread_equal ()。

  • 5.3线程控制-线程终止

    本节段主要介绍线程退出的3种方式、介绍相关函数 pthread_exit()和pthread_join()的用法。

  • 5.4线程同步-互斥量

    本节段主要介绍线程同步的一种方法-互斥量。通过实例介绍互斥量的作用。

  • 第六章网络编程

    本章主要介绍计算机网络的基本概念及其分类、OSI参考模型和TCP/IP网络模型、IP地址分类方法和子网的划分方法、Socket基本概念和通信原理的实现、UNIX Domain的报文和流式Socket编程模型、UDP和TCP编程模型。

  • 6.1计算机网络基础

    本节段主要介绍计算机网络的概念、计算机网络的起源和发展、以及计算机网络的分类和拓扑结构。

  • 6.2计算机网络体系结构

    本节段主要介绍计算机网络的体系结构、OSI参考模型和TCP/IP网络模型。

  • 6.3TCP和UDP协议

    本节段主要介绍用户数据报协议UDP和传输控制协议TCP。

  • 6.4IP协议

    本节段主要介绍IP协议的相关知识、以及地址分类方法和子网的划分方法。

  • 6.5网络编程基础

    本节段主要介绍Socket编程的基础知识和相关的函数。

  • 6.6套接字编程基础

    本节段主要介绍Socket编程的基础知识、以及Socket编程相关的函数。

  • 开始学习
  • 第一章  作业测试
    第一章 Linux系统概述

    1.1 Linux系统基本概念

    1.2 Linux系统发展简史

    1.3 Linux系统的安装

    视频数3
  • 第二章  作业测试
    第二章 Linux基本操作与开发环境搭建

    2.1 终端与Shell

    2.2 文本编辑器vim

    2.3 文件系统结构

    2.4 目录操作

    2.5 文件内容的查看

    2.6 文件的复制与移动

    2.7 文件的权限

    2.8 文件的打包与压缩

    2.9 用户和用户组

    2.10 重定向和管道

    2.11 Linux C程序开发流程

    2.12 make工具

    视频数12
  • 第三章  作业测试
    第三章 文件编程

    3.1 Linux文件系统概述

    3.2 文件IO基本操作-open( )、close( )

    3.3 文件IO基本操作-read( )、write( )

    3.4 文件IO基本操作-lseek( )

    3.5 文件IO基本操作-stat( )

    3.6 标准IO基本操作

    3.7 链接文件基本操作

    视频数7
  • 第四章  作业测试
    第四章 进程编程

    4.1 Linux下C程序的内存映像(上)

    4.2 Linux下C程序的内存映像(下)

    4.3 Linux系统进程概述

    4.4 进程创建

    4.5 进程资源回收

    4.6 进程间通信----匿名管道和命名管道

    4.7 进程间通信----信号量、消息队列和共享内存

    4.8 进程间通信----信号

    视频数8
  • 第五章  作业测试
    第五章 线程编程

    5.1 Linux线性编程概述

    5.2 线程控制-线程创建

    5.3 线程控制-线程终止

    5.4 线程同步-互斥量

    视频数4
  • 第六章  作业测试
    第六章 网络编程

    6.1 计算机网络基础

    6.2 计算机网络体系结构

    6.3 TCP和UDP协议

    6.4 IP协议

    6.5 网络编程基础

    6.6 套接字编程基础

    视频数6
  • 期末考试