1Linux操作系统教案1.Linux系统目录简介所有的类Unix操作系统的文件系统都有别于windows操作系统。在类Unix操作系统中没有windows操作系统中的盘符概念。类Unix操作系统中的所有文件都存放于一个称为“根目录”的目录中,在类Unix操作系统中该根目录使用符号“/”表示。图1-1中展示的是ubuntu操作系统根目录下的所有子目录。图1-1ubuntu系统目录结构bin这里存放了标准的(或者说是缺省的)linux的工具,比如像“ls”、“vi”还有“more”等等。通常来说,这个目录已经包含在你的“path”系统变量里面了。什么意思呢?就是:当你在终端里输入ls,系统就会去/bin目录下面查找是不是有ls这个程序。bootLinux的内核及引导系统程序所需要的文件目录,比如vmlinuzinitrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。devdev目录中存放的是linux操作系统的设备文件。在linux操作系统中将所有的设备都看作一种特殊的文件,大致分为字符设备文件和块设备文件。用户使用设备就和使用文件一样。说的直白一点,设备文件类似于在硬件设备和用户之间的一个中介,用户无需知道设备2的工作细节,使用硬件设备就对于用户而言与操作文件一样。部分设备文件主设备号设备类型次设备号=文件名简要说明0未命名设备(例如:挂载的非设备)0=为空设备号保留1char内存设备1=/dev/mem3=/dev/null4=/dev/port5=/dev/zero7=/dev/full8=/dev/random1.直接存取物理内存3.空设备。任何写入都将被直接丢弃,任何读取都将得到EOF。4.存取I/O端口5.零字节源,只能读取到无限多的零字节。7.满设备。任何写入都将失败,并把errno设为ENOSPC以表示没有剩余空间。8.随机数发生器。完全由用户的输入来产生随机数。如果用户停止所有动作,则停止产生新的随机数。4charTTY(终端)设备0=/dev/tty01=/dev/tty1...63=/dev/tty63当前虚拟控制台第1个虚拟控制台…第63个虚拟控制台在文字命令模式下有效5char其他TTY设备0=/dev/tty1=/dev/console2=/dev/ptmx当前TTY设备系统控制台(一般是/dev/tty0)PTY的复用器8blockSCSI磁盘(0-15)0=/dev/sda16=/dev/sdb32=/dev/sdc...240=/dev/sdp分区表示方法如下(以第3个SCSI磁盘为例)33=/dev/sdc134=/dev/sdc2...47=/dev/sdc15第1个SCSI磁盘(整个磁盘)第2个SCSI磁盘(整个磁盘)第3个SCSI磁盘(整个磁盘)…第16个SCSI磁盘(整个磁盘)第1个分区第2个分区…第15个分区对于Linux/i386来说,分区1-4是主分3区,5-15是逻辑分区。tty:teletypewriters,原指电传打印机,而现在多指各种字符型终端设备。/dev/tty0~63代表的是显示器虚拟终端控制台。其只在linux的文字命令模式下有效。pty:pseudo-tty,虚拟终端;pts:pseudo-terminalslave与ptmx(pseudo-terminalmaster)配合实现pty。pts是linux在图形窗口模式下的虚拟终端的实现,然后通过ptmx复用器构造出一个终端窗口。实例说明:图形模式下的虚拟终端在ubuntu的图形窗口模式下,打开一个终端,并用过命令“tty”或“whoami”可以查看当前的终端信息。如图1-2所示。图1-2图形模式下的虚拟终端如果同时再打开一个终端,然后在该终端窗口中输入命令“tty”或“whoami”查看终端信息,可以获得如图1-3所示的结果。图1-3图形模式下的另一个虚拟终端你可以通过命令“ls/dev/pts”查看目录“/dev/pts”下文件的变化,每当你创建一个虚拟终端,那么目录“/dev/pts”下就会多一个以数字命名的文件。例如我们现在已经创建了2个虚拟终端窗口,那么目录“/dev/pts”下的文件内容如图1-4所示。图1-4查看虚拟终端设备文件4如果再创建第3个虚拟终端窗口,那么再通过命令“ls/dev/pts”,你会发现在该目录下将会多出一个以“3”命名的文件。文字模式下的虚拟终端控制台在虚拟机中运行的ubuntu窗口图形界面,可以通过按下“CTRL+ALT+F1”切换到ubuntu的文字命令模式,并通过按下“CTRL+ALT+F7”从文字命令模式切换到窗口图形界面。在图形界面模式按下“CTRL+ALT+F1”后,我们将看到如图1-5所示的文字命令界面。图1-5ubuntu文字虚拟终端控制台通过输入用户名和密码后,即可登录入系统。在命令提示符后输入命令“tty”或“whoami”可以得到如图1-6所示的结果。图1-6虚拟终端控制台对应设备文件查询从图1-6与前面的图形界面虚拟终端的截图可以看出,文字命令界面的终端控制台与图形界面的虚拟终端所对应的设备文件是不同的。而在文字命令界面模式下,也提供了我们使用过个虚拟终端控制台的方法。我们可以通过按下“CTRL+ALT+F1~F6”在六个虚拟终端控制台间切换,来实现多个终端的操作。当你希望退回到图形用户界面模式,就可以按下5“CTRL+ALT+F7”。etcetc目录中存放有系统软件的启动和配置文件,以及系统在启动过程中需要读取的文件。例如你安装了java或mysql等软件,如果需要修改其配置文件时,就可以/etc/java或/etc/mysql下面找到对应的配置文件。etc目录是一个非常重要的目录,其中有很多在使用linux时经常会碰到的目录或文件,下面对其中最经常使用的文件进行简单说明。/etc/passwd/etc/passwd文件的内容如图1-7所示图1-7/etc/passwd文件/etc/passwd文件中的每一行记录一个用户的相关信息。每行用户信息中的不同部分以“:”分隔,各部分具体意义如下所示:用户名:密码:用户ID:组ID:说明:用户主目录:成功登陆后要执行的命令路径如果第二列的内容为“X”,表示该行记录的用户密码是正常或合法的,不过加密后的密码并不会保存在本文件中,而是保存在/etc/shadow文件中。如果第二列为空,那么表示该用户登录不需要密码。/etc/shadow/etc/shadow文件的内容如图1-8所示图1-8/etc/shadow文件/etc/shadow每行内容结构如下所示:用户名:密码:上次修改密码的日期:密码不能变更的天数:密码需要重新变更的天数:密码变更提前几天通知:成账号失效日期:账号取消天数:保留如果第二列如果为空那么表示该用户登录无需密码,如果包含除{./0-9A-Za-z}意外的字6符,那么该用户无法登录。/etc/group本文件与前面介绍的/etc/passwd文件类似,只不过保存的是用户组的信息。特定/etc/group文件的截取内容如图1-9所示。图1-9/etc/group文件截取内容/etc/group文件中每行记录了一个用户组的相关信息。每行信息由4个部分构造。具体结构如下所示:用户组名:用户组密码:用户组ID:组成员名该文件中的每行记录由“:”分隔为4列:1)用户组名:标识用户组的名称;2)用户组密码:用户组密码,通常不需设置,如设置了会保存于/etc/gshadow文件中;3)GID:用户组识别码,与一个用户组名对应;4)用户组成员的账号名称:加入该用户组的账号名称;一个账户可能属于多个用户组,而一个账户登录到shell时,此时此刻该账户应该明确的属于一个用户组,这个用户组称为该账户的当前有效用户组。而在/etc/passwd文件的每一行记录的第4项,表明该记录对应账户的初始用户组。一般情况下,一个账户登录系统后,会以初始用户组作为其登录后的有效用户组。如果该账户分别属于多个用户组,那么它就具有这些用户组访问系统资源的相应权限。而这个有效用户组有什么意义呢?有效用户组会在创建新文件时,决定该文件所属的组。比如:Tom账户的初始用户组为Tom,并且也属于users用户组,当他登录系统后,创建一个新文件file,那么这个file的拥有者为Tom,而其用户组为Tom。因为,Tom登录系统后,其初始用户组Tom会成为其当前的有效用户组。/etc/sudoers登录linux系统,一般不建议使用root用户登录,为了避免误操作导致系统出错。然而linux系统中的某些操作有必须具有root权限才能执行,因此linux系统中可以使得某些用户可以以sudo方式来获取root权限来执行默写操作。使某个用户具有sudo能力,可以通过编辑/etc/sudoers文件来实现。图1-10展示了ubuntu中/etc/sudoers的默认内容。7图1-10/etc/sudoers文件要了解更详细的sudoers的配置方法,可以通过命令“mansudoers”查看帮助手册。/etc/network/interfaces/etc/network/interfaces文件为ubuntu的网络适配器的配置文件。该文件最重要也是最常用的作用就是设置网卡的internet网络地址信息。如图1-11中显示了该文件的一种可能的情况。图1-11/etc/network/interfaces文件文件中“#”符号起注释作用。要了解该文件的语法规则或参考配置方法,可以通过下图中给出的路径,查看network-interfaces.gz文件。由于network-interfaces.gz文件是压缩文件,可以在命令提示符后输入命令“sudogzip–dnetwork-interfaces.gz”进行解压,这是在当前目录中会获得解压后的文件network-interfaces。也可以通过命令“maninterfaces”参看帮助手册,来获取interfaces文件的配置方8法。home这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。lib系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32目录,几乎所有的应用程序都需要用到这些共享库。media挂载媒体设备,如光驱、U盘等。mnt这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom。opt这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。举个例子:刚才装的测试版firefox,就可以装到/opt/firefox_beta目录下,/opt/firefox_beta目录下面就包含了运行firefox所需要的所有文件、库、数据等等。要删除firefox的时候,你只需删除/opt/firefox_beta目录即可,非常简单。proc操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见/etc/fstab。9sbin大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbi