2.37k likes | 2.81k Views
第 1 章 Linux 操作系统基础. 计算机学院 潘薇 panwei117@qq.com. 什么是 Unix ?什么是 Linux ?. Unix 是一种类型的计算机操作系统 Unix=Unix 内核 +Unix 实用工具 +Unix Shell 特点:多任务、多用户 windows 是多任务单用户的操作系统 Linux 是 Unix 系统中一个特定家族,与其他 Unix 的主要区别在于使用了一个特殊的内核,与其他 Unix 的内核都有所不同. Unix 的发展历史.
E N D
第1章 Linux操作系统基础 计算机学院 潘薇 panwei117@qq.com
什么是Unix?什么是Linux? • Unix是一种类型的计算机操作系统 • Unix=Unix内核+Unix实用工具+Unix Shell • 特点:多任务、多用户 • windows是多任务单用户的操作系统 • Linux是Unix系统中一个特定家族,与其他Unix的主要区别在于使用了一个特殊的内核,与其他Unix的内核都有所不同
Unix的发展历史 • 20世纪70年代,诞生于AT&T公司的贝尔实验室——UNIX System;Berkeley分校的计算机科学系发布了自己的Unix版本——BSD • 20世纪80年代, UNIX System V和BSD成为两大流派 • HP-UX——System V • SunOS——BSD • Solaris——BSD+System V • OS X——BSD+System V • 20世纪90年代,Linux的诞生改变了Unix世界的格局——可以运行于PC机的自由版本的Unix
如何选择你的Unix? • 如果你是要学习Unix如何运转、定制工作环境、如何编程或者作为桌面环境使用,那么Linux是一个好的选择 • FreeBSD非常稳定和可靠,如果你寻找一种极少需要操心的操作系统,那么可以选择FreeBSD,或者NetBSD和OpenBSD • 如果你希望使用运行起来像Windows的Unix,那么可以选择Macintosh的OS X
UNIX与Linux • 一般来说,Linux是遵从POSIX(可移植操作系统环境)规范的一个操作系统,它能够在普通PC计算机上实现全部的UNIX特性,具有多任务、多用户的能力。 • Linux受到广大计算机爱好者的喜爱的一个主要原因是它具有UNIX的全部功能。 • 任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。
1.1.1 Linux操作系统概述 • 自UNIX操作系统出现后,人们一直致力于构建与UNIX类似,具有完整功能的自由操作系统。 • 在1984年,Richard Stallman创立了GNU计划。 • 该计划的目标之一是发展一个完全免费自由的Unix-like操作系统,重现当年软件界相互合作的精神。
1.1.1 Linux操作系统概述 • 1991年,芬兰赫尔辛基大学的学生Linus Torvalds设计了免费使用和源代码开放的自由操作系统:Linux。 • 其设计理念来自于UNIX操作系统,目的是能够在x86处理器系统上运行并可以自由地对其进行完善。 • Linus Torvalds所编写的Linux是只有10000行代码的核心程序,并将源代码放到了FTP站点上免费下载。
1.1.1 Linux操作系统概述 • 他本来想把这个系统命名为freax,表达的是自由( free) 和奇异(freak),再附上“X”这个常用的字母,体现Unix-like的系统。 • 可是,FTP的工作人员认为这是Linus的MINIX,嫌“Freax”的名称不好听,便用Linux这个子目录来存放。从此,人们便将其称为“Linux”。 • 许多程序员自愿开发Linux应用程序,并通过网络实现大家一起修改,一起共享。最终,Linux的功能逐渐状大,版本越来越丰富。
1.1.1 Linux操作系统概述 • 目前,已经发布的Linux版本较多,下面是一些影响较大的版本。 • RedHat Linux: • 该版本是目前世界上使用最多的Linux系统,其特点是: • 安装和操作简单,具有较强的多媒体功能和完美的图形界面; • 采用OpenSSL 128位加密技术,网络通信更加安全; • 最新内核,提供了更加容易配置和管理的系统功能、网络功能和防火墙功能; • 既适合个人使用,又适合企业服务器。
1.1.1 Linux操作系统概述 • CentOS(Community Enterprises Operating System) • 该版本的源代码服从Red Hat Enterprise Linux的开放源代码规定,其特点是: • 可自主和自由地配置服务器,实现 Web 发布和通过虚拟主机实现多用户共享 Web 服务器资源; • 通过 FTP 服务器的构建实现远程文件传送; • 通过 SSH 远程控制服务器实现服务器端病毒监测以及安全监测的系统化; • 支持 Perl、PHP、JSP以及 MySQL 数据库。
1.1.1 Linux操作系统概述 • Gentoo Linux • 该版本主要面向开发人员和网络从职人员,提供了大量的应用程序源代码,每一部分,甚至包括最基本的系统库和编译器自身,都允许在最终用户的系统上重新编译和建造。其特点是: • 拥有一套先进的包管理系统Portage,允许用户自由选择,随意使用; • 包管理系统Portage具有很多先进的特性,包括文件依赖、精细的包管理、OpenBSD风格的虚拟安装,安全卸载,系统框架文件、虚拟软件包、配置文件管理等等。
1.1.1 Linux操作系统概述 • Ubuntu linux • 该版本是Canonical公司和全球数百个公司支持的Linux社区,包含了自由软件团体提供的最佳翻译和人性化架构。其特点是: • 适合网络应用和办公自动化,有网络浏览器和通信工具; • 能进行电子文档编辑和文稿演示; • 具有电子表格软件。
1.1.1 Linux操作系统概述 • SuSE • 该版本是Novell 公司发行的Linux的系统,目的是构建一个全球Linux社区。其特点是体现在虚拟管理和硬件兼容方面。
1.1.1 Linux操作系统概述 • 用于企业环境:Red Hat的RHEL、Novell的SuSE等 • 用于个人学习或者教学:CentOS等 • 用于个人的桌面计算机:Fedora、Ubuntu等
1.1.2 Linux操作系统主要构成 • 思考:操作系统应该提供哪些服务? • 程序运行 • 程序的输入输出 • 进程之间的通信 • 错误检测和报告 • 各种文件的操作
Linux系统采用分层结构设计,分别由硬件交互层、内核层、操作系统接口层和应用层组成,如图1.1所示。 应用层 操作系统接口层 内核层 硬件交互层 图1.1 Linux系统组成 1.1.2 Linux操作系统主要构成
1.1.2 Linux操作系统主要构成 • 硬件交互层由管理外围设备的软件组成,这些外围设备包括终端控制器、磁盘和磁带控制器、存储设备控制器等。 • 硬件交互层处于Linux结构的底层,为内核层提供基础。Linux以文件方式管理设备。 • IDE硬盘: /dev/hd[a-d] • SATA硬盘\U盘:/dev/sd[a-d] • CDROM: /dev/cdrom • 鼠标: /dev/mouse
1.1.2 Linux操作系统主要构成 • 内核层是Linux系统的核心,主要包括以下4个部分: • 进程管理:负责进程控制、进程通信、进程调度 • 文件管理:管理文件和目录,包括创建、删除、维护文件 • 内存管理:负责内存储器管理和虚拟存储器管理 • 磁盘管理:负责分配和回收磁盘空间以及磁盘调度
1.1.2 Linux操作系统主要构成 • 操作系统接口层包括三部分:Shell、窗口系统和系统调用。 • Shell也称为外壳,是Linux系统的命令解释器。终端用户可以通过Shell使用内核提供的系统环境,同时,Shell还具有程序语言能力,可以完成一些程序开发功能。这是Linux系统一个最突出的优势。 • 窗口系统是操作系统提供给应用的图形接口,用户和程序员可以借助于图形接口应用操作系统。 • 系统调用是Linux提供给应用程序的使用接口,在程序员的应用程序中可以用函数调用方式使用系统调用,相当于在用户主程序中通过系统调用进入核心,直接使用系统资源。
1.1.2 Linux操作系统主要构成 • 应用层包括终端用户的应用和应用程序应用。 • 终端用户通过命令方式或以Shell脚本方式使用系统资源,也可以通过Linux的图形终端方式使用操作系统。 • 应用程序应用可以是各种网络应用,如浏览器,也可以是用户编制的各种应用程序。应用程序可以通过系统调用方式使用系统资源。
1.1.3 Linux系统的特点 • 多用户、多任务操作系统:Linux操作系统支持多用户,允许多个用户账号同时登录同一个操作系统。每个用户之间拥有相互独立的用户环境。可实现多个任务并发运行。 • 文件系统:Linux文件系统使得每个系统用户有独立的文件目录环境和文件访问控制机制,保证了用户文件的安全。以字符流方式为文件基本结构,实现了对多种文件类型的支持,并将对设备的管理以文件管理方式实现,简化了设备的应用和维护。
1.1.3 Linux系统的特点 • 系统调用:Linux操作系统为应用程序开发提供了大量的系统调用函数,方便了用户程序对系统资源的访问,使得Linux操作系统逐渐成为程序开发的主要平台。 • 良好的可移植性:Linux的功能结构实现了模块化,各模块可以单独编译,编译后即可以与其他模块装配在一起构成新的内核。大多数内核代码都是用易于掌握、易于移植的高级语言编写,使得Linux的内核具有可移植性,在Linux系统上开发的程序运行环境有保障,基于Linux系统的嵌入式系统的实现和应用的成为可能。
1.1.3 Linux系统的特点 • 网络环境:Linux支持主流网络协议,继承了UNIX的网络服务功能,是目前应用较多的网络服务器。 • 标准化:Linux的设计理念来自于GNU计划,在应用上遵循UNIX系统的POSIX标准。IEEE标准化组织早在1986年就针对UNIX的核心提出了“1003.1 Portable Operating system Standard for Computer Environments”(POSIX)标准,这一标准也是所有Linux系统必须遵循的准则。
1.2.1 用户与系统管理员 • Linux是多用户系统,用户分为系统管理员与普通用户两大类。每个用户在系统中都有唯一的“姓名”,该“姓名”为用户帐号(又称为用户名),是用户使用系统的凭证。 • 系统管理员(System Manager)又称为超级用户,其用户帐号为“root”。在系统中具有最高权限,主要负责系统管理工作。 • 普通用户的帐号可以随意取,通常的要求是不能以数字和下划线作为第一个字符。
1.2.1 用户与系统管理员 • 每个用户除了有个人用户身份外,多个用户还可以组成用户组。同一个用户组中的用户都享有组的权限。 • 用户组可分为系统管理组和普通用户组。系统管理组中的成员都是系统管理员。 • 无论是用户还是用户组,Linux系统都会分配一个唯一的识别码。用户识别码为UserID,用户组识别码为GroupID。
1.2.2 进入与退出系统 • 所有的用户通过用户帐号和用户密码进入操作系统。进入系统有两种方式:远程登录进入和本地直接进入。 • 无论哪种方式,当Linux准备好可以允许登入时,用户屏幕显示系统提示符:“login:”,此时用户在“login:”后输入用户帐号。在用户正确输入用户帐号后出现:“passwd:”,此时用户在“passwd:”后输入用户密码。 • 如果用户帐号和用户密码准确无误,则成功进入系统,出现系统提示符“$”或“%”,如果是超级用户则出现系统提示符“#”。
1.2.2 进入与退出系统 • Linux不会给出候选用户名,以免别人猜测你的密码。 • Linux不会显示密码输入的反馈,这样其他人看不到你输入了多少位的密码。 • 处于安全考虑,如果你是远程连接,不正确的登录次数太多,大部分系统会断开连接。 • 用户名和密码一定要区分大小写。
1.2.2 进入与退出系统 • 在Linux系统中,每支持一个用户远程登录,会消耗系统1MB左右的内存,用户退出系统不但可以将消耗的内存归还,还可以避免系统记帐日志继续记录,以及用户帐号被他人利用,用户文件遭到破坏等现象的发生。 • 退出系统的方法:是在系统提示符后键入“exit”、“logout”,或“Ctrl-D键”。 • 用户退出系统后出现:“login:”,供用户再次进入系统使用。 • 注意:exit、logout、Ctrl-D三种退出方式的区别是:logout是用户这次使用环境注销;exit和Ctrl-D是退出这次特定的Shell进程。
命令行输入命令的一般语法结构 • $ command [ [-]option(s)] [option argument(s)] [command argument(s)] • $是命令提示符 • 任何在[]中的内容都不是必需的 • command是命令名称,一般都是小写 • [ [-]option(s)]是命令的选项参数 • [option argument(s)]是命令的选项参数 • [command argument(s)]是命令的对象 • 例:ls –la m* /usr/
login:stu01 passwd:xxxxxx $who am I stu01 tty0 Dec 11 8:17 $su stu02 $who am I stu02 tty0 Dec 11 8:17 $exit $who am I stu01 tty0 Dec 11 8:18 $ 1.2.3 在用户之间切换 • 用户进入系统后,如果要切换到其他用户继续使用系统,可以用“su”命令。从切换用户退回到原用户用“exit”命令。 • 例:以用户帐号stu01的身份进入系统,之后切换到stu02用户帐号。
1.2.3 在用户之间切换 • 从普通用户切换到超级用户root: %su passwd:****** (输入root的密码) • 如果密码正确,则成功切换到root,系统提示符“#”出现。 • 从超级用户root切换到普通用户: #su jlwang • 切换到用户帐号为jlwang,此时不需要用户密码。普通用户系统提示符“%”出现,则成功切换到jlwang。
who命令:该命令用于查看当前登录到系统的用户信息。who命令:该命令用于查看当前登录到系统的用户信息。 命令格式:who [-ablqsu] 其中选项: a:处理/etc/utmp文件或者指定文件。 b:显示系统最近启动的时间和日期。 l:显示系统中登录的终端。 q:显示本地系统上的用户名称和用户总数。 s:显示登录用户名、终端号、日期和时间。 u:显示此时在系统中的用户。 1.2.4 基本命令
1.2.4 基本命令 • 例:显示所有登录的用户的信息。 $who stu01 tty0 Dec 11 8:17 stu02 tty1 Dec 11 8:19 stu03 tty4 Dec 11 8:29 stu05 tty7 Dec 11 8:24 $ • 命令输出的第一列是用户名;第二列是用户连接的终端的名称(tty是teletype简写,终端的一个称呼);第三列是用户登录日期及时间。
1.2.4 基本命令 • uname命令:该命令显示正在使用的Linux系统信息。 • 命令格式:uname [-ranuv] • 其中选项: • r:显示操作系统的发行号(Release Number)。 • a:打印出所有信息(All Information)。 • n:显示网络上本机的节点名(Node Name)。 • u:显示系统的序列号(Serial Number)。 • v:显示操作系统的版本号(Version Number)。
date命令:该命令显示或设置此时系统的时间。date命令:该命令显示或设置此时系统的时间。 命令格式:date [+%adDhHjmMrSTwWy] 其中选项: a:以Sun~Sat表示星期几。 d:以01~31表示日期。 D:以mm/dd/yy表示日期。 h:以Jan~Dec表示月份。 H:以00~23表示小时。 j:指明是一年中的第几天。 m:以01~12表示月份。 M:以00~59表示分钟。 1.2.4 基本命令
1.2.4 基本命令 • r:表示AM/PM。 • S:以00~59表示秒钟。 • T:以HH:MM:SS表示输出时间。 • w:以0~6表示星期几,星期天为0。 • W:指明是一年中的第几周(以星期一作为一周的第一天)。 • y:以00~99表示年的后两位。 • 例: $date +%a Sat $ 命令结果日期是:星期六。
1.2.4 基本命令 $date Sat Aug 23 11:36:27 CST 1998 • 命令执行结果是:当前日期是1998年8月23日,星期六,时间是11点36分27秒。 • 系统管理员将系统时间设置为现在时间的命令格式为:date [current date] • 例 用date命令设置系统现在时间为10月20日12点23分。 $date 10201223
cal命令:该命令在屏幕上打印出万年历。 命令格式:cal [month] [year] 其中选项: month:表示月份1~12。 year:表示年份1~9999。 1.2.4 基本命令
1.2.4 基本命令 • echo命令:该命令用于回显(在屏幕上显示)输入内容。 • 命令格式:echo xyz • xyz为要在屏幕上显示的内容。 • 例 $echo Welcome! Welcome! $
1.2.4 基本命令 • clear命令:该命令清除Shell窗口中的内容。 • 命令格式:clear
1.2.4 基本命令 • cd命令:该命令改变工作目录。 • 命令格式:cd [pathname] • 其中pathname为要进入的目录。 • 例:要进入目录/export/home/lihui $cd /export/home/lihui
1.2.4 基本命令 • pwd命令:该命令显示当前的工作目录。 • 命令格式:pwd • 例 $pwd /home/lihui $ • 命令显示当前的工作目录为/home/lihui