My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 操作系统 > Linux > Linux综合
linux 文件系统及操作,用户管理
作者:未知 时间:2005-09-13 22:15 出处:Blog.ChinaUnix.net 责编:My FAQ
              摘要:linux 文件系统及操作,用户管理

一、安装问题

二、文件系统及操作

三、用户管理

四、文件权限

五、Linux 常用工具软件

一、安装问题

    在安装过程中,虽然有许多的步骤,但是对于初学者来说,只要选择默认的选项,一路 ok 下去就可以了。在最初的时刻,许多问题无法明白,也没有必要明白和理解。对于一个操作系统而言,不重复安装三四遍是不可能有一个深刻认识的。但是有几个问题是无法回避的,因此在这里特别说明一下。

1.1 分区问题

一些基本概念:

    硬盘的道:磁盘最外圈的道为第 0 道。

    分区类型:有三种分区类型:主分区、扩展分区和逻辑分区。主分区和扩展分区是磁盘主要的分割形式。一块硬盘可以包含四个主分区,或者三个主分区和一个扩展分区。其中扩展分区可以再被进一步分割成为多个逻辑分区。

    文件系统:文件系统的主要作用有三个:1)保持分配的和未被占用的空间;2)维护目录和文件名;3)记录每个文件在磁盘上存储的物理位置。

1.2 启动问题

一般启动过程:

    当打开计算机电源,CPU 就获得了控制权。CPU 立刻执行存储在主板上的 BIOS(Basic Input Output System 基本输入输出系统) 中的指令。在 BIOS 指令的最后部分,包含了启动例程。该例程的任务是读取位于第一个硬盘中第一个扇区中的主引导记录(MBR)。在主引导记录中,包含了主引导程序和描述磁盘分区情况的磁盘分区表。BIOS 执行主引导程序,以继续完成引导过程。主引导程序查看磁盘分区表,以获得活动分区。如果只有一个主分区的话,那么就将装入该分区的操作系统并启动。

    如果一个硬盘中包含了多个主分区,每个可启动的分区(比如每个分区都包含了一个操作系统)的第一个扇区都包含了自己的引导记录(boot record)。该引导记录包含了启动该分区中操作系统的启动程序。在查询到活动分区后,主引导记录运行分区的引导程序。引导程序装入操作系统文件并运行操作系统。

    大多数操作系统,包括 DOS、Windows3.x、Windows95/98、Windows NT 从硬盘启动的时候,需要从活动分区启动。但是不同的操作系统用不同的方式从活动分区上启动:

    DOS、Window3.x、Windows95/98 必需从第一个硬盘上的的活动分区启动。

    Windows NT 可以从逻辑分区上启动,但是其引导程序必需放在第一个硬盘的活动分区上。

    OS/2 可以从逻辑分区上启动。但是包含逻辑分区的扩展分区必需在硬盘的前 2GB 内。

    Linux 可以从逻辑分区上启动,也可以从主分区上启动。

1.3 选定服务的问题

    在分区之后,就出现了一个列表,上面列举了许多的服务,供安装者挑选。那么这些服务都是干什么的呢?自己到底需要不需要呢?下面是这些服务的一个列表,帮助大家理解。随着学习的不断深入,对其中的某些服务将会有进一步的认识和了解。

服务名称

默认值

含义

apmd

*

监控高级电源管理(

Advanced Power ManagementAPMBIOS和记录电源(AC,或电池)的状态。

atd

*

运行有

at batch 命令所调度的命令。

crond

*

根据由

crontab 命令所设置的时间进度而运行的用户指定程序。

gpm

*

在文本模式的屏幕下,能够使用鼠标。

httpd

*

Apache WWW 服务器

inet

*

Internet 超级服务器,也叫 inetd。它可以在任何需要的时候启动其他的 Internet 服务。

innd

*

Internet 新闻服务器,用来支持系统上的本地新闻组。

kerneld

*

Linux 需要的时候,自动装载内核模块。用户应该总保持 kerneld 服务,因为 Linux 操作系统需要它。

keytable

*

装载已选择的键盘映象,该映象是由

/etc/sysconfig/keyboard 文件所指定。应该一直讲该服务运行于系统上。

linuxconf

*

实现

Linux 系统的配置任务。

lpd

*

管理打印任务队列和发送打印任务到打印机的服务。如果要从

Linux 系统上完成打印工作,需要此项服务。

named

*

是一个将主机名转换为

IP 地址的域名服务器。

netfs

*

挂装和卸载所有网络文件系统(

NFSSamba Netware)的服务。

network

*

该服务可以激活或者撤消那些被配置用来在系统引导时启动的网络接口。

nfs

*

使用网络文件系统协议输出文件系统,使得其他运行

NFS 的系统可以共享用户系统的文件。

nfslock

*

NFS 提供文件上锁功能。

pcmcia

*

提供对

PCMCIA 设备的支持。

portmap

*

任何依赖于

RPCRemote Precedure Calls)的软件所使用的服务器。NFS 需要 portmap 的支持。

postgresql

 

启动或者终止处理数据库请求的

PostgreSQL 的服务程序。

random

*

Linux 系统上产生随机数的服务。

routed

 

使用

RIP 协议,生计 IP 路由表。一般不使用这个服务。

rstatd

 

返回来自

Linux 内核中的性能统计数据。

rusersd

 

允许网络上任何系统上的用户查看某个系统的登录情况。

rwhod

 

能够让远程用户得到运行着

rwhod 服务的 Linux 系统上的所有用户列表。

sendmail

*

将邮件从一台计算机上移动到另一台。如果用户要使用自己的系统发送邮件,应该启动该服务。

smb

*

启动和终止

Samba smbd mnbd 服务,它们被用来支持 Linux 系统上局域网管理服务。

snmpd

 

应用于网络管理功能的简单网络管理协议(

SNMP)。

sound

*

在系统关闭时,存储某些声卡设置,在启动时,恢复这些设置。

syslog

*

这项服务被许多其他程序(包括其他服务)用来将各种鼓掌和状态信息记录在一个日志文件(

/var/log/messages)中。该服务应一直运行。

ypbind

 

网络信息系统(

Network Information System)所需要的服务。用户不必启动 ypbind,除非想要使用 NIS

二、文件系统及操作

2.1 文件系统的层次结构


    Linux 采用了树形的目录结构。最上面的节点是根(/),也就是在安装的过程中,要求用户必须输入的那个挂装点。在根下面生成了许多分支。由于 Linux 使用了标准化的层次结构,因此这些分支都被预先定义了含义,以及它应该包含的内容。下表是这些目录的含义:

目录

解释

/bin

二进制可执行命令

/dev

设备特殊文件

/etc

系统管理和配置文件

/home

用户主目录的基点

/lib

标准程序设计库

/sbin

系统管理命令

/tmp

公用的临时文件存储点

/usr/X11

X-window 系统文件

/usr/adm

系统管理的数据文件

/usr/bin

其他的可执行命令

/usr/lib

库和软件包的配置文件

/usr/local/bin

本地增加的命令

/usr/local/lib

本地增加的库

/usr/local/src

本地命令的源文件

/usr/man

系统联机的手册页

/usr/src/linux

Linux 内核源代码

/var

某些大文件的溢出区

2.2 文件系统

    事实上,Linux 系统中每个分区都是一个文件系统,有它自己的顶层目录和下面的目录层次结构。然后将这些单独的文件系统形成一个系统的总的目录层次结构。其办法是:将一个文件系统的顶层目录挂装到另外一个文件系统中的子目录上,使它们成为一个整体。

    举一个例子:在安装 Linux 时的时候,把一个硬盘分为三个分区。其中一个分区是安装的是根文件系统。第二个分区安装的是 /usr 文件系统;第三个分区安装的是 /home 文件系统。在目录树中,/home 目录及其子目录都安装在第三个分区中;/usr 目录及其子目录都安装在第二个分区中;在标准目录结构中,除去 /home 和 /usr 的其他目录安装在第一个分区中。因此通过 /home 和 /usr 这样的目录,将三个分区连结在一起,成为一个完整的文件系统。

    因此在 Linux 中,各个分区不是通过驱动器盘符来组成一个完整的文件系统,而是通过类似上例中的 /home、/usr 这样的目录来把各个分区连接在一起。我们称 /home 和 /usr 这样的目录为挂装点。

    存在磁盘中的文件,系统都分配给它一个号码,称为该文件的索引节点号(inode number)。它实际上是存在盘上的一个数组的入口索引号。数组的每个元素是一个索引节点,它保存了一个文件的管理信息,其中包括文件的建立时间,文件的所属关系,文件保存在磁盘中的位置等。正是这个文件索引节点号和文件名同时保存在目录中。所以,从本质上讲,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为是一个连接。因此同一个索引节点号可以出现在一个以上的连接中。也既是单个文件允许有多个有效路径名。这样做的好处是可以在不同的目录结构下,通过不同的路径访问同一个文件,而这个文件在磁盘中只有一个拷贝,节省了硬盘空间。同时,要删除一个文件或者目录,只有在同一个索引节点属于唯一一个连接时,才能成功。因此可以防止不必要的误删除。

从上述概念中可以看出来,在一个文件系统中,索引节点号是唯一的,但是在不同的文件系统中又如何呢?如果要在不同的文件系统之间建立连接的话,就不能使用共享索引节点的方法。此时需要用 ln -s 来建立两者之间的符号连接。符号连接是 Linux 特殊文件类型的一种。事实上,它是一个文本文件,其中包含它提供连接的另一个文件的路径名。请注意,符号连接不但能应用于不同的文件系统之间,也可以应用于同一文件系统之内,而索引节点的连接只能用于同一文件系统之内。

    对操纵索引节点连接的 ln 和 mv 命令介绍。

2.3 文件处理

    对于文件的处理,最基本的操作是显示目录结构、拷贝、删除、创建、编辑等。这些基本的操作在这里只是进行一下演示,其中每种操作都包含了若干的选项,以完成不同的功能,希望大家阅读 manpage。

    显示目录树命令 ls。

    拷贝文件命令 cp。

    删除文件命令 r。

    显示文件内容命令 cat。

    文本文件统计命令 wc。

    查找文件内字符串命令 grep。

    Linux 命令行选项纷繁复杂,虽然能够实现比较多的功能,但是记忆困难。建议大家对这些选项命令1)多使用;2)记忆时要记英文;3)按功能进行总结。

2.4 挂装

    安装了 Linux 以后,有一个迫切的要求,就是如何访问系统上的光驱和软盘呢?如何访问同在一台机器上,在不同文件系统下的文件呢?这时,就要用到了挂装。在前面的内容中,已经大概讲述了挂装的概念,现在来进一步阐述。

    挂装点是一个目录,在这个目录中,可以把第二个磁盘分区安装到第一个磁盘分区上,使得第二个分区好象是第一个分区的一部分一样。就是说,对目录树进行“嫁接”,在该点上设立一个分支,使得树结构变得更庞大。实际上,这是向一个已经存在的文件系统中添加另外一个分区的唯一办法。

    挂装点必须是一个目录的名称。但是这个目录可以不一定为空。实际上没有哪个目录是真正空的,至少还含有“.”和“..”两个文件。当然也可以含有其它更多的内容。如果一个分区挂装在一个已存在的目录上,这个目录下以前的内容将不可用。它们的内容不会被看见,也不会被使用,为原来文件所占用的磁盘空间将会丢失。因此如果某人把含有修改过的二进制代码的软盘挂装在 /bin 或者 /sbin 上,被修改过的二进制代码将取代原有代码,显然这会引发安全性问题。

    但如果不是以 root 身份挂装的话,其他用户只能挂装在 /etc/fstab 文件中允许的内容。没有选项的挂装命令将会读取 mtab 并且显示已挂装的分区。

三、用户管理

    Linux 是一个多用户系统,因此对用户的管理是系统管理的基本组成部分。安装 Linux 的用户很可能就是该系统的管理员,也就是权限最高的 root。通过对用户的管理,分清了用户之间的责、权、利,保证了系统安全。

3.1 增加用户帐号


    新建用户的命令十分简单,在命令行下使用 useradd 命令:

    useradd david

    该命令做了下面几件事:1)在 /etc/passwd 文件中增添了一个入口;2)在 /home 目录下创建新用户的主目录,并将 /etc/skel 目录中的文件拷贝到该目录中去;3)。但是使用了该命令后,新建的用户依然不能登录,因为还没有设置口令,需要再用 passwd 命令为其设置口令后,才能登录。用户的 UID 和 GID 是 useradd 自动选取的,它是将 /etc/passwd 文件中的 UID 加 1,将 etc/group 文件中的 GID 加 1。

useradd 命令中还有许多选项,它们的功能如下表:

选项

说明

-u

手工设置

UID

-g

手工设置

GID

-d

设置新用户的主目录

-G

使用户成为其他组的成员

3.2 理解 /etc/passwd 文件


    /etc/passwd 文件是系统的主要文件之一。该文件中包含了所有用户登录名清单;为所有用户指定了主目录;在登录时使用的 shell 程序名称等。该文件还保存了用户口令;给每个用户提供系统识别号。

    /etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:

    name:password:uid:gid:comment:home:shell

    它们的含义如下:

说明

name

用户登录名

password

用户口令。此域中的口令是加密的。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。

uid

指定用户的

UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。

gid

GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。

comment

用来保存用户的真实姓名和个人细节。

home

指定用户的主目录的绝对路径。

shell

如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。

3.3 建立新组


    与建立新用户帐号十分类似,建立新组的命令是 groupadd:

    useradd group-name

    可以使用 -g 选项设定新组的 GID。0 到 499 之间的值留给 root、bin、mail 这样的系统帐号,因此最好指定该值大于 499。如果新组名或者 GID 已经存在,则返回错误信息。

3.4 理解 /etc/group 文件


    /etc/group 文件文件的格式和 /etc/passwd 文件格式类似,它也是一个纯文本文件,定义了每个组中的用户。每行的格式是:

    group_name:passwd:GID:user_list

    它们的含义如下:

说明

group_name

组名

password

组口令。此域中的口令是加密的。如果此域为空,表明该组不需要口令。

gid

指定

GID

user_list

该组的所有用户,用户名之间用逗号隔开。

3.5 用户管理


    添加新用户后,如果对新用户的种种设置不满意,则可以通过 usermod 命令进行修改。

    usermod 命令的一般格式为:

    usermod -选项 相关内容 用户名

    请参看下表:

命令

说明

usermod –s newshell path username

改变用户登录时使用的

shell。该 shell 应该是列入 /etc/shells 中的 shell。如果指定的 shell 或者程序名没有列入 /etc/shells,该用户将不能登录。注意,普通用户也能使用该命令。

usermod –d new home dic username

改变用户的主目录

usermod –u UID username

修改用户的

UID

usermod –g GID username

修改用户的默认组

usermod –e MM/DD/YY

修改用户帐号的有效期

    除了 usermod 命令以外,还有一些修改用户信息的命令,比如修改口令的 passwd,修改个人信息的 chfn 等。

    对于组的修改要相对简单一些,类似的使用 groupmod 命令,比如:

    groupmod -n new-group current-group:改变组名;

    groupmod -g new-GID groupname:改变 GID。


    删除一个用户,使用类似的命令:userdel,其格式是:

    userdel username

4。 vi 的使用


    不得不承认,vi 是非常优秀的文本编辑器。虽然命令繁杂,但是经过一段时间的使用,才发现它可以和 windows 下的一些著名编辑器媲美。

    vi 有三种方式,分别是编辑方式、插入方式和命令方式。其功能键参看下表:

    编辑方式:

功能键

功能

ctrl-f

前翻一页

ctrl-b

后翻一页

H

将光标移动到屏幕最上面一行

M

将光标移动到屏幕中间

L

将光标移动到屏幕最下面一行

w

右移光标到下一个字的开头

e

右移光标到一个字的末尾

b

左移光标到前一个字的开头

0

左移光标到到本行的开始

^

移动光标到行中第一个非空字符

$

右移光标到本行末尾

  

/string

向前搜索指定的字符串

? string

向后搜索指定的字符串

n

搜索下一个字符串

  

rc

c 替换当前光标处的字符

x

删除当前光标处的字符

dw

删除光标右面的字

db

删除光标左面的字

dd

删除光标所在行

 

在上面的命令前加上数字,表示重复操作的次数

d$

删除当前光标到行末尾之间的字符

d0

从当前光标起删除字符直到行的开始

J

删除本行的回车,并和下一行合并

  

p

将缓冲区内的内容粘贴到当前光标的后面

P

将缓冲区内的内容粘贴到当前光标的前面

yy

将当前行复制到剪切缓冲区

nyy

n行复制到剪切缓冲区
  

u

撤消前一命令的结果

.

重复最后一条修改正文的命令


    插入方式:

功能键

功能

i

在光标左面插入正文

a

在光标右面插入正文

o

在光标所在行下面增加行

O

在光标所在行上面增加行

I

在光标行的开头插入

A

在光标行的末尾插入

  

s

用新的正文替换光标所指字符

cw

用新的正文替换光标右边的字

cb

用新的正文替换光标前边的字

cd

用新的正文替换光标所在的行

 

前面加上数字,表示该命令重复

n
  

c$

用新正文替换从光标开始到本行末尾的所有字符

c0

用新正文替换从光标开始到本行开头的所有字符


    命令方式:

功能键

功能

:q

在未做修改的情况下退出

:q!

将任何修改作废,退出

:w

存盘

:wq

存盘并退出

:w file

将编辑的内容写到

file 文件中去

:r file

file 文件读入,并放在当前光标行的后面

:e file

编辑新文件

file 代替旧内容

:f file

将当前正文的名称改未

file

:f

打印当前正文的名称和状态

  

:n

移动光标到第

n
  

:/str/

将光标移动到下一个包含

str 字符串的行

:?str?

将光标移动到最近的一个包含

str 字符串的行

:/str/w file

将第一个包含

str 字符串的行写到文件 file

:/str1/,/str2/w file

将从包含

str1 包含 str2 之间的行写入 file 文件
  

:s/str1/str2

str2 替换掉首次出现的 str1

:s/str1/str2/g

str2 替换掉每次出现的 str1
  

:d

删除当前光标行

增加新用户时,系统将为用户创建一个与用户名相同的组,称为私有组。这一方法是为了能让新用户与其他用户隔离,确保安全性的措施。

 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有