Linux不完全手册(三)
linux系统目录结构介绍篇
linux系统有其特定的文件系统的目录组织结构,了解这些目录结构是学习基本知识的基本。下面我以redhatlinux为蓝本介绍一下这些目录结构。
目录名
简介
/bin
这个目录是系统中最主要的可执行文件的存放地,这些可执行文件大都是linux系统里最常用的命令了,一般用户和超级用户都会经常使用其下的命令,如:ls、su、mount等。
/etc
是系统内部存放配置文件的最主要场所,一般和系统关系十分密切的配置文件都放在该目录下,也就是说对系统的配置主要就是对该目录下的文件进行修改。在该目录下大多是文本文件。,比如:inittab、lilo.conf等。
/lost+found
主要是系统有毛病的时候存放文件的地方,正常情况下可以不去理会。
/root
超级用户root的默认主目录,对一般用户来说该目录是没有进入权限的。一般自己的文件都考到自己的主目录下面,以免打乱原来的系统层次结构。
/tmp
和dos或windows的temp目录相同,也就是该目录下面存放临时文件。
/boot
这个是redhatlinux特有的目录,存放系统启动的时候的内核文件和其他一些信息文件。有的发行版本就没有这个目录,而是把这些东西放在根目录下。
/home
这是系统默认的普通用户的主目录的根目录,也就是普通用户的主目录设置为:/home/[userid]目录。
/mnt
是系统提供安装额外文件系统时候的安装目录,这个主要的目的是为了不打乱原来的目录系统结构,否则安装在哪里都是可以的。只要那个目录没被使用。
/sbin
和/bin一样,主要是存放可执行文件的场所,只不过这里的可执行文件主要是给超级用户管理管理系统时使用的,普通用户几乎没有权限执行其中的程序。如:mke2fs、ifconfig等。
/usr
这个目录是linux系统里面占用磁盘空间最大的目录,该目录下面有许多应用程序,他的子目录也比较复杂,而且系统之间还有好多不同,我将在下一张表格里介绍它。
/dev
这个目录下面的所有文件都是特殊文件,linux系统把所有的外设都看成是一个文件,就是说你对代表该外设的文件的操作就表示对该外设的操作。所以说/dev对系统是相当重要的。比如你想对软盘进行EXT2文件系统的格式化,那么就要这样做:mke2fs /dev/fd0,这里的fd0就代表软盘驱动器。
/lib
存放系统的链接库文件,没有该目录则系统就无法正常运行。我曾试着给该目录改名,结果任何命令都无法运行,只好用软盘启动机器再安装好文件系统才解决这个问题,可见其重要性。
/proc
这个目录中的文件其实不是存放在磁盘上的,该目录的文件系统叫做proc文件系统,是系统内核的映像。也就是说该目录里面的文件是存放在系统内存里面。可以通过察看这些文件来了解系统的运行情况。这个目录不要随意动,稍有不慎就可能导致系统的锁死。
/var
主要是一些系统记录文件的存放地,同时也存放一些系统的配置文件。因系统不同而异。
/usr目录结构:
目录名
简介
/usr/x11r6
主要是xwindows的目录,下面还有子目录的结构大致和根目录相同。
/usr/games
安装时选择的游戏都在这里。
/usr/src
主要是系统内核或其他程序的源程序。
/usr/bin
和/bin一样都是一些用户级别的可执行文件。
/usr/i486-linux-libc5
试linux的一些库文件,用于编译可执行文件或者是程序执行当中的链接。
/usr/local
是本地目录结构层次,也就是后来安装的程序尽量把自身加入到该目录里面。该目录也是有结构的目录,其子结构的用途和作用也类似于根目录。
/usr/tmp
是非系统级别的临时文件的存放地。
/usr/include
这个目录是存放编译程序所包含的头文件的主要目录。
/usr/man
这是系统中的联机手册也就是帮助文档的主要存放地。
/usr/doc
存放一些系统的说明文档和一些HOWTO文件。
/usr/sbin
和/sbin差不多。
/usr/lib
编译时的链接库文件。
Linux系统设置篇
要管理好一个系统,从某种意义上来说对系统文件的设置占有及其重要的地位。鉴于linux系统的复杂性,在这里我只对/etc目录下的那些重要文件做一个简单的介绍。
DIR_COLORS:
该文件指定了系统哪些终端可以使用彩色的模式,定义了不同文件类型在列出时的不同颜色。可以自己修改这些设置。或把文件拷贝到自己主目录下面的.dir_colors,然后自己修改这个文件,以使用个人设置。
HOSTNAME:
该文件记录了本地主机的主机名和域名,使用主机名.域名的格式,比如ttqq.tsinghua.edu.cn里面的ttqq就是主机名,而tsinghua.edu.cn则是域名。
BASHRC:
该文件定义使用bash为shell时自动执行的一个配置文件,其中可以放置一些需要运行的命令和别名设置,如:
PS1="[\u@\h\w]\\$" 〔定义系统提示符方式〕
Alias which="type -path" 〔定义which命令为type -path的别名〕
Alias ls="ls -color" 〔定义ls命令为代-color参数的ls命令〕
Alias rm="rm -f" 〔定义rm命令为代-f参数的命令〕
CRONTAB:
该文件定义了系统自动执行的进程。对crontab分的比较详细,分成了按小时、日、星期、月自动执行。
CSH.CSHRC:
该文件是使用csh作为系统shell时的处始化文件,就象bashrc文件对于bash一样。
FDPRM:
该文件是系统配置软盘驱动器的参数文件,普通软盘驱动器的参数列表如下:
# size sec/t hds trk stre gap rate spec1 fmt_gap
360/360 720 9 2 40 0 0x2A 0x02 0xDF 0x50
1200/1200 2400 15 2 80 0 0x1B 0x00 0xDF 0x54
360/720 720 9 2 40 1 0x2A 0x02 0xDF 0x50
720/720 1440 9 2 80 0 0x2A 0x02 0xDF 0x50
720/1440 1440 9 2 80 0 0x2A 0x02 0xDF 0x50
360/1200 720 9 2 40 1 0x23 0x01 0xDF 0x50
720/1200 1440 9 2 80 0 0x23 0x01 0xDF 0x50
1440/1440 2880 18 2 80 0 0x1B 0x00 0xCF 0x6C
这里大概包括了主要软驱的参数,如果以后你有特殊的软驱,那么就可以按上面的格式写出他的参数设置。
FSTAB:
该文件比较重要,是系统启动时自动安装上的文件系统备置表文件。下面给出一个实际文件,然后在介绍其中内容:
/dev/hda6 / ext2 defaults 1 1
/dev/hda7 swap swap defaults 0 0
/dev/fd0 /mnt/floppy supermount fs=vfat,dev=/dev/fd0 0 0
/dev/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom,ro 0 0
/dev/hda1 /mnt/c vfat defaults 0 0
/dev/hda5 /mnt/d vfat defaults 0 0
none /proc proc defaults 0 0
可以看出来,每一行由六项组成,其中每一项的意思为:
1. 描述欲安装文件系统的设备。
2. 描述安装的目录,也就是安装点。
3. 描述安装设备上的文件系统。
4. 描述安装时的安装方式。
5. 使dump程序对该文件系统处理时的标志位。
6. 在启动fsck程序对文件系统进行检查时的标志位。
现在我结合以上内容来对这个文件进行解释:
第一行:将首先安装/dev/hda6为根文件系统,文件系统类型为ext2,使用默认安装方式。
第二行:将安装/dev/hda7为swap分区,使用swap文件系统,参数表示是交换分区,使用默认安装方式。
第三行:安装/dev/fd0到/mnt/floppy,可以使用任何文件系统,默认安装方式。
第四行:安装/dev/cdrom到/mnt/cdrom,可以使用任何文件系统,默认安装方式。
第五行:将/dev/hda1安装到/mnt/c上,使用fat文件系统,默认安装。
第六行:将/dev/hda5安装到/mnt/d上,使用fat文件系统,默认安装。
第七行:安装内核映像文件系统的规定写法,安装到/proc,使用proc文件系统。
这样,你就可以根据自己的需要来任意安装文件系统了。
GETTYDEFS:
该文件里面设置了tty设备的属性,也就是虚拟控制台一类的设备的属性,如速度等。在这个文件里还可以更改登录默认提示符等。
HOSTS:
该文件是本地的一个网络主机地址解析文件,相当于windows下的那个Hosts.sam文件。功能是输入的如果是一个域名或主机名那么首先查找这个文件进行域名解析,如果这个文件里有对应的ip地址,那么就使用,如果这个文件里没有对应的ip,那么就访问我们的DNS服务器来进行查找。
HOSTS.ALLOW:
定义了那些主机可以访问网络资源,其中提到的主机都可以访问。
HOSTS.DENY:
该文件和上面的那个文件的作用正好相反,也就是定义禁止访问网络资源的主机。
ISSUE:
该文件的内容是你在本地登录计算机的时候,显示在屏幕上的内容。
ISSUE.NET:
这个文件和上面的文件意义是相同的,只不过这个文件是给那些通过网络来登录的人看的。
LILO.CONF:
这又是个比较重要的文件。他是用于lilo的配置的,下面我给出一个实际的文件来讲:
boot = /dev/hda6 〔lilo程序安装在/dev/hda6上〕
timeout = 500 〔启动等待选择时间〕
prompt
vga = normal 〔显示器设成标准vga〕
read-only
#Linux bootable partition config begins 〔开始linux启动配置块〕
image=/boot/vmlinuz 〔内核文件为/boot/vmlinuz〕
root=/dev/hda6 〔linux根文件系统在/dev/hda6上〕
label=linux 〔启动时选择的标示符为linux〕
read-only 〔以只读方式安装,以便检查〕
#Linux bootable partition config ends 〔结束linux启动配置块〕
other = /dev/hda1 〔非linux操作系统,在/dev/hda1上〕
label = dos 〔启动标示为dos〕
其实这个文件很好配置,就这样,以后可以随意的加入新的操作系统了。
PROFILE:
这个是用户的配置文件,用户自己的目录下面有.profile则按照这个文件进行用户配置,如果没有的话,那就用这个系统给用户默认的配置文件。
Linux答疑篇
其实linux是一个非常复杂的操作系统,我们在用的时候一定会遇到好多的问题,现在我把常见的一些问题作一下整理,希望能对大家有些帮助。
1. 问:如何在linux下使用软驱和光驱?
答:许多初学者刚刚装完linux,当想使用软盘和光驱时,却不知道怎样使用。linux并不想dos和windows这样把磁盘表现为a:、c:、等等的形式。linux是用一个无所不包的目录结构来表现计算机的软、硬件资源,如计算机的所有硬件都在"/dev/"目录下,而"/"就是计算机的根目录,计算机的所有资源都在"/"下。象软盘就是"/dev/fd0","fd0"这个文件就表示软盘。硬盘则表示为"/dev/hda"(这里假设只有一个硬盘),硬盘上的分区则表示为"hda1"、"hda5"等等这样的形式,光驱为"/dev/cdrom"。
好了我们简单的了解了linux对这些设备的表现形式,那么下面我们来解决实际的问题。linux的文件系统都是安装(mount)上的,系统在最初启动时安装好根文件系统,那些特殊的文件系统需要使用者在使用时自己安装,这个安装就是在根文件系统下用一个挂装点来连接上我们的特殊设备。以后对挂装点的操作就等于对这个设备的操作。一般挂装点都是在"/mnt"下,其中默认的有"/mnt/cdrom"这个是光驱的挂装点?quot;/mnt/floppy"是软驱的挂装点,我们也可以自己建立一些挂装点,其实就是在"/mnt"下建立目录,如我们可以为我们的c:盘建立一个"dosc"的挂装点。当我们确定这些东东都建立好了之后,在要使用软驱、光驱时,我们可以打入这些命令来安装:安装软盘"mount /dev/fd0 /mnt/floppy"安装光盘就"mount /dev/cdrom /mnt/cdrom"。mount就是安装命令,平时只打入mount命令我们就会看见已经安装好的文件系统。
其实最好把常用文件系统写进fstab文件,这样每次开机就能够使用了。比如把windows的分区写进去,具体方法参考上面所介绍的系统设置。另外,对于光驱、软驱用完以后可以打入umount来进行卸载,否则会对你的文件系统造成极大的破坏。
2. 问:如何反安装lilo?
答:可以用windows启动软盘来启动,再运行fdisk/mbr就可以重写mbr以去掉lilo。也可以在linux下运行lilo -u /dev/had,其中/dev/had是你的lilo的安装位置。
3. 问:怎样快速调出历史命令?
答:如果想快速调出历史命令的话可以按上下光标键,就会看到以前用过的历史命令了。
4. 问:我想使用一个命令,但这个命令我只记得前几位,后面的字母我忘了,怎么办?
答:这时也是可以用的,只要打入命令的前几位字母再按一下"TAB"键,系统就会自动的补齐命令。
5. 问:怎样快速的切换路径呢?
答:键入"cd -"就可进入上次进入的目录。键入"cd ~"就可回到自己的主目录。
6. 问:怎样显示彩色的目录和文件列表?
答:使用ls -color就可以看到彩色的目录和文件了。如果不想每次都打的话那就要编辑/etc/bashrc这个文件,在里面加入一行:alias ls="ls -color",这样就可以了。
7. 问:find命令查找文件的确很强大,但我又嫌它太麻烦,我只是想简单的查找文件,有没有快速的方法?
答:可以的。比如我们要查找以"s"开头的文件,那就打入"s"后,快速的按两下TAB键,就会列出所有以s开头的文件了。
8. 问:怎样查看已经卷过屏幕的信息呢?
答:可以用这两个组合键,很好用: "shift+pageup" 和"shift+pagedown"。他们两个可以查看屏幕上面和下面的东西。
9. 问:怎样启动一个程序立即让它进入后台?
答:其实只要在程序后面打上一个"&"号就可以了。比如我们想在后台编译一个程序,可以打:gcc mypro.c&。
10. 问:怎样在我退出系统后我的程序还能继续执行?
答:可以使用nohup命令。比如我们想编译一个很大的程序,那我们可以打:nohup gcc mypro.c&。但要注意的是这个命令必须要和"&"一起使用。这时我们就可以退出系统(logout)了。
11. 问:怎样安装新的软件?
答:如果这个软件不是基于rpm包的话,那么就会很麻烦。具体来说要先把得到的tgz文件或tar文件解压,具体方法见上面的命令介绍。然后参看目录里的readme文件。一般来说要运行make、makefile这样的程序来编译它,然后按提示进行。有的软件带有install文件,这时就要"make install"来编译它。总之,先看看readme会有很多的好处。
好了,这篇linux不完全手册终于完成。相信它对你会有一定的帮助。另外由于我水平的关系,错误之处在所难免,欢迎大家指教、交流。我的email:119@cool.com.cn