UnixLinux文件系统简介
Unix/Linux 文件系统简介
一、Unix 命令格式
1、Unix 命令提示符
在命令行操作环境下,Unix 系统会显示一提示符,提示用户可以在此提示符后输入一行命令。不同的Shell 有不同的缺省提示符,如 B Shell 、Bourne-again Shell 的缺省提
示符为"$" ,C Shell 的缺省提示符为"%" 。但当以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 中可以使用一种特殊字符“ ~”来代表用户的主目录的绝对路径名。另外,“ .可”
用来表示当前工作目录,“.. 可”用来表示当前工作目录的父目录。
5 、用户信息
(1)用户口令管理
passwd 文件:UNIX 所有用户的清单是passwd 文件,它位于/etc 目录下,文件的每一行定义一个用户,文件的属性是“只读”,属主是“超级用户” 。文件的每一行包含以下几项:用户登录名:
经过加密处理的口令:以x 显示加密后的口令,加密处理的口令放在/etc/shadow 文件中uid 值:用户ID ,系统内唯一的标识用户名的数字。
gid 值:组ID ,一个表示用户默认组号的值。该值对应/etc/group 中的一项。
个人信息:也称为GOS 域,记录用户的个人信息登录目录:定义了用户的home 目录或初始的工作目录登录shell :用户在进行系统登录后最初可以使用的shell 。
(2)用户组管理
在UNIX 中,用户组的引入是为了方便用户对文件和其他资源的共享,同时又保证系统的安全性。所谓用户组是指共同在UNIX 系统中开发同一项目,因此共享文件和其他系统资源的用户的集合。
Group 文件:定义了UNIX 系统中所有的用户组,它位于系统的/etc 目录下。文件的每一行定义一个用户组,格式为:group-name: * : gid: additional-user
Group-name 中包含组的名称(文本格式);“* ”这一项是为了与老版本的UNIX 兼容,没有实际意义。Gid 域是一个唯一标识组名的数字;additional-user 域包含了属于该组的用户名单。例如:
# cat /etc/group sys::0:root,bin,sys,adm root::0:rootdaemon::1:root,daemon
(3)用户管理
在UNIX 系统中增加一个用户需要以下几步:
(1)定义用户帐号的标识信息,包括用户登录名、uid 、缺省用户组名
(2)指定用户帐号的原始口令
(3)指定用户的注册目录,并在该目录不存在时创建,同时将该目录的属主用户和组设为正要建立的用户及组。
(4)将上述信息加入/etc/passwd文件中
命令具体形式
1. UNIX 登录和退出方法
用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计
算机登录到ITPNET 上都将访问相同的文件系统。
1.1 登录
当屏幕上出现Login 提示符时,用户可以输入自己的用户注册名,并按回车键。若有口令,系统
将提示用户输入密码,并按回车键,口令输入正确后,用户登录成功。这时,屏幕上会显示出一些信息和命令提示符。如:
Login: guest [Enter] //输入username
passwd: ****** [Enter] //输入密码
$
注: 用户名要用小写字母输入,UNIX 系统区分大小写字母。
1.2 退出
当用户准备退出自己的计算机帐号时,可在系统示符下输入logout或exit或按[Ctrl-D]。
当屏幕出现Login 时,用户可以安全地离开计算机了。如:
$ logout [Enter]
Login:
1.3 修改口令
为了防止他人使用自己的帐号,在你首次登录后,请用passwd 命令修改只有本人知道
的保密口令,口令通常由此可6到8 个字母数字组成。如:
$ passwd [Enter]
Old Passwd: ****** //输入旧密码
New Passwd: ****** //输入新密码(最好6-8 字,英文字母与数字混合)
Retype New Passwd: ****** //再输入一次密码
注:当你退出系统再次登录时,就要使用新的口令。
2. 文件或目录处理
文件系统是指对存储在存储设备(如硬盘)中的文件所进行的组织管理,通常是按照目录层次的方式进行组织。每个目录可以包括多个子目录以及文件,系统以/ 为根目录。常
见的目录有/etc (常用于存放系统配置及管理文件)、/dev (常用于存放外围设备文件)、
/usr (常用于存放与用户相关的文件)等。
2.1 列出文件或目录下之文件名称
执行格式:ls [-atFlgR] [name] ( name 可为文件名或目录名称。)
ls 列出目前目录下之文件名。
ls -a列出包含以.起始的隐藏档所有文件名。
ls -依照文件最后修改时间之顺序,依序列出文件名。
ls -F 列出目前目录下之文件名及其类型。”/ ”结尾表示为目录名称,“* ”结尾表示为执行程序,”@”结尾表示为symblic link (指向其他文件或目录的符号链接)。
ls -l 列出目录下所有文件之许可权、拥有者、文件大小、修改时间及名称。
例如:
类型。从左到右,表示文件的所有者、拥有文件的组以及其他人对文件的访问权限。 每个权限字符串由3部分组成:读(r )、读(w)和执行的权限(x);-:表示不提供特定的权限。 Is -g 同上,并显示出文件之拥有者群组名称。 Is -R 显示出目录下,以及其所有子目录之文件名。 (recursive list ing )
2.2改变工作目录位置
执行格式:cd [name] : name 可为目录名称、路径或目录缩写。 Example: cd 〃改变目录位置,至使用者 login 时的 working directory (起始目录)。 cd dir1 //改变目录位置,至
dir1之目录位置下。
cd ~user //改变目录位置,至使用者的 working directory (起始目录)。
cd .. 〃改变目录位置,至目前目录的上层
(即 pare nt of work ing directory) cd ../user //改变目录位置,至相对路径 user 之目录位置下。
cd /../..
//改变目录位置,至绝对路径
(Full path )之目录位置下。
2.3复制文件
执行格式:cp [-r] source destination
cp [[选项]] <源文件或目录 > < 目标文件或目录> 选项:
-a,这个选项将在备份过和尽可能保持源文件的结构和属性。
-b,这个选项使用后,如果目标文件或目录中与源文件或目录有同名时,先把目标文件或目 录中同名的做个备份。
-f,删除目标中同名的文件或目录,并且不给任何提示。 -r,递归复制目录,把所有非目录文件当普通文件复制。 -R,递归复制目录,复制整个目录及其下面的所有子目录。 Example: cp file1 file2 //将文件 file1 复制成 file2
cp file1 dir1
//将文件file1复制到目录 dir1下,文件名仍为 file1。
cp /tmp/file1 〃将目录/tmp 下的文件file1复制到现行目录下,文件名仍为 file1。
cp /tmp/file1 file2
//将目录/tmp 下的文件file1复制到现行目录下,文件名为 file2
cp -r dir1 dir2 (recursive copy)
〃复制整个目录。若目录 dir2存在,则将目录
dir1,及
dr ■-xi
■-礼
15 r oo 1 root 4096 dr
22 r oot root
40% lirwxr-x r-K 2 root I oo L
61440 di v\xr-xr~x 2 r oo 1 ]oo L 40%
dr \\xr-xr^ Y 2 r oot root
4096 dr^xr-x r-K 4 I ool I OO L
409+
S
di 19B r oot ]oo L 122B8 dr r xr-k & root root
40^1 dr^\r-x r-x 130 I ool I OO L
dr r~x 13 r oo 1 r oo L 40%
d rr xr~k 11 r oo t
root
dr^\r-x r-x 2 I oc 1 1 QO I
122R8 drr-x 272 r oo 1 roo L 8192 d r - x r - k 5 r oot
root
4096 1 n\x r ux r wc 1 I 0 10 drr-K g roc 1 r 00 L 40% 10 14^07 bin 25 07:52 d LC 1 25 O7:S2 etc 4 21:49 ganv s 10 14汕7 inc Lude 25 12;19 ke rbc i o 10 14^07 1 >b 4 23:43 ]ibexcc 4 2L26 loca 1 10 14^07 in 10 lk57 sha re 4 22:29 src 4 21:26 trip -> , 4 XI IRJ^ 访问权限:第一个字符指出文件类型。 文件大小 最后访问的时间 文件名 随后9个字符指出了对于不同用户所允许的访问 访问权限 链接拥有者 组群 3 3 3 3 3 2 3 3 3 3 3 3 3 3 4 7 21:27 14:58 月 月 月 月月月 月」月月 月」nN 月 月nu 月 月Tmp 指 向../var/tmp, 刚好是10。 ,/var / nip 其所有文件和子目录,复制到目录dir2下,新目录名称为dirl。若目录dir2不存在,则 将dirl,及其所有文件和子目录,复制为目录dir2。 例A:将文件examl.c拷贝到/usr/wang 这个目录下,并改名为shiyanl.c 。 $ cp - i examl.c /usr/wa ng/shiya nl.c 例B:上例中不希望重新命名,可以使用下面的命令: $ cp exam1.c /usr/ wang/ 例C:将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu 中。 $ cp - r /usr/xu/ /usr/liu/ 2.4列出目前所在之目录位置 执行格式:pwd 2.5建立新目录 执行格式:mkdir directory-name Exmaple : mkdir dir1 //在当前目录下建立一新目录dir1。 2.6 删除目录执行格式:rmdir directory-name 或rm directory-name Example : rmdir dir1 //删除目录dir1,但dir1下必须没有文件存在,否则无法删除。 rm -r dir1 //删除目录dir1,及其下所有文件及子目录。 2.7用umask建立文件和目录的默认权限 umask命令可以控制所有新建的文件或目录的访问权限。创建文件和目录时,系统自动设置一定的权限.缺省权限由用户umask码控制。 umask //显示用户umask码 umask命令的格式为:umask [u1u2u3] //改变用户umask码 以下使用设定值067当作例子,以X0R的算法则来实际设定会应该得到的结果。 崖F擋案丽算 r w x r w x r w x 1 1 1 1 1 1 1 1 1 7 7 7 1 1 0 1 1 1000 670 0 0 1 0 0 00 0 0 1 0 7 何目錄的演算) O&KH? r w x r w x r w x 1 1 ?1 1 - 1 1 - 6 6 6 1 1 0 1 1 40 0 0 6 7 0 000 000 1 1 0 0 0 6 假如使用者想要显示umask的设定值,可键入指令umask,设定值即会显示出: % umask 22 以上所显示的设定值“22即代表“022”因第一个数字为“0时不显示。假如显示值为“2” 则代表“002”显示值为“0则代表“000” 一般系统的常用的设定值有“002、“022” “037”或“077等几种。 2.8移动或更改文件、目录名称 执行格式:mv [[选项]] < 源文件或目录> < 目标文件或目录> 常用选项: -i,表明在进行转移文件盖写前给出提示,让用户确认,以防止把目标文件中同名文件无意覆 盖掉。 -f,表明,即使目标文件同名,也不给出提示而直接覆盖掉,这时就算加了-i选项也没用。当 然,如果目标文件没有写权限的话,就无法覆盖,系统会给相应的出错信息。 Example: mv file1 file2 //将文件file1,更改文件名为file2。 mv file1 dir1 //将文件file1,移到目录dir1下,文件名仍为file1。 mv dir1 dir2 〃若目录dir2不存在,则将目录dir1,及其所有文件和子目录,移到目录dir2 下,新目录名称为dir1。若目录dir2不存在,则将dir1,及其所有文件和子目录,更改为