| My FAQ,最新最全的IT技术FAQ |
|
| 首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论 |
| 当前位置: > 操作系统 > Linux > Linux综合 |
| linux 文件系统及操作,用户管理 |
| 作者:未知 时间:2005-09-13 22:15 出处:Blog.ChinaUnix.net 责编:My FAQ |
| 摘要: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 | 某些大文件的溢出区 |
事实上,Linux 系统中每个分区都是一个文件系统,有它自己的顶层目录和下面的目录层次结构。然后将这些单独的文件系统形成一个系统的总的目录层次结构。其办法是:将一个文件系统的顶层目录挂装到另外一个文件系统中的子目录上,使它们成为一个整体。
举一个例子:在安装 Linux 时的时候,把一个硬盘分为三个分区。其中一个分区是安装的是根文件系统。第二个分区安装的是 /usr 文件系统;第三个分区安装的是 /home 文件系统。在目录树中,/home 目录及其子目录都安装在第三个分区中;/usr 目录及其子目录都安装在第二个分区中;在标准目录结构中,除去 /home 和 /usr 的其他目录安装在第一个分区中。因此通过 /home 和 /usr 这样的目录,将三个分区连结在一起,成为一个完整的文件系统。
因此在 Linux 中,各个分区不是通过驱动器盘符来组成一个完整的文件系统,而是通过类似上例中的 /home、/usr 这样的目录来把各个分区连接在一起。我们称 /home 和 /usr 这样的目录为挂装点。
存在磁盘中的文件,系统都分配给它一个号码,称为该文件的索引节点号(inode number)。它实际上是存在盘上的一个数组的入口索引号。数组的每个元素是一个索引节点,它保存了一个文件的管理信息,其中包括文件的建立时间,文件的所属关系,文件保存在磁盘中的位置等。正是这个文件索引节点号和文件名同时保存在目录中。所以,从本质上讲,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为是一个连接。因此同一个索引节点号可以出现在一个以上的连接中。也既是单个文件允许有多个有效路径名。这样做的好处是可以在不同的目录结构下,通过不同的路径访问同一个文件,而这个文件在磁盘中只有一个拷贝,节省了硬盘空间。同时,要删除一个文件或者目录,只有在同一个索引节点属于唯一一个连接时,才能成功。因此可以防止不必要的误删除。
从上述概念中可以看出来,在一个文件系统中,索引节点号是唯一的,但是在不同的文件系统中又如何呢?如果要在不同的文件系统之间建立连接的话,就不能使用共享索引节点的方法。此时需要用 ln -s 来建立两者之间的符号连接。符号连接是 Linux 特殊文件类型的一种。事实上,它是一个文本文件,其中包含它提供连接的另一个文件的路径名。请注意,符号连接不但能应用于不同的文件系统之间,也可以应用于同一文件系统之内,而索引节点的连接只能用于同一文件系统之内。
对操纵索引节点连接的 ln 和 mv 命令介绍。
对于文件的处理,最基本的操作是显示目录结构、拷贝、删除、创建、编辑等。这些基本的操作在这里只是进行一下演示,其中每种操作都包含了若干的选项,以完成不同的功能,希望大家阅读 manpage。
显示目录树命令 ls。
拷贝文件命令 cp。
删除文件命令 r。
显示文件内容命令 cat。
文本文件统计命令 wc。
查找文件内字符串命令 grep。
Linux 命令行选项纷繁复杂,虽然能够实现比较多的功能,但是记忆困难。建议大家对这些选项命令1)多使用;2)记忆时要记英文;3)按功能进行总结。
安装了 Linux 以后,有一个迫切的要求,就是如何访问系统上的光驱和软盘呢?如何访问同在一台机器上,在不同文件系统下的文件呢?这时,就要用到了挂装。在前面的内容中,已经大概讲述了挂装的概念,现在来进一步阐述。
挂装点是一个目录,在这个目录中,可以把第二个磁盘分区安装到第一个磁盘分区上,使得第二个分区好象是第一个分区的一部分一样。就是说,对目录树进行“嫁接”,在该点上设立一个分支,使得树结构变得更庞大。实际上,这是向一个已经存在的文件系统中添加另外一个分区的唯一办法。
挂装点必须是一个目录的名称。但是这个目录可以不一定为空。实际上没有哪个目录是真正空的,至少还含有“.”和“..”两个文件。当然也可以含有其它更多的内容。如果一个分区挂装在一个已存在的目录上,这个目录下以前的内容将不可用。它们的内容不会被看见,也不会被使用,为原来文件所占用的磁盘空间将会丢失。因此如果某人把含有修改过的二进制代码的软盘挂装在 /bin 或者 /sbin 上,被修改过的二进制代码将取代原有代码,显然这会引发安全性问题。
但如果不是以 root 身份挂装的话,其他用户只能挂装在 /etc/fstab 文件中允许的内容。没有选项的挂装命令将会读取 mtab 并且显示已挂装的分区。
Linux 是一个多用户系统,因此对用户的管理是系统管理的基本组成部分。安装 Linux 的用户很可能就是该系统的管理员,也就是权限最高的 root。通过对用户的管理,分清了用户之间的责、权、利,保证了系统安全。
新建用户的命令十分简单,在命令行下使用 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 | 使用户成为其他组的成员 |
/etc/passwd 文件是系统的主要文件之一。该文件中包含了所有用户登录名清单;为所有用户指定了主目录;在登录时使用的 shell 程序名称等。该文件还保存了用户口令;给每个用户提供系统识别号。
/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:
name:password:uid:gid:comment:home:shell
它们的含义如下:
域 | 说明 |
name | 用户登录名 |
password | 用户口令。此域中的口令是加密的。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。 |
uid | 指定用户的 UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。 |
gid | GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。 |
comment | 用来保存用户的真实姓名和个人细节。 |
home | 指定用户的主目录的绝对路径。 |
shell | 如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。 |
与建立新用户帐号十分类似,建立新组的命令是 groupadd:
useradd group-name
可以使用 -g 选项设定新组的 GID。0 到 499 之间的值留给 root、bin、mail 这样的系统帐号,因此最好指定该值大于 499。如果新组名或者 GID 已经存在,则返回错误信息。
/etc/group 文件文件的格式和 /etc/passwd 文件格式类似,它也是一个纯文本文件,定义了每个组中的用户。每行的格式是:
group_name:passwd:GID:user_list
它们的含义如下:
域 | 说明 |
group_name | 组名 |
password | 组口令。此域中的口令是加密的。如果此域为空,表明该组不需要口令。 |
gid | 指定 GID。 |
user_list | 该组的所有用户,用户名之间用逗号隔开。 |
添加新用户后,如果对新用户的种种设置不满意,则可以通过 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
不得不承认,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 版权所有 |