Unix学习笔记
- 格式:doc
- 大小:92.00 KB
- 文档页数:27
·Unix学习笔记一本人最近在学习SCO Unix时的学习笔记。
Unix学习笔记一SCO OpenServer(TM) Release 5 () ,Ksh为主1综述1.1特点:多任务--可同时运行多个任务(进程)多用户--几个人可以同时使用多选择--存在多种方法来完成同一任务。
Unix中存在着大量的具有重复功能的命令。
Windows中命令较少,没有选择的余地,完成一项任务通常只有一种方法,专家与初学者的操作也基本相同,所以较容易学会。
而Unix像一种口语,命令就像动词,命令选项就像形容词,复杂的命令序列就像句子。
1.2Unix种类1969年在Bell实验室产生,1975年对外公布。
主要厂商与产品有:SCO Unix(SCO),XENIX(微软与SCO),AIX(IBM),Solaris(SUN),HP-UX(HP),Linux(开源)两大标准:Unix System V(AT&T,SCO支持),BSD Unix(加州Berkeley大学,Solari支持)1.3三大组成部分1)kernel(内核)2)shell(外壳)是UNIX内核和用户的接口,是UNIX的命令行解释程序。
Bourn shell--bsh(缺省):最简单而且最常见的Shell,是初学者的选择,但不太方便使用。
Korn shell--ksh(扩展)适合bsh的用户,也可以单独学习,而且以后一般不必再学习其他Shell的新功能(包括bash)。
Bourne Again Shell(下一代的ksh)对bsh和ksh的再次扩展,linux系统上一般用该Shell。
C shell--csh(特殊)工具的数量与复杂性比较复杂,与前几种不太兼容,不适合初学者。
3)工具与应用程序1.4命令格式提示符:bsh,ksh为$;csh为%;root用户为#命令与参数之间必须用空格隔开(区别于DOS,像cd..,cd/都是错的),必须区分大小写一行中可运行多个命令,中间用;分离如果一个命令太长,可以用\转到下一行继续完成输入命令后台程序只须后面加&单引号与双引号的区别:双引号中的内容可进行参数和变量的替换;单引号则原样输出。
echo "$HOME"/usr/test2echo '$HOME' or echo "\$HOME"$HOME光标键的特殊功能:↑:[A到行末(End)↓:[B到行首(Home)bash中为上/下一条历史记录命令←:[D退格(Backspace)→:[C退格(Backspace)交互模式:shell从控制台读取命令并执行,与用户之间相互产生影响;非交互模式:shell读取在文件(shell脚本,就像DOS中的批处理文件)中的命令并执行之。
▲sh example1另外可以将Shell文件改为可执行文件chmod a+x example1然后可以直接执行example1为确保sh能够用来运行之,脚本中第一行是:#!/bin/sh(进程中不会出现sh了?),首先产生一个新shell,否则只能被当前shell执行。
其他的#为注释。
最常用的是变量参数;$n表示第n个参数值。
$var表示名为var的变量值。
如果希望在一个脚本文件中修改环境配置变量,更方便的方法是:▲. exampel1(在当前Shell下运行脚本文件,而不是新建一个子Shell,因为在子Shell中对任何环境变量进行修改以后,退出之后不影响其父Shell的环境变量的配置)▲一个实用的编译+链接C语言源程序的Shell脚本文件cc -o $1 $1'.c'$1△stty -a可显示特殊键的设置intr = DEL; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = ^; swtch = ; susp = ^Z; start = ^Q; stop = ^S;CTRL+d:文件结束符;结束输入;DEL:删除当前命令,回到提示符CTRL+z:删除当前命令,不换行,取消前面已经输入命令CTRL+u:删除当前输入命令,换行后,重新输入CTRL+s:屏幕暂停;CTRL+q:屏幕继续;现在基本失效了,因为对按键速度要求较高2文件系统Unix中,一切都是文件(包括目录)。
文件的属性的数据结构叫做i-node。
2.1UNIX文件系统主要分为两大类:1)根文件系统在主硬盘上构成操作系统的程序和目录,一般由"/"符号来表示。
2)附加文件系统其它文件系统,如/u文件系统,AFS文件系统等。
附加文件系统必须挂(mount)到根文件系统的某个目录下才能使用。
2.2在UNIX中文件共分为四种:1) 普通文件:(1)文本文件;(2)二进制文件。
UNIX把所有普通文件处理成字节流,没有规定文件的具体结构。
文件名最大长度为255字节,无扩展名(中间可出现多个小数点)。
(文本文件中?)以newline字符区分每个记录的开始和结束。
2) 目录文件:3) 特殊文件:放在/dev目录下,如/dev/cd0表示光驱。
(1)块设备文件,如磁盘,传输时有缓冲;(2)字符设备文件,未经处理(raw)的设备,如串口,传输时无缓冲。
4) 符号链接文件:指针指向文件的所在。
2.3文件类型标识:- 普通文件d 目录文件b 块设备文件c 字符设备文件l 符号链接文件2.4文件的存取权限普通文件目录r 读取文件能读取文件名称w 写入文件能建立和删除文件,可以改变文件名x 执行文件能进入目录最常见组合:0/000/---不可用4/100/r--只读5/101/r-x不可写,用于程序6/110/rw-可读写,用于数据文件7/111/rwx用于程序目录必须r-x,---,rwx,读取目录与执行目录不能分离2.5用户类型说明owner 文件的属主(拥有者)group 同一用户组内成员other 其他用户(非owner和非group)2.6隐藏文件(以"."开始)rn程序引用的:.rnlast, .rnsoft, .article, .letter, .newsrc, .oldnewsrc, .pnewsexpert finger:.plan许多命令都具有用户可以修改的配置文件,即rc(runtime control)文件,如:.exrc(vi,ex产生,因为vi的早期版本就是ex), .mailrc, kshrc(ksh启动文件)2.7相关命令▲ls(listfiles,在一列中只显示文件名)-a(显示全部文件)可用通配符。
?任一个字符* 任何字符,如"ab*10"表示以ab开头和以10结尾的名字。
注:与DOS文件通配符*有区别。
没有忽略*之后的字母。
[] 在集合中的任意一个字符,如[abcd]/[a-d]/[!e-z]▲lf命令(在多列中只显示文件名,可显示文件类型,多列的ls -F)/:目录文件*:程序@:符号链接▲l(在一列中显示文件详细信息,ls -l)total 4drwxr-xr-x 6 test2 group 512 Dec 8 09:40 apps-rw------- 1 test2 group 417 Dec 8 09:37 mbox类型与权限链接数(目录则为其下的子目录数,包括自己,最小数为2,即仅有.和..的空目录)▲chmod(修改文件的存取权限)格式1: 符号模式chmod [who] op permision file...who项表示用户类型,它的内容为以下一项或多项:u 文件属主(user --- owner)g 用户组(group)o 其他人(other)a 所有人(all)op项表示动作:+ 表示要加上permission指定的权利- 表示要取消permission指定的权利permission项为存取权限,它的内容为以下一项或多项:r 表示可读w 表示可写x 表示可执行格式2:绝对模式chmod xyz file...x、y、z分别是0-7的数字,分别表示属主、用户组、其他人对该文件的存取权限。
x、y、z的取值公式均为:a*4 + b*2 + ca=1表示可读,a=0表示不可读;b=1表示可写,b=0表示不可写;c=1表示可执行,c=0表示不可执行;通过SUID(set user ID),SGID(set group ID)改变文件属主及文件所在组(必须对文件具有write权利,是文件的属主或supervisor)▲chown 属主名文件名△chgrp 组名文件名▲umask(设置建立文件或目录时的默认权限,类似子网掩码)通常为022000010010--》反转111101101--》rwxr-xr-x(对于目录)--》rw-r--r--(对于文件)△touch(建立及更新文件的修改时间)3目录3.1目录结构/ 根目录,这是所有目录和文件的起点/bin 可执行程序(二进制,binaries),/usr/bin/dev 设备文件(设备驱动程序,devices),如/dev/cd0/etc 配置文件,系统管理文件和信息passwd文件存放用户基本信息表,shadow文件存放用户的密码。
/lib 程序库,共享副本/usr 用户文件/tmp 临时文件目录/lost+found 非正常关闭、故障、问题恢复后的文件(系统不知道其正确位置)/mnt,/sys 装配外部媒介的位置,描述系统配置unix,boot3.2 HOME目录创建用户时,会在/usr目录下创建一个专门的目录,称为家目录(Home Directory),目录名与用户名称相同,如/usr/smith。
家目录中有一个文件比较特殊:".profile"(或".login")文件,其中定义了许多启动时必须的环境变量。
该用户名登录UNIX时,会自动执行它。
有点类似于DOS的AUTOEXEC.BAT文件。
".profile"是B/K shell的启动文件,而".login"是C shell的启动文件。
▲env命令可以查看环境变量,或者echo $HOME#MANPATH=/usr/man:/usr/share/man--联机帮助文档路径?HOME=/usr/test2--家目录PATH=/bin:/usr/bin:$HOME/bin:/usr/tuxedo/bin:.--路径(如果把.放在最前面可以优先运行自己的命令,既具有迷惑性又具有危险性),注意是用冒号(:)分开而不是分号(;)LOGNAME=test2--登录用户MAIL=/usr/spool/mail/test2--默认的收件箱位置PS1=!$--命令提示符,!表示显示命令历史记录数(加路径信息PS1='$PWD@!: ',注意是单引号)SHELL=/bin/ksh--shell类型TERM=vt100--终端设置成最小公分母形式;也可为ANSIPWD=/--当前目录TZ=EST5EDT--时区ENV=/usr/test2/.kshrc--shell启动文件.kshrc中可定义别名▲alias dir = "ls -F"应该用提示的方法防止误删除文件,不过还是不够安全,应该移动到指定的目录下以便于找回alias rm = "/bin/rm i"3.3相关命令/ 表示根目录. 表示当前目录.. 表示当前目录的父目录▲pwd(显示当前目录,当前位置就像一个指针)▲cd(切换目录)cd后面为空表示回到家目录▲mkdir(建立目录)-m 可加权限;700只可本人使用;777所有人都可使用;正常是755:其他人不可写▲rmdir(删除空目录)▲rm(删除文件或目录,慎用,不能被恢复)-i (interactive)交互模式,有提示信息-r 删除非空目录(=deltree)-f 删除(忽略提示)▲cp(文件复制)-r 复制目录△rcp (远端主机间的文件复制)▲mv(文件/目录移动,或更名(只是移动到同一位置))△du(以KB为单位列出其下目录的大小)△df(查看空间使用情况)Unix学习笔记二Unix学习笔记二,还是命令占一大部分,而且还没涉及到最复杂的命令.Unix学习笔记二4其他命令4.1文件命令▲file(查看文件类型,只是猜测)标准是依赖于权限、文件名、魔数与前512行的综合分析;每个文件包含一类标记文件类型的魔数(Magic Number),在/ect/magic文件中查看。