Unix操作系统基础与入门.docx
《Unix操作系统基础与入门.docx》由会员分享,可在线阅读,更多相关《Unix操作系统基础与入门.docx(57页珍藏版)》请在冰豆网上搜索。
Unix操作系统基础与入门
Unix操作系统的入门与基础
Unix操作系统的入门与基础
与大家熟悉的Windows用户界面和使用习惯不同,Unix是常使用命令运行、极具灵活性的操作系统,目前的产品主要有IBM-AIX、SUN-Solaris、HP-UNIX等。
初期接触Unix操作系统,下列的问题几乎是常遇的:
由图形界面操作转到以命令行方式操作的不习惯性;在短期内掌握全部命令的困难性;针对同一操作有几个命令的难选择性;不同shell命令格式的易混淆性,等等。
一些初学者可能会因此而丧失继续学习的信心。
根据上述的实际情况,本文遵循“避繁就简、避滥就精,不求详尽、只求适用”的原则,以初学者上机的必经过程为思路,力求用层次分明的浚理和详略得当的阐释,解读该操作系统使用的基本须知内容,以期达到便捷入门和较快精进的目的。
(一)Unix操作系统概述
Unix操作系统是一种强大的多任务、多用户操作系统。
早在上世纪六十年代未,AT&TBell实验室的KenThompson、DennisRitchie及其他研究人员为了满足研究环境的需要,结合多路存取计算机系统(MultiplexedInformationandComputingSystem)研究项目的诸多特点,开发出了Unix操作系统。
至今,Unix本身固有的可移植性使它能够用于任何类型的计算机:
微机、工作站、小型机、多处理机和大型机等。
Unix操作系统通常被分成三个主要部分:
内核(Kernel)、Shell和文件系统。
内核是Unix操作系统的核心,直接控制着计算机的各种资源,能有效地管理硬件设备、内存空间和进程等,使得用户程序不受错综复杂的硬件事件细节的影响。
Shell是Unix内核与用户之间的接口,是Unix的命令解释器。
目前常见的Shell有BourneShell(sh)、KornShell(ksh)、CShell(csh)、Bourne-againShell(bash),本文主要以csh和bash为例。
文件系统是指对存储在存储设备(如硬盘)中的文件所进行的组织管理,通常是按照目录层次的方式进行组织。
每个目录可以包括多个子目录以及文件,系统以/为根目录。
常见的目录有/etc(常用于存放系统配置及管理文件)、/dev(常用于存放外围设备文件)、/usr(常用于存放与用户相关的文件)等。
(二)上机基本操作解说
简介Unix操作系统是作必要的知识铺垫,为避免一开始就进行枯燥论理和罗列繁复的Unix命令、参数让人感到畏惧与厌烦,接下来就先让我们上机操作吧!
初次使用Unix,最常见的操作不外乎创建新目录、创建新文件、进入指定的目录、显示目录内容、显示当前所处的路径、查看文件内容、拷贝文件、移动文件、删除文件、删除目录、查看系统帮助等,那我们就模拟这些必经过程来练习基本操作吧。
(1)首先让我们在当前目录下创建两个目录dir1,dir2:
mkdirdir1dir2 //输入命令后记得敲一下回车键:
)
(2)进入目录dir1中创建文件file1,file2:
cddir1 //进入目录dir1
touchfile1file2 //创建文件file1,file2
(3)再进入目录dir2中创建文件file3,file4:
cd.. //返回上一级目录
cddir2 //进入目录dir2
touchfile3file4 //创建文件file3,file4
(4)查看目录dir2中所含的文件及子目录情况:
ls //这时会看到屏幕显示出目录dir2中有2个文件file3和file4
(5)往文件file3中写入信息,并将其拷贝到目录dir1中:
cal52005>file3 //该句命令后文会有详细讲解,此处照样输入即可
cpfile3../dir1
(6)回到目录dir1中,查看所含的文件及子目录情况:
cd..
cddir1
ls //这时会看到屏幕显示出目录dir1中有3个文件file1、file2、file3
(7)再查看一下文件file3中内容,并将该文件删除:
catfile3 //这时会看到屏幕显示2005年5月份的日历
rmfile3 //删除文件file3
(8)将文件file1移动到目录dir2中,同时查看目录dir1、dir2所含文件及子目录情况:
mvfile1../dir2
ls //这时会看到屏幕显示出目录dir1中有1个文件file2
ls../dir2 //这时会看到屏幕显示出目录dir2中有3个文件file1、file3、file4
(9)显示当前所处的路径,并删除目录dir1:
pwd
cd..
rm–rdir1
(10)显示ls命令的系统帮助:
manls
在进行第10步操作后,这时会觉得眼前一闪,除了有点类似“黑客帝国”的感觉之外,对于ls的解释是否啥也没看清楚啊?
对了,因为我们还没有使用分屏显示信息,那使用如下的命令将会让你的眼前豁然明朗:
manls|more //对于|more的使用后文将会进行详细解释,这里只需知
//道使用空格键是往前翻看帮助文档即可
看到这里,想必大家对于Unix操作系统的使用会有一定的感性认识了,已基本会使用类似于Windows操作系统中建立文件夹、建立文件、查看文件内容、复制文件、剪切文件、删除文件、删除文件夹等操作了。
可且慢,这时大概会有朋友问:
“兄弟,偶还没登陆系统呢,怎么进行上面的操作啊?
”这个问题提得好,下面就让我们从头开始作登陆系统的操作吧。
如果在本机上已安装了Unix操作系统,比如安装了SUN-Solaris,则只需启动系统,稍等片刻后会看到如图1的界面。
(图1)
我们这里主要是使用命令行方式来使用Solaris,因此点按住“Options”按钮,这时会出现选项菜单,如图2所示。
(图2)
将鼠标移动到“CommandLineLogin”项上后弹开。
然后在出现如图3中所示的画面时,敲击回车键。
(图3)
这样,我们就能使用命令行来操纵操作系统了。
这时会要求用户输入用户名及口令,默认情况下可使用用户名“root”、口令为空来进入系统。
如果用户是在本机上通过网络对远程装有Unix操作系统的主机进行操作,则可以使用telnet进行访问。
假设该装有Unix操作系统主机的IP地址为198.4.30.25,用户使用的操作系统是WindowsXP,则可以进入“DOS命令提示符”状态,输入以下命令:
telnet198.4.30.25
login:
//输入登录用户名
password:
//输入登录口令
倘若用户使用的是RedHatLinux系统,则可以在桌面上右击鼠标,在弹出的菜单中选择“新建终端”项,再在随后弹出的窗口中进行相同的操作。
通常用户若是第一次登入某远程主机,还需要先进行注册操作,具体情况视该远程主机操作的说明而定。
要注意,在每次使用完毕要退出Unix系统之前,一定要进行注销,以防止他人通过你的账号进入系统,保证系统的完整性。
输入命令“exit”即可完成注销过程。
(三)演进所涉知识预习
经过前面的上机操作,大家对于如何使用Unix系统应该有了一定的感性认识。
为了下一步更深入的了解掌握Unix系统及使用的一些技巧,这里再对相关的应知内容做一补叙与准备。
一、关于Shell
上文中曾简要介绍过的Shell,不同Shell的命令格式会略有差异,现今最常使用的Shell是CShell(csh)和Bourne-againShell(bash)。
Shell之间可以嵌套,即在CShell环境中,输入命令:
bash
就能进入Bourne-againShell的使用环境。
同理在Bourne-againShell环境中,输入命令:
csh
就能进入CShell的使用环境。
大家可依据自己的使用习惯来选择相应的Shell。
二、Unix命令格式
1、Unix命令提示符
在命令行操作环境下,Unix系统会显示一提示符,提示用户可以在此提示符后输入一行命令。
不同的Shell有不同的缺省提示符,如BShell、Bourne-againShell的缺省提示符为"$",CShell的缺省提示符为"%"。
但当以root用户登录时,系统提示符统一缺省为"#"。
2、基本命令格式
Unix命令的基本格式如下:
Command[option(s)][argument(s)]
Unix命令由一个命令(command)和零到多个参数构成。
Unix的命令区分大小写,且命令和参数之间、参数与参数之间都应用空格隔开。
三、Unix文件系统
1、Unix文件系统分类
Unix操作系统可由多个可以动态安装及拆卸的文件系统组成。
Unix文件系统主要分为两大类:
根文件系统和附加文件系统。
根文件系统是Unix系统至少应含有的一个文件系统,它包含了构成操作系统的有关程序和目录,由“/”符号来表示。
附加文件系统是除根文件系统以外的其它文件系统,它必须挂(mount)到根文件系统的某个目录下才能使用。
本文中若无特别声明,则都是针对根文件系统来进行说明的。
2、Unix文件类型
在Unix中文件共分为四种:
(1)普通文件(-):
又分为文本文件、二进制文件、数据文件;
(2)目录文件(d);
(3)设备文件(l);
(4)链接文件(b/c):
又可分为块设备文件、字符设备文件。
普通文件中的文本文件主要包括ASCII文本文件、英文文本文件和一些可执行的脚本文件等;二进制文件主要是32位的可执行文件等;数据文件主要是系统中的应用程序运行时产生的文件。
目录文件是用来存放文件目录的。
设备文件代表着某种设备,一般放在/dev目录下。
它分为块设备文件和字符设备文件,块设备文件以区块为输入输出单元,如磁盘;字符设备文件是以字符作为输入输出单元,如串口。
链接文件类似于Windows系统中的快捷方式,它指向链接文件所链接着的文件。
值得注意的是,与Windows系统不同,Unix系统中目录本身就是一个文件,另外文件类型与文件的后缀名无关。
不同类型的文件有着不同的文件类型标识(可使用“ls-l”命令来进行查看),它们使用下列符号来表示相应的文件类型:
- 普通文件
d 目录文件
b 块设备文件
c 字符设备文件
l 链接文件
3、Unix目录结构
Unix系统采用树型的目录结构来组织文件,每一个目录可能包含了文件和其他的目录。
该结构以根目录“/”为起点向下展开,每个目录可以有许多子目录,但每个目录都只能有一个父目录。
4、Unix文件名称
Unix文件名称的最大长度为256字符,其对字母大小写敏感,比如file1和File1是表示两个不同的文件。
要说明的是,如果用“.”作为文件名的第一个字母,则表示此文件为隐含文件,如“.cshrc””文件(对于此文件,后文将有介绍)。
值得说明的是,当创建了一个目录或文件时所赋予它的名字并非它的全名。
一个目录的全名就是它的完整路径名,而一个文件的全名应该是由根目录到该文件所在目录的这条路径上的所有目录名再加上此文件的名称组成,相互之间用“/”分隔。
如有一文件resume处于目录/export/home/ray中,则该文件的全名应为:
/export/home/ray/resume。
此外,对于路径名还会有绝对路径和相对路径这样两个概念。
绝对路径是指一个目录或文件的全路径名,即以根目录为起始的路径。
相对路径则以用户当前工作目录为起始,它是一个相对于用户的工作目录的文件路径。
由于从根目录到用户的主目录的绝对路径可能会比较复杂,在csh和bash中可以使用一种特殊字符“~”来代表用户的主目录的绝对路径名。
另外,“.”可用来表示当前工作目录,“..”可用来表示当前工作目录的父目录。
Unix的轻巧“约取而实得”(上篇)
在经过上机操作实践以及掌握Unix系统相关的基础知识之后,可以说已跨进了迈向成功的门槛。
接着要登堂入室,继续专进,就必须更加深入的了解Unix基本命令的功能、使用并掌握一些必备的技巧。
这一轮学习会有一定难度,需要强烈的求知欲和进取心作为源动力,因为只有“不满足才是向上的车轮”;同时也需要注重学习方法,善用前人总结的“约取而实得”的经验,巧学精进,迎难攻解,从而达到再上台阶之成效。
一、文件系统的相关命令
佛教《百喻经》中有一则三重楼的喻里,说有一个财主,见到他的邻居盖房子,三层楼盖得很漂亮,他也要盖这样的三层楼房子。
见工匠在做地基,他就说不要地基,要直接盖第三层楼,因为第三层最高最漂亮。
我们都会觉得这个财主很可笑,但在学习知识的过程中,我们可别老想着第三层而忽视打好地基噢!
文件系统相关的命令是操作Unix系统的基础,在《Unix操作系统的入门与基础》一文中我们曾使用过其中的部分命令,下面就再来仔细学习这些命令的使用,继续打好今后盖“三层楼”的“地基”吧。
(一)目录管理
我们可以通过使用mkdir、rmdir与cd命令来创建、删除目录以及改变工作目录,并通过ls命令列表显示目录内容,以达到对目录的有效管理。
(1)mkdir命令的功能是创建目录,并且可同时创建多个目录,格式如下:
mkdir[-p]directory-name(s)
参数p代表在建立指定目录时,如果其父目录不存在,则一同创建。
[例]
mkdirdir1dir2dir3 //在当前目录下建立目录dir1、dir2、dir3
mkdirdir1/dir4 //在当前目录下的dir1子目录中创建目录dir4
mkdir–pdir6/dir7 //在当前目录下,由于不存在dir6目录,则先自动创建目录dir6,
//然后创建其子目录dir7
(2)rmdir命令的功能是删除目录,但其只能删除空目录(即目录中不包含文件),故此命令一般较少使用,在后文中会介绍一个更为常用的删除目录命令。
rmdir命令的格式如下:
rmdirdirectory-name(s)
(3)在进行处理文件等的操作过程中难免需要在不同的目录下工作,这时cd命令就能派上用场了。
cd命令的功能是改变当前的工作目录,它的命令格式如下:
cd[directory-name]
cd后面的目录可以是绝对路径,也可以是相对路径。
如果cd后面不跟路径名,则是回到用户的主目录。
如果大家对此处的一些概念不甚熟悉的话,请参见《Unix操作系统的入门与基础》文中的介绍,此处就不再赘述了。
下面来看几个例子:
cddir1 //进入当前目录中的dir1子目录
cd.. //进入上级目录,即把工作目录改变成当前目录的父目录
cd../zcl //回到父目录,同时再进入zcl子目录中
(注:
上述三个命令的路径都为相对路径)
cd/home/anray //把工作目录改变成根目录中的home目录下的anray子目录
(注:
此处路径为绝对路径)
此外,使用pwd命令可以查看当前的工作目录,它显示的是当前工作目录所处的绝对路径。
(4)ls命令的功能是列表显示指定目录中文件及子目录的信息(其实在Unix系统中目录本身也被视为一个文件,但是为了照顾习惯的思维,在叙述时仍然将其区分为文件与目录两类),缺省输出顺序为纵向按字符顺序排列。
它常用的命令格式如下:
ls[-altFR][directory-name]
参数a代表显示所有类型的文件,包括文件名以“.”为第一个字符的隐藏文件。
参数t代表按文件最后修改时间的顺序依次排列文件,参数R将会列出指定目录下以及其所有子目录中的文件,使用参数F将会在列表中的每一个目录后面加上“/”,在每个可执行文件后面加上“*”。
参数l代表长列表显示目录内容,即列出文件的类型、访问权限、拥有者、文件大小、修改时间及名称等详细信息。
下面将介绍一下长列表显示中的信息的含义,“ls–l”命令的使用如下图所示。
在上图长列表显示文件信息的每一行中,
第一列
第1个字符表示文件的类型;
第2-4个字符表示文件所有者对此文件的访问权限;
第5-7个字符表示用户组对此文件的访问权限;
第8-10个字符表示其他用户对此文件的访问权限;
第二列
文件的链接数
第三列
文件的所有者
第四列
文件的用户组名
第五列
文件所占的字节数
第六至八列
文件上一次的修改时间
第九列
文件名
注:
此表格中的一些概念在下文会有详细介绍,这里只需先了解一下即可
(二)文件管理
1、文件的创建、编辑与删除
Unix系统中可以使用touch命令来创建新文件,它的命令格式如下:
touchfilename(s)
但要指出,touch命令最常用的功能并不是创建文件,而是改变指定文件(或目录)的最后访问时间和修改时间。
它的命令格式如下:
touch[-am][mmddhhmm[yy]]filename(s)
此命令中,若指定文件不存在,则创建之;若已存在,则将指定文件的访问时间和修改时间按参数的要求进行改变。
参数a代表只改变访问时间,参数m代表只改变修改时间。
参数mmddhhmm[yy]中每隔两位分别表示“月日时分[年]”,用户可利用此参数指定欲设置的时间,若不带此参数,则会自动使用系统当前的默认时间。
[例]在当前目录下创建新文件document:
touchdocument
将刚创建的文件document的访问与修改时间改为2005年10月1日0时0分:
touch-am1001000005document
大家可不要小视touch命令的此项作用,在软件的实际开发中,有时它还会与企业的客户关系管理策略或企业经济效益密切关联。
倘若你所在企业的开发团队协作精神好,工作效率高,或者是改进了相关技术与流程,使原与客户合同中约定的项目完成日期大大提前,为了屏蔽用户知情,避免节外生枝,该命令就派上大用场了。
这事我知你知即可,彼此只能心照不宣噢!
文件创建好之后就需要对此文件的内容进行相应的编辑了,在Unix系统中最常使用的编辑工具是vi,在后文中会有专门的章节进行详细介绍,此处先行略过。
在使用Unix系统一段时间之后,大家可能会发现文件数量正在快速增加,而其中的一部分文件可能已经变得过时,或是没有了使用价值,这时就应该及时利用rm命令将此类文件删除了。
rm命令的功能是删除文件或目录,它的命令格式如下:
rm[-i]filename(s)
或 rm–r[i]directory-name(s)
使用参数i的目的是给大家一次“买后悔药”的机会。
由于Unix系统中的文件一旦删除将极难恢复,因此在删除文件之前一定要慎重。
而参数i的作用是在删除文件之前进行逐一询问提醒,是否确实要删除此文件。
如果输入y则删除文件,若输入其他字符,文件则会被保留。
使用了带参数r的rm命令可用来删除一个目录以及其所有子目录,此时不必受删除目录必须为空目录的条件限制,因此也就更具危险性,大家在使用前应当慎之又慎。
[例]
rmdoc1doc2doc3 //直接删除文件doc1、doc2、doc3
rm–idoc1doc2doc3 //在删除文件doc1、doc2、doc3时,每删除一个之前先作提示
rm-ridir1 //删除目录dir1以及其中所含的所有文件与子目录,删除前先作提示
2、文件的查看
常用的查看文本文件的命令有cat、more、head、tail等,下面将逐一进行介绍。
(1)cat命令可以在屏幕上显示出文本文件的内容,它的命令格式如下:
catfilename(s)
不过cat最常见的用法是配合重定向符来清空文件以及将几个文件合并成为一个文件。
重定向符的详细用法请参见本文第二章节的内容。
[例]
cat/dev/null>doc.txt //清空文件doc.txt,/dev/null代表空设备文件(记住使用即可)
cat>doc2.txt //将doc1.txt中的内容保存在doc2.txt的尾部
(2)使用cat命令查看文本文件时会有一个问题,就是它不会分屏显示文件,这样当文件的内容超出一屏时,除了最后一屏的内容之外,上面的内容都将是一闪而过。
当然解决的办法Unix也替我们想好了,就是使用more命令来查看此类文件。
more命令的格式如下:
morefilename
more命令将会以分页的方式显示文本文件内容。
当每次将文件内容显示