UNIX基本概念介绍
在login:出现後,打入帐号名称,然後输入密码,现在你已经完成login的动作,进入
UNIX了。在进入之後,系统会启动"shell",这个程式会接受你打的指令,去执行它,
shell有好几种,有csh、tcsh、sh、bash、ksh...,我主要指的是csh。基本上,我们待会谈的指令都是在shell下输入的。
会谈的指令都是在shell下输入的。
当你输入set指令,你会看到一些变数,来看几个重要的:
home:家。Home是你拥有的地方,你可以在这个目录下放置任何东东。你一进
入系统,一定是先到这里的。
path:路径。通常执行档是放在不同的地方,系统会顺著path中的目录一个个
去找执行档。
term:终端机。表示现在的终端机形态,常用vt100、vt102、ansi。
set
=xxxx就可以设定变数的值,$
代表这个变数。
例如:setterm=vt100
setpath=($home/bin$path)
echo$term vt100
□文件系统介绍
UNIX的档案系统呈树状结构,包含了目录(Directory)和档案(file)。如果说你以前有
接触过DOS,那应该不陌生;如果没有,那你应该仔细瞧瞧。
一、目录(Directory)
基本上,目录是用来分类档案的。
目录下面可以包含许多档案,或是许多目录,而这些下层的目录就叫″子目录″(subdirectory),它们也都具有相性质。由这些目录所构成的一层层分枝,看起来就像一棵树,所以才叫树状
结构,而最上面的目录称作″根目录″。
一个目录在建立的时候,具有两个基本项目:″.”和″..”。”.”指的
是目录本身,而″..”指的是上一层的目录,这两个是一直跟著目录共存亡
的。
这是档案系统简图,很像一棵树吧!
┌Joe.....
│┌Mail┬joe
││├Mary
┌—users┼Tom┤└Eric
││└dead.letter
│└Mary┬Mail.....
│└.... /┼—bin┬ls
│├mail
│├rm
│└cp
└—tmp
二、档案(file) 档案是储存资料的地方,这个资料可能是一份文字档,也可能是一个可执行的
程式,不同功能的档案,有著不同的属性,现在来看看。
%ls-l
total1059
drwx------4 jong 512 Sep614:54 Mail
drwxr-xr-x2 jong 512 Oct2219:02 News
在每个档案前有十个字,第一个字元是档案形式,d指目录,-指档案,l指
连结(link)档案。
从二到十是属性,三字一组,一共三组。一组三字代表<读、写
、执行>,即rwx,-则表无此属性。第一组是owner,第二组是group,
第三组是others。
rw-------只有owner可读写
r-xr-xr-x可读、执行,不可写
rw-r--r--owner可读写,其他只可读 档案的名字除了"/"之外,都可以用,随便多少都可以。
档案开头是"."的档
案是隐藏档,平常看不到,要用ls-a或ls-al来看。
□进程(process)
一个正在执行中的程序,我们称做process。
UNIX是多工的系统(multitasking),
可以同时执行多个程式,让好几个人同时使用系统,执行程式。
执行程式可分为两种:
前景执行(foreground)和背景执行(background)。
一般我们在shell下执行程式,一直
要等到程式结束才能继续输入指令,这就是前景执行。
如果说我们不想等待程式结束,
或是执行时间太长,就可以将程式放到背景去执行,系统会自动执行它,而你就可以去
做别的事了。
怎样才能把程式放入背景?只要在指令後面加上"&"就可以了。一但你在背景执行
程式,系统会传回"[n]xxxx",n是jobid,xxxx是processid。每一个process都有
processid,而且不会有重覆。
要想停止前景执行的程式,可以按
CTRL_C 中止,若是想暂停一下,可以按
CTRL_Z
暂时停止执行,要恢复执行可以用fg或bg来决定前景或背景执行。
好,下面说说unix一些系统目录的作用
UNIX基本结构:
A. login / logout
我们要能够进入 UNIX 系统。每个人都有一个
username 与 password, username 是你在这个系统中的名字,而
password 就是密码,用来 保护你的帐号不会被别人偷走。
我们称进入系统的动作为 login
,在进入系统之前,首先我们会见到以下的画面:
SunOS UNIX (ccsun24) login:
然後你 login: 之後接著打你的 username
,系统就会自动找出你的资料, 接著出现一行
password:
这时所要输入的就是你的密码了。在输入密码的时候,并不会显示在萤幕上,
避免你的密码在使用的时候被别人偷看到。
如果你的密码正确,系统会显示出你已经 login
的讯息,并显示上一次 login
的时间。当系统完成对你的使用环境设定的工作时,会显示出一个提示符号,如下面的形式:
jjtseng@ccsun28:/u/gcp/82/8217529/doc ! >
在 > 符号之後你就可以输入你所要下的指令(
command ) ,如 ls , who , 等 等。
不过要注意的是,在 UNIX
之下英文字母的大小写是有差别的,如果像我的 username
是 jjtseng , 则我打入 JJTseng ,系统就不知道这个 user
是谁了。同
样的,你所下的指令也要注意大小写的差别。
UNIX
的指令分成两种,一种是实际存放在档案系统的程式,如
ls , who , cat , more ....等等都是,另一种是 shell
内建的指令,後面的内容对这两种指令都会有详细的介绍。你也可以写程式来增加你可使用的指令。
当你用完系统,准备离开时,别忘了要 logout
,否则人虽然走了,可是还会有人在你离开系统後用你的名义使用系统。
离开系统可以使用 exit 指令。键入 exit , 按 enter
键, 系统就会离开,而等待下一个人进入系统。
B. Shell
Shell 的原意是壳,在 UNIX
里面就是一个提供使用者使用的环境。每一个 使用者在
login 後系统会提供使用者一个 login shell ,
在使用期间使用者亦 可自行开启其他的 shell 用以执行
shell script 或是另外建立一个使用环境。
Shell 本身是一种解译器( Interpreter ),
它提供一种语言,供使用者对作业系统下达指令,我们一般的指令就是它的语言的一个最简单的格式。你也可以在使用期间根据一些使用的状况来加上回圈及判断结构,通常我们在写一个
shell script 时比较会利用到 shell 的其他语言结构( if , for ,
while 等),不过在 命令列提示号之下亦可直接使用。
你可以将一连串的命令写到一个档案,建立一个
shell script , 这样你就可
以将一些常做的事情直接整理成一个大的 batch job 。 在
shell 中还提供使用者方便的利用 UNIX 的转向及 pipe
功能,使用者可以
利用这些功能将指令的输出存档或做为另一个指令的输入,也可以将大量的输入资料放在一个档案中,然由让指令自此档案抓取所需之输入资料。
除此之外, shell 也提供建立别名( alias )和变数(
variable )的功能,使
得使用者可以更加弹性的对系统下达命令。 其馀有关
shell 更详细的使用说明请参照本网站的其它部份。
C. 档案、目录、与档案系统
UNIX 使用一个 single root
的树状结构档案系统,最顶层称为根目录( root ),
包含许多目录,每一个目录底下均存放许多的档案与子目录,用这样的树状结构从根
目录到每一个档案均会有一个唯一的找寻的路径。而每一个使用者在
UNIX 下面均有 一个 HOME directory
,做为这个使用者个人资料的存放处。
UNIX 的每一个目录里头,有两个特殊的目录:
一个是其本身「.」
另一个 是其上一层目录「..」
这两个目录的用途在於使得树状架构的档案系统各目录
可以很轻易的双向沟通,同时在使用上也较为方便。
在 UNIX
上一些特殊的目录储存了各种不同需求的档案与作为指令的程式,如下所述(可能随系统不同梢有不同):
(1)
/bin
/usr/bin
/usr/ucb
/bin 和 /usr/bin
两个目录主要放的是标准的指令,例如 ls , rm , cat ...
等等,各个系统的 /bin , /usr/bin
下的指令大多都相同,主要在避免不同 UNIX
系统之间的差异性。
/usr/ucb 放的是由 U.C. Berkeley
所发展出来的一些应用程式,像 telnet , ftp , rlogin , rsh
等均存放在此。
(2)
/lib 、/usr/lib
在此目录之中所存放的是所有程式所需要的程式库。
在 UNIX
中,编译程式时常需要许多的函数和副程式,而这些函数和副程式多存放在程式库(
library ) 写程式时就不用重新撰写这些部份的程式码了。
同时,大部份的 UNIX
执行档在编译完成时将不会将副程式的程式码加到执行
档中,而是等到执行时才自程式库取出副程式的程式码,这种动作称为动态链
结( Dynamic link ),可想而知这样的设计可以减少许多的储存空间,而这些
供动态链结用的程式库亦是存放在 /usr/lib
中,所以这个目录是非常重要的
目录,如果它的内容有错往往会造成系统完全无法工作。
(3)
/etc
/etc 这个目录是存放管理 UNIX
系统用的程式,以及一些系统设定档。
(4)
/home2/X11R5
存放的最普遍的图形使用者介面( Graphics User
Interface , GUI ) 是由麻省理工学院(MIT)所发展出来的 X window
, 目前使用的是 X11R5(Version 11 Release 5),这一部份的程式,程式库,标头档及其他资源档均放在
/home2/X11R5 这个目录下。
(5)
/usr/man
在 UNIX 中,提供 man 指令( manual )让使用者在使用时可随时察询一些指令,
函数,表格的使用法和规格,是一个非常有用的指令,而这些指令的
help 讯息 就是存放在 /usr/man 下面
|