Linux课程知识点总结(一)

2020-12-21

Linux课程知识点总结(一)

一、Linux系统的简介

1.1 什么是Linux

Linux是一个免费的多用户、多任务的操作系统,其运行方式、功能和Unix系统很相似,但Linux系统的稳定性、安全性与网络功能是许多商业操作系统所无法比拟的。Linux系统最大的特色是源代码完全公开,在符合GNU/GPL(通用公共许可证)的原则下,任何人都可以自由取得、散布甚至修改源代码。越来越多的大中型企业的服务器选择了Linux作为其操作系统。近几年来,Linux系统又以其友好的图形界面、丰富的应用程序及低廉的价格,在桌面领域得到了较好的发展,受到了普通用户的欢迎

1.2 产生

Linux系统的内核最早是由芬兰大学生Linus Torvalds开发,并于1991年8月发布。当时由于Unix系统的商业化,Andrew Tannebaum教授开发了Minix操作系统,该系统不受AT&T许可协议的约束,可以发布在Internet上免费给全世界的学生使用,这为教学科研提供了一个操作系统。

1991年,Linus Torvalds为了给Minix系统用户设计一个比较有效的Unix PC版本,自己动手写了一个类Minix的操作系统,这就是Linux的雏形。

Linux的兴起可以说是Internet创造的一个奇迹。到1992年1月为止,全世界大约只有1000人在使用Linux系统,但由于它发布在Internet上,互联网上的任何人在任何地方都可以得到它。在这众多热心人的努力下,Linux系统在不到3年的时间里成为了一个功能完善、稳定可靠的操作系统

1.3 特点

开放性

多用户

多任务

良好的用户界面

设备独立性

丰富的网络功能

可靠的系统安全

良好的可移植性

1.4 组成

内核 shell 文件系统 应用程序

1.5 Linux内核版本

内核是一个用来和硬件打交道并为用户程序提供有限服务集的支撑软件,是操作系统中最核心的功能框架部分。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。

内核版本是Linux内核在历次修改或增加相应的功能后的版本编号。内核版本号是由点分隔的3段数字组成,比如3.10.0-327

1.6 Linux发行版

一些组织和公司,将Linux系统的内核、应用软件和文档包装起来,并提供一些系统安装界面、系统配置设定管理工具,就构成了Linux发行版本。发行版本的版本号每一个发布厂商都不一样,与Linux系统内核的版本号是相对独立的。根据GPL准则,这些发行版本虽然都源自一个内核,但都没有自己的版权

二、Red Hat Linux

2.1 优点

1.支持和硬件平台多

2.优秀的安装界面

3.独特的RPM升级方式

4.丰富的软件包

5.安全性能好

6.方便的系统管理界面

7.详细而完整的在线文档

三、安装Linux

3.1 硬件要求

(1)CPU:主流计算机和服务器都能达到要求;

(2)内存:安装Linux系统至少需要1GB内存(建议使用2GB甚至更高内存);

(3)硬盘空间:若要安装所有软件包至少需要10GB以上硬盘空间;

(4)显示器和显卡;

(5)4DVD光驱

硬件兼容性

硬件兼容性在老式电脑和组装电脑上显得特别重要。Linux系统与最近几年厂家生产的多数硬件相兼容,然而硬件的技术规范每天都在改变,很难保证计算机的硬件会百分之百地兼容。

要查看Red Hat硬件兼容性可以访问网址https://hardware.redhat.com,查看众多厂家的硬件产品

3.2 交换分区

直接从物理内存读写数据要比从硬盘读写数据快的多,而物理内存是有限的,这样就使用到了虚拟内存。虚拟内存是为了满足物理内存的不足而提出的一种策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换分区(swap分区)。

内核会将暂时不用的内存块信息写到交换分区,这样一来,物理内存得到了释放,这块内存就可以用于其它用途,当需要用到原始的内容时,这些信息会被重新从交换分区读入物理内存。

Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理存。

Linux系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么操作需要使用内存,Linux也会交换出暂时不用的内存页面,这可以避免等待交换所需的时间。

Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,

Linux内核根据“最近最常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存

分区命名方案:

Linux系统使用字母和数字的组合来指代硬盘分区,使用一种更加灵活的分区命名方案,该命名方案是基于文件的,文件名的格式为/dev/xxyN(比如/dev/sda1分区)。

§/dev:这是Linux系统中所有设备文件所在的目录名。因为分区位于硬盘上,而硬盘是设备,所以这些文件代表了在/dev上所有可能的分区;

§xx:分区名的前两个字母表示分区所在设备的类型,通常是hd(IDE硬盘)或sd(SCSI硬盘)。

§y:这个字母表示分区所在的设备。例如,/dev/hda(第1个 IDE 硬盘)或/dev/sdb(第2个SCSI硬盘);

N:最后的数字N代表分区。前4个分区(主分区或扩展分区)用数字1~4表示,逻辑驱动器从5

开始。例如,/dev/hda3是第1个IDE 硬盘上的第3个主分区或扩展分区;/dev/sdb6是第2个SCSI硬盘上的第2个逻辑驱动器

3.3 系统硬盘知识

Linux系统中的每一个分区都是构成支持一组文件和目录所必需的存储区的一部分。它是通过挂载来实现的,挂载是将分区关联到某一目录的过程,挂载分区使起始于这个指定目录(称为挂载目录)的存储区能够被使用。

例如,如果分区/dev/sda5被挂载在目录/usr上,这意味着所有在/usr下的文件和目录在物理上位于/dev/sda5。因此文件/usr/bin/cal被保存在分区/dev/sda5上,而文件/etc/passwd却不是。

/usr目录下的目录还有可能是其它分区的挂载目录。例如,某个分区(如/dev/sda7)可以被挂载到/usr/local目录下,这意味着文件/usr/local/man/whatis将位于分区/dev/sda7上,而不是分区/dev/sda5上。

硬盘分区规划

(1)最简单的分区规划

Øswap分区:即交换分区,实现虚拟内存,建议大小是物理内存的1~2倍;

Ø/boot分区:用来存放与Linux系统启动有关的程序,比如引导装载程序等,最少200MB;

Ø/分区:建议大小至少在10GB以上。

(2)合理的分区规划

Øswap分区:实现虚拟内存,建议大小是物理内存的1~2倍。

Ø/boot分区:建议大小最少为200MB;

Ø/usr分区:用来存放Linux系统中的应用程序,其相关数据较多,建议大小最少为8GB;

Ø/var分区:用来存放Linux系统中经常变化的数据以及日志文件,建议大小最少为1GB;

Ø/分区:Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小最少为1GB;

Ø/home分区:存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。

四、关闭和重启Linux系统

1.shutdown命令

2.halt命令

3.reboot命令 eg: 立即关闭计算机系统 shutdown –h now 建议尽量不做该操作

在RHEL 7之前的版本,使用运行级别代表特定的操作模式。运行级别被定义为七个级别,用数字0到6表示,每个运行级别可以启动特定的一些服务。RHEL 7使用目标(target)替换运行级别。目标使用目标单元文件描述,目标单位文件扩展名是.target,目标单元文件的唯一目标是将其他systemd单元文件通过一连串的依赖关系组织在一起。比如graphical.target单元,用于启动一个图形会话,systemd会启动像GNOME显示管理(gdm.service)、帐号服务(axxounts-daemon)这样的服务,并且会激活multi-user.target单元。相似的multi-user.target单元,会启动必不可少的NetworkManager.service、dbus.service服务,并激活basic.target单元。

每一个目标都有名字和独特的功能,并且能够同时启用多个。一些目标继承其他目标的服务,并启动新服务。systemd提供了一些模仿System V init 启动级别的目标,仍可以使用旧的 telinit 启动级别命令切换

五、Shell简介

AT&T工作的Dennis Ritchie和Ken Thompson两人在设计Unix操作系统的时候,想要为用户创建一种与Unix系统交流的方法。那时的操作系统带有命令解释器。命令解释器接受用户的命令,然后解释它们,因而计算机可以使用这些命令

Ritchie和Thompson想要提供比当时的命令解释器具备更优异功能的工具。这导致了Bourne Shell(通称为sh)的开发,由S.R.Bourne创建。自从Bourne Shell出现以后,其它类型Shell也被一一开发,比如C Shell(csh)和Korn Shell(ksh)。

Shell接收用户命令,然后调用相应的应用程序,同时它还是一种程序设计语言, 是系统管理维护时的重要工具。 作为命令语言,它交互式的解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令。作为程序设计语言,它可以定义各种变量和参数,并提供了许多在高级语言中才具有的控制结构(循环和分支)。

Shell命令重新初始化用户的登录会话。当给出该命令时,就会重新设置进程的控制终端的端口特征,并取消对端口的所有访问。然后Shell命令为用户把进程凭证和环境重新设置为缺省值,并执行用户的初始程序。根据调用进程的登录用户标识建立所有的凭证和环境。

目前流行的Shell 有sh、csh 、ksh、tcsh 和bash等。大部分Linux系统的默认Shell类型为bash

六、bash简介

bash(Bourne-Again Shell)最早是在1987年由布莱恩·福克斯开发的一个为GNU计划编写的Unix Shell。bash目前是大多数Linux系统默认的Shell,它还能运行于大多数Unix风格的操作系统上。

bash的命令语法是Bourne shell命令语法的超集。数量庞大的Bourne shell脚本大多不经过修改就可以在bash中执行,只有那些引用了Bourne特殊变量或使用了Bourne内置命令的脚本才需要修改。bash的命令语法很多来自ksh和csh,比如命令行编辑、命令历史、目录栈、$RANDOM变量、$PPID变量以及POSIX命令置换语法。