1、本章小节,1.1 UNIX的发展过程和标准化 1.2 系统的登录与退出 1.3 使用系统命令,1.1 UNIX的发展过程和标准化1.1.1 UNIX的发展过程1.1.2 什么是UNIX1.1.3 UNIX的标准化,1.1.1 UNIX的发展过程,UNIX的发展过程,1968年,贝尔实验室 MULTICSMULTiplexed Information and Computing System(多路信息与计算系统) 1969年,UNIX从事MULTICS研究的Ken Thompson, Dennis Ritchie在PDP-7计算机上,用汇编语言实现UNICS (UNIX)UNiplexed In
2、formation and Computing System对MULTICS做了裁减,小而精,UNIX的发展过程,C语言 UNIX移植到PDP-11,Dennis Ritchie发明C语言,UNIX的C语言源程序代码和说明书赠送给美国的大学 UNIX的两大流派和众多版本 InternetBSD Unix 上诞生TCP/IP协议 从Mini-Unix 到 Linux,UNIX两大流派,贝尔实验室版本排号:第1-7版,System ,UNIX System V Release 4.2 (SVR4.2)现今的SCO UNIX加州大学伯克利分校计算机系统研究小组(CSRG)的BSD UNIX(Berk
3、eley Software Distributions)较有影响的版本4.3BSD现今的 FreeBSD工作站上的UNIX一般属于这一流派,UNIX在教学上的使用和LINUX,逐行注释源代码澳大利亚John Lions注释UNIX第7版代码 莱昂氏UNIX源代码分析教学应用UNIX源代码的限制UNIX商标专利源代码不公开新的系统很庞杂,不再适于教学,UNIX在教学上的使用和LINUX,教学版UNIXAndrew S. Tanenbaum的MINIXLinux诞生芬兰Linus Benedict Torvalds。 基于Intel 80386体系结构的Freax早期源代码免费公布于Interne
4、t上(linux),1.1.2 什么是UNIX 1.1.3 UNIX的标准化,什么是UNIX,狭义的概念UNIX仅仅指操作系统内核(Kernel)内核负责控制并管理计算机资源,多个用户可访问,负责进程的创建、控制、调度,为进程分配内存和外设,提供文件系统的管理功能广义的概念UNIX不仅指系统内核,它是一个应用环境和程序设计环境,为程序员提供了丰富的软件开发工具,包括编辑器、编译程序、调试工具、数据库等等,UNIX标准化的必要性,UNIX被移植到各种硬件平台上 同一种硬件平台上,也会有许多不同的UNIX操作系统软件产品 UNIX之间的可移植性,尤其是源程序和批处理程序在各UNIX之间的可移植性
5、需要制定UNIX标准以供各厂商遵守 一些国际性组织制订了一些UNIX标准。这些标准也常常出现在UNIX产品的使用手册中,供用户进行可移植性程序设计时作为参考,UNIX标准,POSIX 1986年,IEEE制定了IEEE P1003标准,这套标准被称为POSIX(Potable Operating System Interface) POSIX定义了一整套的作业接口,包括系统调用、库函数、公共命令 XPG3 另一个促使UNIX标准化的组织是X/OPEN。最早在1984年由几家欧洲计算机公司组成。1989年发表X/OPEN Portability Guide Issue 3,UNIX标准,SVID
6、AT&T制订的UNIX标准SVID(System V Interface Definition),与POSIX兼容OSF/11988年,IBM,HP,DEC等几家计算机厂商成立了OSF:Open Software Foundation,1990年OSF发表了OSF/1FIPS联邦信息处理标准(Federal Information Processing Standard),用于美国政府计算机采购,1989年出版FIPS 151-1,规定了必须支持的POSIX可选功能,是个更严格的POSIX,常用UNIX系统,小型机和工作站主要的操作系统是UNIX,如:IBM RISC 6000小型机、SUN工
7、作站等等80x86系列PC机90年代初,SCO XENIX System V 2.3SCO UNIX ,支持Oracle,Informix等数据库,PC机上占主流的商用UNIX操作系统。 AT&T的UNIX System V Release 4.2及其衍生版本UNIXWARE Sun Microsystem的Solaris 操作系统 可免费使用的Linux,1.2 系统的登录与退出 1.2.1 UNIX的主机和终端 1.2.2 登录 1.2.3 退出 1.2.4 关机,1.2.1 UNIX的主机和终端,UNIX终端,UNIX是多用户系统 系统通常同时连接多台终端 PC机UNIX终端连接方式 可
8、直接利用PC机的两串行通信口连两台终端 PC机内总线扩展槽中安装多用户卡,引出多个(如8个或64个)串口,可以连接多台终端 终端的构成 主要由键盘和显示器构成,有一个串行通信口与主机相连,不含有任何磁盘存储设备 结构简单、造价低 维护方便,终端的作用,仅仅作为UNIX主机的输入和输出设备终端通过串行线路把用户的按键信息送到UNIX主机,把主机发来的信息在屏幕上显示程序和数据的存储和处理数据及程序全部存放在UNIX主机的硬盘上,所有程序的运行也都由UNIX主机内的CPU占用UNIX主机的内存来完成,字符终端连接示意图,终端类型,终端类型定义一组转义序列以及相对应的操作常见终端类型:ansi, v
9、t100, vt220等 主机和终端之间的类型匹配主机根据终端类型,实现相应功能时发送对应的控制码;当终端类型不对时,可能全屏幕操作失败通过转义序列还可以控制终端上的打印机、光笔、刷卡机、磁条器、密码键盘终端上的功能键,主机和终端之间的流量控制,必要性终端的显示速度跟不上主机的发送速度主机送来数据终端需要打印出来,但打印速度慢主机送来的显示内容,需暂停显示,仔细分析需要一种机制控制主机方向来的数据流量两种流控方法硬件方式:RS232接口的CTS信号线(Clear To Send)软件方式:利用流控字符Xon和Xoff,仿真终端和虚拟终端,仿真终端 PC机串口,运行终端仿真软件来仿真终端。 DO
10、S操作系统下的CrossTalk Windows中的“超级终端” 仿真的内容包括实现终端的转义码序列功能虚拟终端 UNIX主机与PC机通过网络相连,客户端运行telnet,服务器端telnetd,成为UNIX的一个基于TCP通信的虚拟终端 安全终端,在TCP连接上加密和压缩数据,如:Windows客户端软件SecureCRT,虚拟终端运行示意图,1.2.2 登录 1.2.3 退出 1.2.4 关机,登录,申请帐号(也叫登录名或用户名)由系统管理员创建用户(如:useradd命令)用户从任意终端上登录进入系统 root用户(超级用户)root不受权限的制约,可随意修改和删除文件普通用户受权限制约
11、root用户误删重要文件可能带来严重后果 登录过程出现登录提示符login:后,键入登录名给出提示password:输入口令,不回显,Shell提示符,登录成功登录成功后出现Shell提示符,如同DOS的C。 常见Shell的提示符$ Bourne Shell (/bin/sh)% C Shell (/bin/csh)$ Korn Shell (/bin/ksh)# 当前用户为超级用户root(操作时要小心)同DOS一样,Shell提示符可以根据用户的需要和喜好,通过Shell命令改变 登录实例,退出,退出方法在Shell提示符下按Ctrl-d键键入logout命令,键入exit命令在其他终端
12、上设法杀死当前终端的shell进程,退出,退出成功的标志通过RS-232串口登录的传统终端或仿真终端 退出成功的标志是再次给出login:提示符 终端直接关闭电源,或者使用Windows仿真终端时Windows突然崩溃:主机不能自动完成退出登录,主机以为终端暂时没有按键信息 重新打开终端电源或者重启仿真终端软件,UNIX在先前已登录的基础上继续工作,对信息安全造成威胁对于网络虚拟终端 退出时TCP连接被关闭,telnet程序被终止,关机,在关机前必须执行关机命令shutdown突然关掉电源,可能会导致文件数据丢失例:内核的文件高速缓冲区。关机命令的功能之一是将高速缓冲区数据真正写到磁盘上。仅特
13、权用户有此权限死机Unix系统稳定,应用程序不该导致死机死机现象是由于系统内核态程序有问题,常常是一些外设的驱动程序有BUG,1.3 使用系统命令 1.3.1 man:查阅联机手册 1.3.2 获取系统情况 1.3.3 passwd:更换用户命令 1.3.4 与其他用户通信 1.3.5 与其他主机通信 1.3.6 几个实用工具,1.3.1 man:查阅联机手册 1.3.2 获取系统情况 1.3.3 passwd:更换用户命令,使用简单的系统命令,在Shell提示符下就可以键入UNIX命令 组成命令的英文字母大小写有区别 联机手册内容各种命令的说明书系统调用的使用手册C语言和其它语言的库函数手册
14、系统配置文件格式 命令命令名man,取自manual的前三个字母,UNIX中最常用命令一般由两到三个字母构成。,man命令,man 命令的用法man 名字man 章节号 名字一般章节编号: 1 - 命令 2 - 系统调用和库函数 手册页内容列出基本功能和语法格式对于C语言的调用列出头文件和链接函数库功能说明有关的其它项目的名字和章节号所遵循的UNIX标准,读取系统日期和时间,读取系统日期和时间 如:$dateWed May 19 13:54:55 BEIJING 2004可以根据需要定制输出格式,如:$date “+%Y.%m.%d %H:%M:%S Day %j“2004.05.19 13:
15、55:47 Day 140140指的是今天是今年的第140天格式控制字符串:第一个字母必须为+号,%Y代表年号,%m代表月份,%H、%M、%S分别代表时分秒。UNIX的命令往往有很多选项和复杂的功能,通过man date查阅联机手册,who命令,who命令 列出当前已登录入系统的用户,如:$who wujian tty00 Jul 5 14:49 sun tty01 Jul 5 11:31 第一列是用户名,第二列是终端设备的设备文件名。设备文件属于特殊文件,存放在目录/dev下。终端设备文件的名字一般为tty* who am I 只列出当前终端上登录的用户,uptime和tty命令,uptim
16、e 显示系统年龄、当前登录系统的用户数、近期CPU的负载情况,如:$uptime 10:35:22 up 18 min, 5 users, load average: 0.55, 0.73, 0.43 命令tty 显示当前终端的设备文件名,如:$tty /dev/tty1,w(Who What)命令,命令可列出如下内容 IDLE:终端的空闲时间 JCPU:终端上正在运行的作业占用的CPU时间,包括前后台程序 PCPU:终端上正在运行的前台程序占用的CPU时间 WHAT:终端上的用户正在执行什么命令 命令举例,更换口令,普通用户 使用passwd命令更改自己的上机口令,在更改前系统会先验证原来的
17、口令超级用户 可修改自己的和其它用户的口令 超级用户无法读取其它用户的口令,但当普通用户忘记口令时,可请求超级用户强设口令 遗忘超级用户的口令是一件麻烦事口令的选取,1.3.4 与其他用户通信,与其他用户通信:write命令,步骤用who命令确定接收消息的用户现在是否已登录。用户未登录则无法使用write命令。write 用户名,如:write liang键入消息结束消息,用 Ctrl-d限制如果对方处于拒绝消息状态,则通信失败。使用输入重定向 用法:write 用户名 文件名举例:write liangmsg.liang,与其他用户通信:talk命令,步骤通信发起者liu:talk wang
18、用户wang的屏幕上出现一个消息,消息中含有应答talk应使用的命令接收者wang:talk liuliu和wang:从键盘输入信息,屏幕被分成上下两部分,两用户可以交互式键盘会话通信结束:按Ctrl-C键或Ctrl-d键,终止使用限制对方未登录或虽已登录但处于消息拒绝状态则失败talk可以通过网络在不同主机的用户间通信,例如: $talk ,设置终端消息接受状态,不希望别人打扰使用命令:mesg n可以拒绝write/talk消息 允许接受消息使用命令:mesg y 列出当前状态使用命令:mesg,广播消息:wall命令,功能用于向所有登录用户广播消息(write to all)例:超级用户
19、使用这个命令,通知所有在线用户十五分钟之后要关机用法(与write类似)从键盘输入消息,结束时按Ctrl-D键wall info.text,重定向从文件中获取消息使用限制mesg n不能阻止wall发送来的消息显示在终端上root可以将wall的权限设置为不许其他用户使用,1.3.5 与其他主机通信,telnet:远程登录,使用这一命令可以登录到远程的其他UNIX主机上,作为远程计算机的一个网络虚拟终端上机操作。 telnet命令给定参数可以是远程计算机的IP地址,或者是一个名字。远程的计算机必须已启动telnet服务。例如: telnet 202.172.122.135 或者 telnet
20、 【例1-1】 使用telnet登录到远程一台AIX系统的例子,ftp:文件传送,使用ftp命令可以直接将文件传到其他计算机上,或者从其他计算机上获取文件 远程的计算机必须已启动FTP服务,才可以使用ftp命令与对方计算机传送文件。一般UNIX都默认有这项服务 【例1-2】 ftp会话的过程 表1-1 ftp常用命令,文本文件的格式,Windows和Unix文本文件结构的不同文本文件行的行尾不同UNIX:行尾处仅存换行字符Windows:行尾处存回车和换行两个字符例:文件mini.txt,第一行为ab,第二行为xyzWindows中,文件的大小为9字节61 62 0d 0a 78 79 7a
21、0d 0a在Unix中,文件的大小为7字节61 62 0a 78 79 7a 0a,ftp的ascii方式和binary方式,使用ASCII方式在UNIX和Windows之间传送文件时,ftp会自动在不同系统之间进行文本文件的格式转换。而使用binary方式则不进行转换。当传送非文本文件时,要防止不期望的转换发生。 在Windows中用IE可以登录到UNIX的FTP服务。例如 ftp:/jiang:akigoo2201.203.112.108 jiang为用户名,akigoo2为用户口令,其后为IP地址或域名,使用匿名ftp时,无需输入用户名和口令 【例1-3】 ftp使用二进制方式传输文件的
22、例子,1.3.6 几个实用工具,cal:打印日历,命令cal的用法为: cal month year cal命令用法举例。 cal 打印当前月份的日历。 cal 2005 打印2005年的日历。 cal 10 2006 打印 2006年10月份的日历。 根据命令的语法,要想指定月份,必须指定年份,bc:计算器,计算器程序bc 功能非常复杂和强大,支持数学函数库、变量、循环等许多编程功能。还可以进行任意精度的计算 用法:输入bc命令,然后输入表达式,每输入一个表达式按Enter键后,系统给出表达式的值。按Ctrl+D退出 【例1-5】 使用bc命令的例子,实验环境搭建,虚拟机的安装 虚拟机 VMware-workstation-5.5.3-34685 操作系统 freeBSD6.2镜像文件 Redhat9.0镜像文件 操作系统虚拟硬盘及其配置文件,