silenter00 2011-04-20
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的。
实际上很多读者对Linux的命令行的使用存在着诸多的“畏惧”心理,不知道如何正确有效使用,更多的依赖于图形界面。这大大的降低了Linux系统的最 大资源的利用。本文则把Linux系统中专门针对存储类别的命令单独拿出来,与大家共同探讨这些命令的使用技巧,希望能够对读者有所帮助。
一、Linux中的设备命名规则
在Linux中把硬件设备当作文件来管理。每个与Linux系统相连的实际设备(包括硬盘、光盘驱动器、扫描仪等),都可以在文件系统中表示出来。 Linux系统把每一个设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。 从用户的角度来看,对设备的使用和一般文件的使用一样。
首先了解Linux中的设备命名规则:在安装和使用Linux的过程中,您必然会接触到不少像hda1、ttyS0、eth0这样的设备名称。在 Linux中,每个设备必须在它的驱动程序控制下运行,驱动程序则与/dev目录下的特殊文件联系在一起,尽管这些文件并不是真正的文件,但在选择设备或 者操作设备时都以这个文件的名称来代表这一设备。这些设备名称的命名都是有规则的: 在/dev目录下,每一个驱动器以一个单独的设备文件来表现。
通常最常见的是硬盘,对于IDE硬盘一般可以有二到四个。这就是/dev/hda、/dev/hdb、/dev/hdc和/dev/hdd,hd是硬盘的 意思,a则是代表第一个设备,hda1中的“1”代表hda的第一个硬盘分区,依此类推。而SCSI硬盘也就是/dev/sda、/dev/sdb等等, sd是SCSI设备的意思,第一个SCSI硬盘是/dev/sda, fd是软盘,设备名称是/dev/fd0。Linux 计算机中磁带机的设备名是: /dev/st*和/dev/nst*, 其中nst*是操作完成后不自动回卷磁带, st*则是自动 回卷, 一般常用nst*. 主机SCSI总线上找到的第一个磁带机是nst0和st0, 第二个则是nst1和st1, 依此类推. 磁带机的SCSI号越小, 其设备名也就越靠前。
|二、Linux存储设备发现挂载命令
1. lsmod
lsmod命令用来列出当前系统加载的模块,可以当作硬件模块浏览器。
使用权限:
格式:lsmod[-hV]
主要选项:
-h:显示帮助信息。
-V:显示软件版本信息。
应用说明:使用lsmod命令必须安装Linux安装盘中的modutils软件包。我们看一个lsmod命令实例,如图1。
图1lsmod列出当前系统中加载的模块Lsmod 即list modules,对每行而言,第一列是模块名称;第二列是模块大小;第三列是用量计数。lsmod命令用来列出当前系统加载的模块,同时也可以当作察看硬 件浏览器。从以上列表我们可以看到那些设备的驱动程序已经加载。如果后面为unused,则表示该模块当前没在使用。如果后面有autoclean,则该 模块可以被rmmod -a命令自动清洗。rmmod -a命令会将目前有autoclean的模块卸载,如果这时候某个模块未被使用,则将该模块标记为autoclean。2. uname
uname命令用来显示输出系统信息。
使用权限:超级用户。
格式:uname[选项]
主要选项:
-a,--all:显示所有的信息。
-m,--machine:显示硬件类型。
-n,--nodename:显示机器的网络节点主机名。
-r,--release:显示操作系统发行版本。
-s,--sysname:显示操作系统名。
-p,--processor:显示主机处理器(CPU)类型。
-v:显示操作系统版本。
--help:显示本帮助并退出。
--version:显示版本信息并退出。
应用实例:
#uname–a
Linux cao 2.4.20-8#1Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux3 .lspci
lspci命令用来查看主板所有硬件槽信息。
使用权限:所有用户。
格式:lspci[<switches></switches>]
-v:显示详细信息。
-n:显示设备ID号。
-b:显示PCI、ISA扩展槽地址和中断。
-t:显示总线树结构。
-F<file></file>:从指定文件读信息。
-m:输出所有硬件信息。
应用实例:
当系统硬件出现故障时,可以使用lspci命令输出所有硬件信息。以帮助确定故障点。
#lspcim
00:00.0"Hostbridge""IntelCorp.""440BX/ZX/DX-82443BX/ZX/DXHostbridge"-r03"AsustekComputer,Inc.""8024"
00:01.0"PCIbridge""IntelCorp.""440BX/ZX/DX-82443BX/ZX/DXAGPbridge"-r03
00:04.0"ISAbridge""IntelCorp.""82371AB/EB/MBPIIX4ISA"-r02""""
00:04.1"IDEinterface""IntelCorp.""82371AB/EB/MBPIIX4IDE"-r01-p80""""
00:04.2"USBController""IntelCorp.""82371AB/EB/MBPIIX4USB"-r01""""
00:04.3"Bridge""IntelCorp.""82371AB/EB/MBPIIX4ACPI"-r02""""
00:09.0"Communicationcontroller""RockwellInternational""HCF56kPCISpeakerphoneModem"-r08"RockwellInternational""HCF56kPCISpeakerphoneModem"
00:0a.0"USBController""OPTiInc.""82C861"-r10-p10"OPTiInc.""82C861"
00:0b.0"Ethernetcontroller""RealtekSemiconductorCo.,Ltd.""RTL-8139/8139C/8139C+"-r10"RealtekSemiconductorCo.,Ltd.""RT8139"
00:0d.0"Ethernetcontroller""Macronix,Inc.[MXIC]""MX987x5"-r20""""
01:00.0"VGAcompatiblecontroller""nVidiaCorporation""NV5M64[RIVATNT2Model64/Model64Pro]"-r15""""
可以看到lspci可以检测ISA、PCI、AGP扩展槽,硬盘通道、USB总线等所有主板信息。|4、 mount命令
mount命令mount命令的作用是加载文件系统。
使用权限:超级用户或/etc/fstab中允许的使用者。
格式:
mount-a[-fv][-tvfstype][-n][-rw][-F]devicedir
主要选项:
-h:显示辅助讯息。
-v:显示讯息,通常和-f用来除错。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
-f:通常用在除错的用途。它会使mount并不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
-tvfstype:显示被加载文件系统的类型。
-n:一般而言,mount在挂上后会在/etc/mtab中写入一些资料。但在系统中没有可写入文件系统存在的情况下可以用这个选项取消这个动作。使用实例:
mount命令最重要功能是挂载磁盘,目前使用的磁盘包括:IDE、SCSI硬盘、USB闪盘、USB硬盘。以usb磁盘为例挂载方法如下:
#fdisk-l#察看usb磁盘设备号一般是/dev/sda1#
#mkdir/mnt/usb#建立一个挂载目录#
mount –t vfat /dev/sda1 /mnt/usb进阶应用:
a.一般情况下只有超级用户可以使用mount命令,下面介绍一下如何让普通用户可以使用光盘,修改/etc/fstab文件,加入一行:
#/dev/cdrom/mnt/cdromudf,iso9660noauto,owner,kudzu,ro,cao100
这样用户cao1也可以使用光盘驱动器。
b.我们使用的许多Linux发行版本是基于2.6系列的内核,下面介绍一下如何加载NTFS格式分区,首先使用命令察看:
#uname–a
Linuxcao2.6.6-1.435#1ThuMar1317:54:28EST2003i686i686i386GNU/Linux
然后在http://linux-ntfs.sourceforge.net/下载对应的软件补丁,并且安装:
#wgethttp://belnet.dl.sourceforge.net/sourceforge/linux-ntfs/kernel-ntfs-2.6.6-1.435.rpm
#rpm-ivhkernel-ntfs-2.6.6-1.435.i686.rpm
使用fdisk命令察看分区位置:
#fdisk-l
Disk/dev/hda:13.6GB,13666701312bytes
255heads,63sectors/track,1661cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
/dev/hda1*12552048256bWin95FAT32
/dev/hda22561661112936957HPFS/NTFS
/dev/hda57837991365216FAT16
/dev/hda680013094096543+bWin95FAT32
/dev/hda7131016612827408+bWin95FAT32
/dev/hda8256268104359+83Linux
/dev/hda92697503871633+83Linux
/dev/hda10 751 782 257008+ 82 Linux swapPartition table entries are not in disk order
最后使用mount命令挂载:
# mount /dev/hda2 /mnt/win2000 -t ntfs -r -o iocharset=utf8c.网络挂载:
Linux支持NFS网络文件系统,利用mount命令可以挂载NFS 服务器的/home/cao目录:
# mount -t nfs 192.168.1.4:/home/cao /home/nfs/cao
下面使用df命令查看挂载的目录已经包括:NFS服务器的IP地址的共享目录,见图2。
图2 挂载NFS服务器的共享目录 |
Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba软件包。现 在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba。当然也可以到www.samba.org网站下载samba软件包,现在最新的版本是3.0.10版。 当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下:
# mkdir –p /mnt/samba “建立一个目录用来作挂接点(mount point)”
#mount-tsmbfs-ousername=administrator,password=pldy123//10.140.131.23/d$/mnt/samba
说明:administrator 和 pldy123 是ip地址为10.140.131.23 windows计算机的一个用户名和密码,d$是这台计算机的一个磁盘共享。5.umount
umount命令用来卸除文件系统。
使用权限:超级用户或/etc/fstab中允许的使用者。
格式:umount-a[-f][-r][-n][-v][-tvfstypes]
主要选项:
-a:卸除/etc/mtab中记录的所有文件系统。
-f:通常用在除错的用途。它会使umount并不执行实际的动作,而是模拟整个过程,通常会和-v一起使用。
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-v:执行时显示详细的信息。
-t vfstypes:仅卸除选项中所指定的文件系统。Vfstypes即文件系统类型。参考:http://jimmy-shine.iteye.com/blog/77414