Linux 基础学习篇 - Red Hat Linux 6.1

认识 Linux 文件属性及文件配置 - for Red Hat Linux 6.1

大概在 1999~2000 年期间为了防止自己忘记所作的学习心得纪录!

最近更新时间: 2001/09/02

1999 年初次接触 Unix 系统,1999 年底接触 Red Hat 6.1,而在 2000 开始撰写一些心得文章,于是有了底下这些文本的产生。 这些文本对大家来说,可能没什么,但是对鸟哥来说,这是相当珍贵的!所有鸟站的数据起源,都是从这些文本开始的! 慢慢再将许多的指令分门别类的处理进去!网站的数据汇整,真的相当花费时间啊~

不过对于学习者来说,这些数据真的不要再读了!因为实在太老旧... 建议您前往本站查找最新版本的 Linux distribution 文章来阅读,比较不会浪费时间。最新文章请前往鸟站首页查阅啰!

Linux 文件属性

认识文件

如果您已经安装好了 Linux ,并且已经以 root 的身份登录了这架主机,那接下来要做些啥?我想,你应该先试着了解一下 Linux 的主要文件属性,以免不小心砍了一些重要的文件,或者当以一般用户身份登录时,产生无法进入一些没有权限之目录的情况!

首先,进入 Linux 之后,你可以如下输入一个可以观看文件属性的指令: ls  -al
 

[root @tsai root]# ls -al
-rw-r--r--   1 root     root         1422 Jun 18 17:20 .Xdefaults
-rw-r--r--   1 root     root           24 Jun 18 17:20 .bash_logout
-rw-r--r--   1 root     root          230 Jun 18 17:20 .bash_profile
-rw-r--r--   1 root     root          124 Jun 18 17:20 .bashrc
drwxr-xr-x   3 root     root         4096 Jun 18 17:20 .kde
-rw-r--r--   1 root     root          435 Jun 18 17:20 .kderc
-rw-r--r--   1 root     root         3394 Jun 18 17:20 .screenrc
drwxr-xr-x   5 root     root         4096 Jun 18 17:20 Desktop
lrwxrxwrwx  1 root     root           10 Jun 18 17:21 link_file -> /home/vbird/test
-rw-rw-rw-   1 root     root          238 Jun 18 17:22 test.txt

第一栏      二  三       四            五      六        七 
[文件属性][文件数][拥有者][所有者群组][大小][建档日期][文件名]

ls 是『list』的意思,而参数『-al』则表示列出所有的文件(包含隐藏档)。如上所示,在你第一次登录 Linux 时,如果你输入指令后,应该有上列的几个东西,先解释一下上面七个字段个别的意思:

  1. 第一栏代表这个文件的属性,仔细看的话,你应该可以发现这一栏其实共有十个属性,第一个属性代表这个文件是『目录、文件或链接档』当为[d]则是目录;为[-]则是文件,若是[l]则表示为链接档(link file)。接下来的属性中,三个为一组,且均为『rwx』的三个参数的组合。其中,[r]代表可读、[w]代表可写、[x]代表可运行,而第一组为『所有人的权限』、第二组为『同群组的权限』、第三组为『其他非本群组的权限』,若有一个文件的属性为『-rwxr-xr--』,简单的可由下面说明之:

  2.  
    [-][rwx][r-x][r--]
     1  234  567  890
         1 为:代表这个文件名为目录或文件(上面为文件)
        234为:拥有人的权限(上面为可读、可写、可运行)
        567为:同群组用户权限(上面为可读可运行)
        890为:其他用户权限(上面为仅可读)

    上面的情况代表一个文件、这个文件的拥有人可读可写可运行、但同群组的人仅可读与运行,非同群组的用户仅可读的意思!
     

  3. 第二栏表示有多少文件在这个目录(若为1则通常为文件);

  4.  
  5. 第三栏表示这个文件(或目录)的『拥有人』;

  6.  
  7. 第四栏表示拥有人的群组;

  8. 这里解释一下,在 Linux 中,你的 ID (如 root 或 vbird 等帐号均是 ID)即是你的身份,而且你还有附属在一个群组之下,例如你有一个团体(即群组)代号为 bird,且这个群体里有四个人,其代号分别是 bird1, bird2, bird3, bird4,则这四个人为同一群组即 bird!若看上面的情况,则代表所有人为 root 且群组为 root (群组与所有人名称可以相同)
     
  9. 第五栏为这个文件的大小;

  10.  
  11. 第六栏为这个文件的建档日期,分别为月份、日期及时间;

  12.  
  13. 第七栏为这个文件的文件名,如果文件名之前多一个『 . 』,则代表这个文件为『隐藏档』,例如上表第二行的『.Xdefaults』文件名即是隐藏档,由于我们有下一个参数为 ls -al,所以连隐藏档都列出来,如果你只输入 ls 则文件名有加『 . 』的文件就不会被显示出来!
举个例子来说,如果有下面的两个文件:
 
-rw-r--r--   1 root     root          238 Jun 18 17:22 test.txt
-rwxr-xr--   1 bird1    bird         5238 Jun 19 10:25 ping_tsai

则文件『 test.txt 』只有 root 可以读写,其他人仅可以读;而另一个文件『 ping_tsai 』所有人 bird1 可读可写可运行,而 bird2, bird3, bird4 这三个与 bird1 同样是 bird 群组的仅可读可运行但不能写(亦即不能修改),至于非 bird 这一个群组的人则仅可以读,不能写也不能运行!

链接档

另一个比较有趣的文件是链接档。如果你常常将应用程序捉到桌面来的话,你就应该知道在 Windows 底下有所谓的『捷径』,你可以将 linux 下的链接档简单的视为一个文件或目录的捷径。但是基本上这两个东西是不一样的!在 Windows 系统的捷径中,你将无法修改主程序,但是在 Linux 中,链接档可以直接链接到主程序,因此你只要改了这个链接档,则主程序亦被改变了!

一些文件的分别

通常在 Linux 底下会有颜色来显示每一种文件型态,主要有底下几种文件型态:

  • 一般文件:文件的第一个属性显示 - ;
  • 目录: 如果你只输入 ls -l 来察看文件的时候,可以看到文件第一个属性为 d;
  • 可运行档:可以看到文件属性会有 x 这个属性;
  • 压缩档:基本上,只要文件是  .Z  .z  .gz  .zip  .tgz  都是压缩档喔!

Linux 文件配置

如果你是以系统管理员(root)的身份登录这部 Linux 机器,则你的路径应该是在  [root@tsai root]# 底下,这时你可以输入:
[root @tsai root]#  cd ..
会回到根目录『/』下,再输入刚刚学过的指令『ls  -al』则会看到如下的画面:
 
[root@tsai /]$ ls -al
total 117
drwxr-xr-x   2 root     root         4096 May 10 06:50 bin
drwxr-xr-x   3 root     root         1024 Mar 16 18:37 boot
drwxr-xr-x   7 root     root        36864 Jul  8 04:02 dev
drwxr-xr-x  42 root     root         4096 Jul  9 15:21 etc
drwxr-xr-x  35 root     root         4096 Jul  9 15:20 home
drwxr-xr-x   4 root     root         4096 Jan 29 22:55 lib
drwxr-xr-x   2 root     root        16384 Jan 29 22:52 lost+found
drwxr-xr-x   6 root     root         4096 Mar 27 19:10 mnt
drwxr-xr-x   2 root     root         4096 Aug 24  1999 opt
dr-xr-xr-x  60 root     root            0 Jul  1 12:52 proc
drwxr-x---  12 root     root         4096 Jun  7 14:21 root
drwxr-xr-x   3 root     root         4096 May 10 06:50 sbin
drwxrwxrwt   6 root     root         4096 Jul 11 01:04 tmp
drwxr-xr-x  23 root     root         4096 Sep 16  2000 usr
drwxr-xr-x  23 root     root         4096 Jan 29 17:11 var
drwxr-xr-x   6 root     root         4096 Jan  1  1970 win98se
要说明的是,这里的目录为 RedHat 6.1 的配置,在 RedHat 7.0 中有稍做改变,但其实也是差不多的!底下针对上面几个路径来做说明:
  • /bin   :这是放例如: ls, mv, rm, mkdir, rmdir, gzip, tar, telnet, 及 ftp 等等常用的运行档的地方(这些运行档的运行方法会在后面提到),而通常这个文件的内容与 /usr/bin 是一样的(有时候甚至会使用链接档哩);

  •  
  • /boot  :记得我们在之前的 多重开机设置 那一部份有提到你的开机档所在位置吧!没错,这里就是放置你 Linux 内核与开机相关文件的地方;

  •  
  • /dev   :摆放一些与设备有关的文件。基本上 Unix 或 Linux 系统均把设备当成是一个文件来看待,例如 /dev/fd0 代表软碟,亦即 Windows 系统下的 A 槽,而 /dev/cdrom 则代表光盘,等等!

  •  
  • /etc    :系统在开机过程中需要读取的文件均在这个目录中,例如 Lilo 的参数、人员的帐号与密码、系统的主要设置、http 架站的参数内容、你所要打开的服务项目等等都在这个目录中,所以在这个目录下工作的时候,请记得一定要备份,否则文件被改掉了可是很麻烦的!

  •  
  • /etc/rc.d  :这个路径主要在记录一些开关机过程中的 scripts 文件, scripts 有点像是 DOS 下的批量档(.bat文件名);

  •  
  • /etc/xinetd.d  :这个路径在 RedHat 7.0 以后的版本才有,由于 RedHat 6.1 用来打开服务的文件是 inetd.conf ,但是在 7.0 以后的版本中,打开服务的项目已经变成使用 xinetd.conf 这个文件,因此,你若需要启动一些额外的服务的话,在 7.0 以后就要到 /etc/xinetd.d 这个目录下了;

  •  
  • /etc/X11   :这是与 X windows 有关的设置档;

  •  
  • /home  :基本上,这是系统缺省的用户的家目录( home directory ),另外,在 RedHat 6.1 版中,httpd及 ftp 等程序的家目录也在这个目录下!

  •  
  • /lib   :在 Linux 运行或编译内核的时候,均会使用到一些函数库(library),就在这个目录下;

  •  
  • /lost+found :系统不正常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在设备目录下。例如你加装一棵硬盘于 /disk 中,那在这个目录下就会自动产生一个这样的目录 /disk/lost+found,这是砍不掉的目录喔;

  •  
  • /mnt   :这是软碟与光盘接挂点的地方;通常软碟挂在 /mnt/floppy 下,而光盘挂在 /mnt/cdrom 下;

  •  
  • /proc  :系统内核与运行进程的一些信息;

  •  
  • /root  :系统管理员的家目录;

  •  
  • /sbin   :放置一些系统管理常用的程序,例如: fdisk, mke2fs, fsck, mkswap, mount 等等;

  •  
  • /tmp  :这是让一般用户暂时存放文件的地方,例如你在安装 Linux 下的软件时,可能软件缺省的工作目录就是 /tmp ,所以你要定期的清理一下,当然,重要数据最好不要放在这里!

  •  
  • /usr   :这是最重要的一个目录了,里面含有相当多的系统信息,内有许多目录,用来存放程序与指令;

  •  
  • /usr/bin  :放置可运行程序,如前所说,这个目录的文件与 /bin 几乎是相同的;

  •  
  • /usr/include  :c语言的header档;

  •  
  • /usr/lib    :内含许多程序与子程序所需的函数库 ;

  •  
  • /usr/local   :在你安装完了 Linux 之后,基本上所有的配备你都有了,但是软件总是可以升级的,例如你要升级你的 proxy 服务,则通常软件缺省的安装地方就是在 /usr/local 中( local 是『当地』的意思),同时,安装完毕之后所得到的运行档,为了与系统原先的运行档有分别,因此升级后的运行档通常摆在 /usr/local/bin 这个地方;

  •  
  • /usr/sbin    :放置管理者使用程序,与 /sbin 相同;

  •  
  • /usr/doc    :放置一些系统说明文档的地方,(RedHat 7.0 以后改放在 /usr/share/doc 下);

  •  
  • /usr/man  :放置一些程序的说明档的地方, (RedHat 7.0 以后放在 /usr/share/man 底下);

  •  
  • /usr/src    :这是放置内核原代码的缺省目录;

  •  
  • /usr/X11R6  :X Window System存放相关文件的目录  。

  •  
  • /var    :这是系统在工作时,缺省的工作目录,例如这架主机用户的注册表案信息、尚未寄出的邮件存放地、接收的邮件放置处等等;

需要注意的目录

在 Linux 系统中,有几个目录是特别需要注意的,以下提供几个需要注意的目录,以及缺省相关的用途:
  • /etc:这个目录相当重要,如前所述,你的开机与系统数据文件均在这个目录之下,因此当这个目录被破坏,那你的系统大概也就差不多该死掉了!而在往后的文档中,你会发现我们常常使用这个目录下的 /etc/rc.d/init.d 这个子目录,因为这个 init.d 子目录是打开一些 redhat 这个 Linux 系统服务的 scripts (可以想成是 批量档 )的地方。而在 /etc/rc.d/rc.local /etc/rc.d/rc.sysinit 这两个文件是开机的运行档,有点像是旧 Windows 系统下的 autoexec.bat 及 config.sys 档。所以,如果你有需要在开机加载的服务或运行文件,可以写在这两个文件的最后一行,则开机时就会自动帮你加载运行档了!
  • /bin, /sbin, /usr/bin, /usr/sbin:这是系统缺省的运行档的放置目录,例如 root 常常使用的 userconf, netconf, perl, gcc, c++ 等等的数据都放在这几个目录中,所以如果你在提示字符下找不到某个运行档时,可以在这四个目录中查一查!
  • /usr/local:这是系统缺省的让你安装你后来升级的套件的目录。例如,当你发现有更新的 Web 套件(如 Apache )可以安装,而你又不想以 rpm 的方式升级你的套件,则你可以将 apache 这个套件安装在 /usr/local 底下。安装在这里有个好处,因为目前大家的系统都是差不多的,所以如果你的系统要让别人接管的话,也比较容易上手呀!也比较容易找的到数据喔!因此,如果你有需要的话,通常我都会将 /usr/local/bin 这个路径加到我的 path 中
  • /home:这个是系统将有帐号的人口的家目录设置的地方。
  • /var:这个路径就重要了!不论是登录、各类服务的问题发生时的记录、以及常态性的服务记录等等的记录目录,所以当你的系统有问题时,就需要来这个目录记录的文件数据中察看问题的所在啰!而 mail 的缺省放置也是在这里,所以他是很重要的喔!
  • /usr/man, /usr/local/man:这两个目录为放置各类套件说明档的地方,例如你如果运行 man man,则系统会自动去找这两个目录下的所有说明档,如果有相同的数据就会叫出来给你幽!

一般主机可能会分配的磁盘情况

通常一般的大型主机都不会将所有的数据放置在一个磁盘中(就是只有一个『 / 』根目录),这有几个目的:
  1. 安全性考量:你的系统通常是在 /usr/ 中,而数据库则可能放置在 /home 当中,至于一些开机数据则放置在 /etc 当中。如果将所有的数据放在一起,当你的系统不小心被黑客破坏,或者不小心自己砍了一个小东西,则所有的咚咚也都跟着不见了.....这对于我们市井小民或许无所谓,再安装一次就好了,但是对于一些大型企业可不行这样!因此需要将数据分别放置于不同的磁盘中,会比较保险些。
  2. 便利性:如果你需要升级你的系统的话,是否需要重新 format 安装呢?有些数据例如 /home 里面的数据为个人用户的数据,似乎与系统无关!所以如果你将这些数据分别放置于不同的磁盘,则你要升级或者进行一些系统更动时,将比较有弹性。
你或许可以将你的系统做成这样的分布:
  • /
  • /boot
  • /usr
  • /home
  • /var
这是比较常见的磁盘分布情况,其中,
  1. / 根目录可以分配约 256 MB 以内;
  2. /boot 大概在 50 MB 就可以了,因为开机文件并不大;
  3.  /var 就至少需要 1GB 以上,因为你的 mail 、 proxy 缺省的保存区都在这个目录中,除非你要将一些设置改变!
  4. /home /usr 通常是最大的,因为你所安装的数据都是在 /usr/ 当中,而用户数据则放置在 /home 当中,因此通常书上都会建议你将所剩下的磁盘空间平均分配给这两个目录说!

本章问题讨论:

  1. Q:Xwindows 的设置档为 XF86Config,请问这个文件在 RedHad 的哪里?

  2. A
    这个文件放置在 /etc/X11 底下,通常我们在设置 X-Windows 时,比较喜欢用 Xconfigurator 来做简单的设置,也可以使用 XF86Setup 来做设置;
     
2002/01/01以来统计人数
其他链接
环境工程模式篇
鸟园讨论区
鸟哥旧站

今日 人数统计
昨日 人数统计
本月 人数统计
上月 人数统计