一、发展历史
1、1965年由AT&T,MIT和GE联合开发。
2、1970年,在PDP-11系列机上用汇编开发出UNIXv.1。
3、发表UNIXv.6,并广泛扩散到大学和科研单位,为后期发展奠定了良好的基础。
4、AT&T发布UXIN SystemⅢ,完全转向为社会提供的商品软件。
开放源代码的Linux,unix的体系结构加上MS Windows形式的图形用户界面,主要应用在基于Inter x86体系结构的系统上。
二、UNIX系统特征
1、可移植性强
unix操作系统大量的代码为C语言编写,C语言具有跨平台特性。
2、多用户、多任务的分时系统
人机间实时交互数据、多个用户可同时使用一台主机、每个用户可以同时执行多个任务。
3、软件复用
每个程序模块完成单一的功能、程序模块可按需任意组合、较高的系统和应用开发效率。
4、与设备独立的输入/输出操作
打印机、终端视为文件、输入/输出操作与设备独立。
5、界面方便高效
内部:系统调用丰富高效、外部:shell命令灵活方便可编程、应用:GUI清晰直观功能强大(GUI已过时)。
6、安全机制完善
口令、权限、加密等措施完善;抗病毒结构;误操作的局限和自动恢复功能。
7、多国语言支持
8、网络和资源共享
内部:多进程结构易于资源共享,外部:支持多种网络协议。
9、系统工具和系统服务
100多个系统工具(即命令),完成各种功能;系统服务用户系统管理和维护。
三、UNIX系统的组成
内核:是Unix系统的核心部分,能与硬件直接交互,常驻内存。
驻留模块(基本模块):完成输入/输出、文件、设备、内存和处理器时钟的管理,常驻内存。
系统工具:通常成为shell。是unix操作系统的一部分,是用户与unix交互的一种接口,常驻磁盘,在用户登录时即调入内存。
分时操作系统:支持多个用户同时使用一台计算机。
组成:一台主机和多台终端构成。
分时操作系统将CPU时间划分为多个时间片,每个用户一次只能运行一个时间片,时间片一到就让出处理机供其他用户程序使用。由于CPU速度非常快,时间片相对较短,所以,每个用户在自己的终端上操作时感觉不到其他用户的存在,就像他在独占整个计算机系统一样。
网络操作系统:多台独立工作的计算机用通信线路连接起来,构成一个能共享资源的的更大的信息系统。
组成:多台独立的计算机。
Client-Sever结构。
四、UNIX的外部运行环境
此为外部连接的一般形式。UNIX运行环境不唯一。
五、用户登录和退出
登录:
1、用户登陆时,shell调入内存;
2、unix启动完成,在终端显示login:
3、输入用户名之后,启动login程序来完成登录
4、login检查下一步要执行的程序名(即shell)
5、出现系统提示符$
登录的三个基本条件:主机启动完成、通讯端口打开、终端开电。
登录的过程:
1、unix是多用户操作系统。系统识别用户身份并且允许用户使用的过程称为登录过程。
2、当unix系统完成登录准备时给出login:提示
3、login:用户名
password:
修改口令:
$passwd
Changing password for [用户名]
Old password:
New password:
Re-enter new password:
说明:1、根据系统的安全级别用户口令(password)一直有效或者定期修改。
2、unix系统不会回显用户输入的口令,即从屏幕上看不到任何字符。
退出系统:
$
$exit (也可以Ctrl+d退出)
Red Hat Linux Release 8.0
login: (表明当前用户已经成功退出系统善后工作已经完成,本用户或者其他用户可以重新登录进入系统)
六、unix的启动过程
getty:打开终端的进程。
在login:后敲入用户名。
随后会出现password:,等待你继续敲入口令。
unix启动过程:boot->装入OS内核->硬件检查->安装roots->产生了进程
父进程->对换进程swap
子进程->产生一号进程init->执行inittab->初始化各端口->Getty->登录->执行命令->退出。
七、基本命令的使用
基本规则:1、在命令提示符后发出命令;
2、命令行输入完并开始执行的标志是回车换行符;
3、命令执行完成的标志是出现新的命令提示符$
例如:
$ date(显示当前系统的日期和时间)
Fri Sep 5 21:25:53 EDT 2022
$_
Who命令(查看系统中所有已经登录的用户状况)
Who命令可列出当前登录到系统的所有用户的登录名,终端号和登录时间。
可用Who命令检查系统状态,或者某个用户是否正在使用系统。
$ who
说明:同一个登录名可以被同一个人或者多人同时使用多次,终端号通常可以表明使用者的位置,但并不肯定(对虚终端而言)
$ who am I(我是谁)
$who-H(显示各列信息的标题)
$who-q(显示简要用户列表和用户总数)
通用命令格式:$ 命令名 【-命令选项】 【命令参数】
命令选项:可以选择,也可以不选择。如果选择,必须是由减号开始的一个或多个字母组成,任选项通常起功能开关的作用。
命令参数:可以由,也可以没有,可以有一个,也可以有多个。参数主要用于指明命令的操作对象,通常为文件名(广义)。
方括号:表明其中的内容可以缺省。
举例:
左侧正确,右侧错误。
命令行的更正和程序的终止:当命令行输入错误时,在未输入换行符时,可用SB或CTR+h键删除前面的字符,再键入正确的字符(推荐使用^h键,因为兼容性更好)。当要删除一整行时,按CTRL+u。
要强行终止当前正在运行的程序时,可以按CTRL+c,del或break键完成,出现$,表明程序已经终止。
注意:一个普通用户在一台终端上无论是进行登录系统、退出系统、发出命令还是终止程序等操作,都不会影响其他用户的正常操作。
常用命令:
date命令显示星期,月,日,时间和年,unix使用24进制时间。
查看某一个月的月历:$cal 月 年
查看某一年的各个月的月历:$cal 年
年、月都是命令参数,默认参数为当前月。
cal说明:1、年份参数必须写全;2、可以用数字表示月份;3、不带参数的cal命令显示当前月份的日历表;4、只有年份参数的cal显示指定年份的日历表。
finger命令:
显示一个用户的详细信息。
clear,echo,banner命令:
clear命令执行清屏动作:
$clear
echo命令将命令名后跟随的参数显示在屏幕:$echo hello world
banner 命令将命令名后跟的ASCII字符串以大字的方式显示在屏幕上:$banner hello
wc命令:
wc命令用于计算一个指定文件中的行数,单词数以及字符数。命令格式为:$wc -[c] [-l] [-w] filename
命令选项:-c计算字符的数目,-l 计算行数,-w 计算单词数目。
八、联机手册
联机手册命令man可向用户提供系统中各种命令、系统调用的详细说明。
例子:
$man who
对who命令的详细说明
九、shell的种类、提示符和退出命令
shell的基本功能:1、命令解释器;2、程序设计语言。
每一个已经登录进入系统的用户都有一个独立的shell程序与其对应,解释其键盘命令。
shell的常用种类:1、Bourne shell —程序名为sh,提示符为$
2、C shell —程序名为csh,提示符为%
3、Korn shell —程序名为ksh,提示符为$
另外一常用提示符# —超级用户(无论何种shell)
SHELL的退出命令:
1、exit 主要用于退出B_shell
2、logout 主要用于退出C_shell
3、CTRL+D 可用于退出各类shell,因CTRL+D常含有其它功能含义,故尽量不用或少用CTRL+D来做退出命令。
exit和logout是正规退出系统的命令,执行时通常包含许多善后工作,而ctrl+d没有。
十、即时通讯
1、交谈命令 write
write username [terminal]
write命令用于与一个已经登录系统的用户进行通讯,如果这个登录用户的名字现在正在被多个人使用,则在write命令中应给出终端号。
write协议:消息发送结束用o(结束),结束谈话用oo(结束并退出)。
write命令的退出键是ctrl+D。
write命令(半双工通信)
例子:write命令检查用户是否在线上
结果a2没有登录,屏幕显示:a2 is not logged in
2、消息开关命令mesg
mesg命令用于查询和开关本终端的消息接收状态,命令格式为:mesg [-y] [-n]
3、双向通信命令talk(全双工方式)
与write命令相似,talk命令也是与系统中已登录的其他用户通信;与write命令不同的是,talk通信双方都必须向双方发出talk命令才能进行通信。
4、广播信息命令wall
wall命令可以向当前系统中所有已经登录用户发出广播信息,常用于通知一些紧急事件。
普通用户用wall发出的广播信息只能被消息接收状态为打开的用户接收,而超级用户用wall发信息时不受此限制。#wall (超级用户发此命令)
十一、电子邮件
mail username 发送邮件
mail 接收邮件
1、发送邮件:
$ mail student8
subject:
(内容)
ctrl+d
cc:
说明:接收者姓名用其登录名;subject和cc可有可无,如果不需要则按回车键即可。邮件正文的结束,是以新行上的ctrl+d为标记。
给多个用户发邮件:
①$mail student1 student2 student3…
采用枚举法把用户名逐一列出
②$ mail TEACHER
TEACHER为用户组名,即向属于TEACHER组的所有用户发邮件。
③ $ alisa usr_list student1 student2 student3…
给 student1 student2 student3等多个名字建立一个总的别名usr_list, 该别名只在本shell中起作用,退出shell后即无效。
$mail usr_list
给别名usr_list中的所有用户发邮件。
把已存在的文件作为邮件发送给用户:
$ mail student1 < my_letter
2、接收邮件
不带参数输入mail表示读取邮件,如果无该用户邮件则显示:No mail for you
十二、文件的概念
计算机中所有的信息保存在文件中,如:通知、程序、文本。文件是:数据集合、字符流或称为字节流、操作系统不对文件进行任何结构化、在unix系统中,文件是字节序列。
文件的类型:
路径名:由斜杠/分隔的由目录名组成的一个序列,它指示找到一个文件所必须经历的目录。
两种类型:全路径(绝对路径)和相对路径。
.表示当前目录,…表示上级(父)目录。
工作目录:用户总处于某个目录中,工作目录即为当前目录。
与目录相关的命令:
1、显示工作目录pwd
列出正在工作的目录pwd命令,用于显示你当前所处的目录名;pwd命令总是返回你当前所处的目录的完全路径名;登录完成后,显示用户主目录的路径名。
定位工作目录中的文件:
定位其他目录中的文件:
当文件不在工作目录时,需要指定文件所在的目录。
2、改变当前目录 change direteor
格式:$ cd dir_name
从一个目录改变到另一个目录。
不带任何参数时,将把你送回自己的用户主目录中(用户登录时自动进入的第一个目录)
$cd … 将把你向上送至当前目录的父目录中。
3、创建目录mkdir
格式:$ mkdir dir_name
创建一个子目录,或一次创建多个子目录。
在每一个新的子目录中,均包含两个标准的项目:.和…
mkdir 命令带 -m选项,可用来创建一个带有特定权限的子目录。
4、删除目录rmdir
格式:$rmdir dir_name
删除不需要的目录。
dir_name参数必须由,dir_name参数不能被指定为当前目录(即:要在父目录中删除子目录),被删除的子目录必须为空子目录。(即只包含.和…)
5、一次操作多个目录
在操作时要使用带-p的命令选项
举例:$mkdir -p dir1/dir2/dir3
$rmdir -p dir1/dir2/dir3
有下列两种情况之一时,rmdir命令不起作用:1、待删除的目录不是空目录,2、你对待删除目录没有写的权限。
6、显示目录中的各项(ls)
格式:$ls dir_name (dir_name 是可选的)
显示目录命令
选项:-a,-R
7、列出目录中文件的详细信息ls
格式:$ls -I
-a:列出所有文件,包括隐藏文件。
-C:以多列的格式列表,按列排序。
-F:如果是目录,文件名后加/;如果是可执行文件,加*表示。
目录的大小是以512字节为增量的。
8、显示目录条目的信息
ls -lu 显示访问时间
访问时间:指文件被读写的时间
十三、unix文件系统
1、文件的存储结构
一个系统只有一个引导块。
2、文件系统的建立:
#mkfs specialfile blocksize gap blocks
文件和与其相对应的进程是unix系统中两个最基本的概念。
4、目录文件的内容
5、索引结点(inode,i节点)
十四、与文件有关的操作
1、文件名及其规范
文件名长度:在短文件名的系统中,文件名最长为14字符,在长文件名的系统中,文件名长度可达512字符。
2、touch命令
3、拷贝文件:cp
source,target必须要有,不可以省略。
4、移动文件或重命名文件:mv
5、链接文件:ln命令
ln命令的主要功能是给一个已经存在的文件再取一个新名字,新的文件名与原文件名可以在同一个目录下,也可以在不同目录下,新老文件名代表同一个文件。
6、显示文件内容命令:cat,pg,more
cat:
格式:$cat filename1 filename2
用来显示、创建或者合并文件
7、分屏显示文件内容:more
格式:$more filename
作用:more命令的基本功能与cat命令相同,都是打开文件,将其内容显示在屏幕上,但more命令并非一次性显示文件的所有内容,而是逐屏显示文件的内容,翻篇用键。
8、删除文件:rm
格式:$rm file1 file2
用rm命令可删除不需要的文件。指定文件名,删除工作目录中的文件;指定路径名,删除位于其他目录的文件。rm直接删除,没有提示、确认。
选项:-i:删除文件前,给出确认;
-r:删除指定的目录及目录中的所有文件和子目录,即删除整个目录结构。
用rm命令删除后无法恢复。
9、打印文件:lp命令
$lp abc
lp命令发出后,并不等待打印机完成,而是立即出现shell提示符等待新的键盘命令。
lp命令的任选项为:
-d 指定字段分隔符,缺省的字段分隔符是制表符tab.
10、连接文件:paste
格式:paste 选项 参数
作用:把文件一行接一行地连接在一起,或者把两个或多个文件的域连到一个新文件里。
选项:-d:指定分隔符;默认是制表符。
十六、文件权限
1、文件的权限种类
对任何unix文件,可以设置三种权限:
读(r)权限:可读取文件的内容
写(w)权限:可修改文件的内容
执行(x)权限:对普通文件:文件内容可被装入内存直接运行或逐条解释执行
对目录文件:可在分析路径名的过程中检索该目录。
2、文件权限的检测:
常用ls -l命令检测文件类型
修改文件的权限:
常用chmod命令来修改文件(包括普通、目录和设备)的访问权限,命令格式为: chmod pattern filename
其中filename为要修改的文件名,可以有多个文件名,pattern为将改变成的权限,可用两种形式表示:字母形式和数字形式。
对于已经创建的目录,可使用chmod命令来修正已有的权限设置。
十七、编辑程序vi
1、概述:编辑器的基本工作流程:
2、编辑器类型
行编辑器:编辑单位为行,命令为edit,e,ex
屏幕编辑器:编辑单位为字符。命令为vi,v,view
vi的两种工作模式:
①命令模式:进入vi后的初始模式,也是vi的基本工作模式,主要包括移动光标,删除文本,粘贴文本和查找文本。
②文本输入模式:是命令模式下的子模式,该模式下除esc键以外的所有其他键都作为输入字符添加到被编辑的文本中,文本输入完成后必须按esc键从文本输入模式返回到命令模式后,才能继续完成其他操作。
vi的基本使用:
①从shell状态进入vi,命令格式为:$vi filename
②退出vi,返回到shell状态下:在命令模式下发出:wq并按下回车键,即可返回到shell状态下。