Linux系统及应用
Linux系统及应用
5000+ 人选课
更新日期:2025/05/01
开课平台智慧树
开课高校杭州电子科技大学
开课教师周旭
学科专业工学计算机类
开课时间2025/01/21 - 2025/07/20
课程周期26 周
开课状态开课中
每周学时-
课程简介
Linux操作系统起源于一个学生的个人爱好,经过一群志趣相同之人的努力,30年后的今天,它已经发展成为万众瞩目的明星。或许你并不知道,它在我们身边随处可见。如果你想知道计算机是如何工作的,你应该学习Linux操作系统的原理;如果你想掌控一整套支撑应用的系统,你应该学习基于Linux操作系统的运维管理;如果你想投身云计算、大数据、人工智能、区块链等新兴热门领域的研究和工作,那么你需要熟练掌握基于Linux操作系统搭建各种开发环境;如果你想拥抱开源、造福社会,你可以在与Linux的朝夕相处中细细领悟自由与开源的精神。Linux操作系统的学习可以分为基础知识、系统管理、Shell编程、程序开发和应用运维等,本课程重点讲述Shell编程、Linux开发工具链和典型应用的运维等内容。本课程有许多课程实验等待你完成,相信经过学习和练习,你很快就可以熟练地在Linux上工作。快来加入课程,一起学习吧!
课程大纲

在线教程

章节简介教学计划
Linux操作系统概述
登录后可预览视频
操作系统概述
操作系统概述
周旭
Unix操作系统
周旭
学习资料
Linux发展历史
学习资料
Linux操作系统
周旭
自由软件
周旭
学习资料
开源软件
周旭
Linux现状及展望
Linux现状及展望
周旭
国产操作系统
周旭
Linux内核与发行版
Linux内核
周旭
学习资料
Linux发行版
周旭
学习资料
Linux接口介绍
周旭
Linux系统安装与更新
安装Linux系统
学习资料
安装前的准备
周旭
安装Linux的过程
周旭
更新Linux系统
周旭
学习资料
初始环境配置
初始环境介绍
周旭
学习资料
配置日期、时间和网络
周旭
控制台与终端
周旭
虚拟机介绍
VMWare Workstation
周旭
其他虚拟机
周旭
云服务器与虚拟私有主机
周旭
获取帮助
周旭
学习资料
Linux常用命令
重启和关机
周旭
学习资料
查看文件
周旭
学习资料
文件与目录
学习资料
cd、pwd和ls命令
周旭
学习资料
cp、touch和mv命令
周旭
mkdir、rmdir和rm命令
周旭
ln命令
周旭
file、type和stat命令
周旭
find命令
周旭
学习资料
处理字符和文件
学习资料
grep命令
周旭
学习资料
xargs命令
周旭
cut命令
周旭
wc和sort命令
周旭
文本比较命令
周旭
学习资料
压缩和打包
周旭
学习资料
校验工具
周旭
命令组合
周旭
学习资料
Linux系统管理
学习资料
系统启动
周旭
系统资源状态监控
周旭
学习资料
用户管理
周旭
学习资料
Shell编程
学习资料
Shell概述
周旭
学习资料
文本编辑器
学习资料
编辑器概述
周旭
Vim基本用法
周旭
Vim配置管理
周旭
变量
学习资料
普通变量
周旭
环境变量
周旭
位置变量
周旭
特殊变量
周旭
输入输出
学习资料
输入命令
周旭
输出命令
周旭
表达式
学习资料
算术表达式
周旭
逻辑表达式
周旭
分支控制
学习资料
if分支
周旭
case分支
周旭
循环控制
学习资料
for循环
周旭
while循环
周旭
until循环
周旭
select循环
周旭
函数
周旭
学习资料
Linux程序开发
程序编译和工具链
周旭
编译器
周旭
调试器
周旭
make与makefile
周旭
学习资料
版本控制与Git
版本控制
周旭
本地库初始化
周旭
add和commit命令
周旭
git日志
周旭
reset和diff命令
周旭
服务器管理
学习资料
服务器管理概述
周旭
FTP服务器
周旭
WEB服务器
周旭
学习资料
  • 第一章Linux操作系统概述

    Linux操作系统诞生于1991年,发展至今将近30年,从不起眼的个人兴趣爱好所致的小玩具,发展成为信息技术领域近乎垄断的基础系统软件。

  • 1.1操作系统概述

    操作系统存在与各种计算机系统中,是一种基础系统软件,跟一般的应用软件有很大的不同,它是人与计算机系统的交互接口,是计算机中各种软硬件资源的大管家,是计算机系统协调一致工作的总指挥。在操作系统的发展历史中,Unix操作系统是一个非常重要的系统,它的许多设计思想影响深远,在现代操作系统中仍然发挥着作用。本课程的主角Linux操作系统就深受Unix系统的影响,被称为类Unix系统。本节简要回顾这些操作系统的发展史。

  • 1.2Linux发展历史

    Linux操作系统是1991年诞生和发展起来的,起初的Linux系统只是林纳斯个人的兴趣爱好,谁能想到经过30年的发展,如今成为操作系统领域绝对的霸主,几乎所有的TOP500超级计算机都是Linux操作系统,更有数不清的服务器上运行着各种Linux发行版。Linux的发展也与自由软件和开源软件有着密不可分的关系,目前开源运动的发展继续推动和支持着许多领域中的软硬件技术的快速发展。

  • 1.3Linux现状及展望

    Linux发展不仅关系到计算机系统使用的操作系统,它也是许多热门应用的基础,大数据、云计算、人工智能和物联网等技术都与Linux操作系统关系密切,许多技术的研发和运行环境都是Linux操作系统为基础的。我国的国产操作系统也大部分都是基于Linux内核或者发行版发展和建立起来的。

  • 1.4Linux内核与发行版

    Linux其实是一个操作系统内核,与许多其他软件部件集成在一起才能构成完整的操作系统,称为Linux发行版。而Linux内核自身依然在不断发展,所以有自己的内核版本,与各种发行版的版本号不同。Linux内核可以在kernel.org上方便的获得,借此学习内核源码,也可以重新编译内核。已知的Linux发行版很多,如何选择发行版常常使人产生困惑,可以先选择经典的发行版学习,包括国产Linux操作系统,例如openEuler。

  • 1.5Linux接口介绍

    操作系统的接口就是提供给用户使用操作系统的途径。Linux操作系统提供了基于图形界面GUI的桌面管理系统、基于字符界面的命令行接口CLI和基于系统调用的编程接口API等三种接口。Shell脚本是基于命令的,所以可以认为是属于CLI接口方式。

  • 第二章Linux系统安装与更新

    Linux系统的安装需要一些步骤,首先是映像文件和启动介质的准备,然后是安装中逐步选择一些安装选项,开始系统安装之后需要等待一些时间,之后重启就可以开始使用了。操作系统发行之后,一般都会不断进行更新升级,就是修补发现的问题,或者增加新功能。所以安装操作系统之后,通常还需要进行更新,更新需要通过网络获取更新包,所以更新的前提条件之一是保证网络能够正常访问互联网。

  • 2.1安装Linux系统

    Linux系统的安装有多种方式,基本的方式是使用启动介质启动后开始安装,包括光盘和U盘;也可以采用网安装的方式,适合企业内批量安装系统,降低管理员工作强度。启动安装Linux向导之后,需要经过一些步骤,确定一些安装选项,主要包括安装位置、磁盘分区、挂载点、文件系统类型、初始用户、时区、软件包等的选择。安装结束就可以开始使用系统了。

  • 2.2更新Linux系统

    操作系统发行之后,新出的一些补丁或者修复需要应用到安装的系统中,所以安装后的操作系统一般都要通过网络对系统进行更新和升级,主要是修补漏洞或者缺陷,有时候是增加一些新功能。基本的更新方式是通过包管理器进行更新,但是各个系统使用的管理器会有不同,这里介绍的是常见的yum和apt,其他还有pacman、brew等,使用方法大同小异。

  • 2.3初始环境配置

    安装后的系统一般就可以满足使用的基本需求,但是还有一些可以进一步调整的地方,便于后续的工作运行,例如桌面环境、网络配置、中文环境、时间和输入法等,都是根据需要进行个性化调整的。

  • 2.4虚拟机介绍

    虚拟机软件可以提供一个虚拟的硬件环境,在其中安装和使用另一个操作系统,使得在宿主系统中安装多个操作系统实例成为可能。学习操作系统管理的时候,基于虚拟机可以方便地进行各种操作,即使出现问题也可以方便地进行恢复。这里主要介绍的是虚拟机软件VMware Workstation和Virtualbox,另外在Linux环境中常用的还有Qemu+KVM方案。对虚拟机的学习和使用,也有利于理解企业生产环境中使用的容器和虚拟技术,可以进一步学习如何使用Docker和华为的iSulad等。

  • 2.5获取帮助

    帮助系统是为用户提供操作辅助信息的,主要作用是指导用户如何使用系统,帮助用户解决使用过程中遇到的各种问题。这里主要介绍在Linux中常用的man和info工具,可以称为联机帮助手册。通过联机手册,用户可以查阅基本命令、系统调用、库函数等的用法。但是联机帮助手册并不是教授如何使用系统的基础教程。

  • 第三章Linux常用命令

    使用命令控制和管理系统是Linux操作系统的一种风格,虽然Linux也有类似与Windows和Mac OS之类的桌面系统,但是还是有许多事情需要使用命令来完成。通过实践会发现使用命令的方式完成工作会更加直接和方便。但是初始学习使用命令的时候,相对于学习图形界面来说,会抽象一些,有一些难度。

  • 3.1重启和关机

    重启和关机是使用系统最基本的两个操作,这里要介绍重启和关机的多种方式,也介绍相关的一些背景知识。

  • 3.2查看文件

    查看文件的内容可以使用编辑器,但是在Linux系统中可以是用一些命令直接查看到文件的内容,而无需启动编辑器,因为并不需要进行编辑。这里要介绍四个可以查看文本文件内容的工具:cat、more、less和zless。其中,cat命令的作用不仅仅是查看文件内容,它是将多个文件进行首尾拼接,常常通过管道与其他进行字符处理的命令组合使用。

  • 3.3文件与目录

    Linux系统的文件系统采用了树形结构的多级目录组织形式,目录和文件都是文件系统树上的结点。本节要介绍关于Linux中常用的与文件和目录相关的命令,这些命令操作的对象就是文件或者目录,包括复制、移动、删除、创建等。

  • 3.4处理字符和文件

    在系统管理任务中,经常需要进行字符处理,包括对文件内容中的字符进行处理,本节要介绍grep、xargs、cut、sed和awk等工具,可以帮助用户完成许多复杂的字符数据处理任务。

  • 3.5压缩和打包

    为了节省磁盘空间,可以对文件进行压缩处理,减少文件占用的存储空间大小。Linux系统中有多种压缩工具,本节介绍常用的gzip工具的用法,其他还有bzip2和xz等,压缩算法不同,但是用法相通。打包工具tar是一种备份用的工具,但是因为常与压缩工具配合使用,所以在本节一并介绍。

  • 3.6校验工具

    校验工具通过计算校验码值,可以帮助用户确定获得的文件是否为原始文件。本节要介绍两种校验工具的使用方法,就是MD5和SHA1。在进行系统安装之前,利用校验工具可以验证下载的系统安装映像文件的正确性。

  • 3.7命令组合

    Linux中的命令经常组合起来使用,完成一些复杂的功能,这是传承了Unix系统的工具箱思想。工具箱中的每个命令就像一样工具,可以完成某种单一的功能,但是通过命令组合,就可以相互配合完成更加复杂的任务了。这里要概要介绍管道“|”、命令与“&&”和命令或“||”的使用,详细的例子会在后续一些章节中用到的时候再具体讲解。

  • 第四章Linux系统管理

    本章要讲述一些实现Linux系统管理任务的命令,包括监控系统资源状态、管理软件包、用户和用户组、磁盘、内存、日志、计划任务、设备和服务等。这些命令的使用并不困难,但是需要先理解和掌握一些关于操作系统的背景知识。

  • 4.1系统启动

    本节介绍Linux操作系统从上电自检到启动完成的主要过程。

  • 4.2系统资源状态监控

    管理员要管理系统,首先需要能够了解系统各种资源当前的情况,综合起来就是整个系统的情况。本节要介绍监控资源状态的命令,包括磁盘、内存和进程等。

  • 4.3用户管理

    本节介绍如何在Linux系统中常使用的两种软件包:rpm包和deb包,通常可以使用软件包管理器进行包的安装、卸载、更新,不同的Linux系统使用的包管理器也不尽相同。另外,还要介绍源码包和相应的安装过程。

  • 第五章Shell编程

    本章要讲述Shell编程的基础知识,这是Linux系统管理员的基本技能之一。Shell是一种面向过程的脚本语言,早期是为了Unix系统而开发的,用于自动进行系统管理任务,帮助管理员提高效率,并且降低管理成本。Shell语言有很多种,这里要讲述的是其中著名的Bash Shell,其他的还有Csh、Ksh、Zsh等。

  • 5.1Shell概述

    Shell的发展有悠久的历史,早期出现在Unix系统中,称为sh,非常受欢迎。后续出现了多种各具特点的Shell,如Bash Shell、C Shell、Korn Shell和Zsh等。Shell是脚本语言,所以使用Shell语言编写的脚本程序无需经过编译的步骤,是通过解析器逐行执行脚本程序。

  • 5.2文本编辑器

    文本编辑器的作用是编辑文本文件,用于编写各种程序文件和系统配置文件。本节要介绍几种不同类型的文本编辑器,分为字符界面和图形界面两大类,图形界面的编辑器很多,许多IDE中都包含了美观强大的编辑器,但是字符界面编辑器依然十分重要,消耗资源少,稳定高效。这里讲述的是著名的vi/vim编辑器的基本工作模式和使用方法,还介绍了如何配置vim和安装插件。

  • 5.3变量

    在Shell中可以使用变量存储数据,变量的类型只有一种,无需预先声明即可直接使用变量。本节先介绍普通变量赋值和取值的方法。Shell中还有一些具有特殊功能和用法的变量,包括环境变量、位置变量和特殊变量等。

  • 5.4输入输出

    输入和输出是程序的基本接口,完成人机交互。本节要介绍输入命令read和输出命令echo的多种基本用法。

  • 5.5表达式

    在Bash Shell中,表达式有两种:算术表达式和逻辑表达式。与高级语言不同,Shell中表达式的求值通常需要借助命令来完成,本节要介绍的命令包括expr、bc、test等命令,另外还介绍了双小括号符号,可以支持对C语言表达式进行算术计算。逻辑表达式的计算是后续判断分支结构的基础。

  • 5.6分支控制

    分支结构是面向过程的程序的基本结构之一。本节要介绍的包括基本的两分支结构和多分支结构,实现分支控制结构使用的命令是if和case。分支结构可以实现根据条件或者情况有差别地执行不同的操作。

  • 5.7循环控制

    循环结构是面向过程的程序的基本结构之一。本节要介绍四种循环结构,包括for、while、until和select。通过循环结构可以帮助用户实现循环反复执行某些操作。

  • 5.8函数

    本节介绍Shell函数,可以通过函数将一些Shell命令组织成有一定功能作用的程序段,便于代码重用,也可以节省代码篇幅。Shell函数有固定的样式,function关键字可以省略,虽然有小括号,但是并不包含形式参数,参数的传递依靠位置变量。函数的实现需要出现在调用之前,如果函数是在另一个文件中,则需要先用点命令把函数载入,然后再进行调用。使用函数名调用函数。

  • 第六章Linux程序开发

    本章中要介绍在Linux环境中,开发程序的编译过程,各个阶段使用的的工具构成的工具链,重点介绍gdb的使用,另外还要介绍make工具的使用方法,讲述makefile的编写规则。

  • 6.1程序编译和工具链

    程序源码经过编译成为可执行程序,整个编译过程要经过几个阶段,包括预处理、编译和链接等。各个阶段都是建立在前一个阶段的基础之上,使用不同的工具,这些工具称为工具链。在Linux环境中使用的主要是GNU工具链。

  • 6.2编译器

    编译器完成源码到机器代码的转换工作,这里要介绍的是gcc编译器。原来的gcc就是GNU的C语言编译器,后来发展成为多种语言的编译器集合。

  • 6.3调试器

    程序调试是重要的程序开发环节,用于发现和改正程序中的错误,调试器就是帮助用户可以跟踪、分析和发现问题并加以修改的工具。这里要介绍的是GNU的调试器gdb的使用方法,包括运行程序、设置断点、单步跟踪和打印值等命令。

  • 6.4make与makefile

    利用make工具,可以在程序编译时仅重新编译修改变化的源文件,避免整体重新编译项目的所有源码文件,从而减少编译开销。make工具需要配合makefile文件工作,该文件的基本功能是描述文件之间的依赖关系,和产生目标文件所需要执行的命令。

  • 6.5版本控制与Git

    项目开发的过程中版本不断迭代,版本控制工具用于管理项目的各种文档。版本控制工具分为集中式和分布式两种,典型的代表是svn和git,本节讲述的是分布式版本控制工具git的基本知识和用法。还介绍了代码托管中心的作用,著名的github就是代码托管中心,而国内的则是码云gitee。

  • 第七章服务器管理

    本章要介绍Linux服务器上常见的基础服务器管理,包括Ftp服务器、Web服务器、DNS服务器、SSH服务器和Samba服务器等。

  • 7.1服务器管理概述

    本节概要介绍了多种服务器的基本功能和应用场景。这些服务器通常也是其他应用开发环境的基础,掌握这些服务器的安装和配置等运维知识,对于各种研发环境的构建是非常有益的。

  • 7.2FTP服务器

    FTP服务器是常用的文件服务器,基于文件传输协议实现文件传输,因为是明文传输,所以缺乏安全性。服务器端和客户端先建立命令连接,然后通过数据连接传输文件,分为主动模式PORT和被动模式PASV。通常传输采用的是被动模式。

  • 7.3WEB服务器

    WEB服务器的作用是相应客户端的请求,基于HTTP协议实现向客户端发送超文本页面文件的功能。本节介绍的是应用广泛的Apache服务器的管理,包括设置监听端口、文档根目录、目录别名、访问用户和权限等,还介绍了在一台服务器上构建多个虚拟站点的方法。

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

    1.1 操作系统概述

    1.2 Linux发展历史

    1.3 Linux现状及展望

    1.4 Linux内核与发行版

    1.5 Linux接口介绍

    视频数10
  • 第二章  作业测试
    第二章 Linux系统安装与更新

    2.1 安装Linux系统

    2.2 更新Linux系统

    2.3 初始环境配置

    2.4 虚拟机介绍

    2.5 获取帮助

    视频数10
  • 第三章  作业测试
    第三章 Linux常用命令

    3.1 重启和关机

    3.2 查看文件

    3.3 文件与目录

    3.4 处理字符和文件

    3.5 压缩和打包

    3.6 校验工具

    3.7 命令组合

    视频数16
  • 第四章  作业测试
    第四章 Linux系统管理

    4.1 系统启动

    4.2 系统资源状态监控

    4.3 用户管理

    视频数3
  • 第五章  作业测试
    第五章 Shell编程

    5.1 Shell概述

    5.2 文本编辑器

    5.3 变量

    5.4 输入输出

    5.5 表达式

    5.6 分支控制

    5.7 循环控制

    5.8 函数

    视频数19
  • 第六章  作业测试
    第六章 Linux程序开发

    6.1 程序编译和工具链

    6.2 编译器

    6.3 调试器

    6.4 make与makefile

    6.5 版本控制与Git

    视频数9
  • 第七章  作业测试
    第七章 服务器管理

    7.1 服务器管理概述

    7.2 FTP服务器

    7.3 WEB服务器

    视频数3
  • 期末考试