`

linux设备

阅读更多

虽然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。

图1 lsmod 列出当前系统中加载的模块

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/Linux

3 .lspci

lspci命令用来查看主板所有硬件槽信息。
使用权限:所有用户。
格式:lspci [<switches></switches>]
-v:显示详细信息。
-n:显示设备ID号。
-b:显示PCI、ISA扩展槽地址和中断。
-t:显示总线树结构。
-F <file></file>:从指定文件读信息。
-m:输出所有硬件信息。
应用实例:
当系统硬件出现故障时,可以使用lspci命令输出所有硬件信息。以帮助确定故障点。
#lspci m
00:00.0 "Host bridge" "Intel Corp." "440BX/ZX/DX - 82443BX/ZX/DX Host bridge" -r03 "Asustek Computer, Inc." "8024"
00:01.0 "PCI bridge" "Intel Corp." "440BX/ZX/DX - 82443BX/ZX/DX AGP bridge" -r03
00:04.0 "ISA bridge" "Intel Corp." "82371AB/EB/MB PIIX4 ISA" -r02 "" ""
00:04.1 "IDE interface" "Intel Corp." "82371AB/EB/MB PIIX4 IDE" -r01 -p80 "" ""
00:04.2 "USB Controller" "Intel Corp." "82371AB/EB/MB PIIX4 USB" -r01 "" ""
00:04.3 "Bridge" "Intel Corp." "82371AB/EB/MB PIIX4 ACPI" -r02 "" ""
00:09.0 "Communication controller" "Rockwell International" "HCF 56k PCI Speakerphone Modem" -r08 "Rockwell International" "HCF 56k PCI Speakerphone Modem"
00:0a.0 "USB Controller" "OPTi Inc." "82C861" -r10 -p10 "OPTi Inc." "82C861"
00:0b.0 "Ethernet controller" "Realtek Semiconductor Co., Ltd." "RTL-8139/8139C/8139C+" -r10 "Realtek Semiconductor Co., Ltd." "RT8139"
00:0d.0 "Ethernet controller" "Macronix, Inc. [MXIC]" "MX987x5" -r20 "" ""
01:00.0 "VGA compatible controller" "nVidia Corporation" "NV5M64 [RIVA TNT2 Model 64/Model 64 Pro]" -r15 "" ""
可以看到lspci可以检测ISA、PCI、AGP扩展槽,硬盘通道、USB总线等所有主板信息。

|

4、 mount命令

mount命令mount命令的作用是加载文件系统。
使用权限:超级用户或/etc/fstab中允许的使用者。
格式:
mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
主要选项:
-h:显示辅助讯息。
-v:显示讯息,通常和-f用来除错。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
-f:通常用在除错的用途。它会使mount并不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
-t vfstype:显示被加载文件系统的类型。
-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/cdrom udf,iso9660 noauto,owner,kudzu,ro,cao1 0 0
这样用户cao1也可以使用光盘驱动器。

b.我们使用的许多Linux发行版本是基于2.6系列的内核,下面介绍一下如何加载NTFS格式分区,首先使用命令察看:
#uname –a
Linux cao 2.6.6-1.435#1Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux
然后在http://linux-ntfs.sourceforge.net/ 下载对应的软件补丁,并且安装:
#wget http://belnet.dl.sourceforge.net/sourceforge/linux-ntfs/kernel-ntfs-2.6.6-1.435.rpm
#rpm -ivh kernel-ntfs-2.6.6-1.435.i686.rpm
使用fdisk命令察看分区位置:
# fdisk -l
Disk /dev/hda: 13.6 GB, 13666701312 bytes
255 heads, 63 sectors/track, 1661 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 255 2048256 b Win95 FAT32
/dev/hda2 256 1661 11293695 7 HPFS/NTFS
/dev/hda5 783 799 136521 6 FAT16
/dev/hda6 800 1309 4096543+ b Win95 FAT32
/dev/hda7 1310 1661 2827408+ b Win95 FAT32
/dev/hda8 256 268 104359+ 83 Linux
/dev/hda9 269 750 3871633+ 83 Linux
/dev/hda10 751 782 257008+ 82 Linux swap

Partition table entries are not in disk order
最后使用mount命令挂载:
# mount /dev/hda2 /mnt/win2000 -t ntfs -r -o iocharset=utf8

c.网络挂载:

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 -t smbfs -o username=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] [-t vfstypes]
主要选项:
-a:卸除/etc/mtab中记录的所有文件系统。
-f:通常用在除错的用途。它会使umount并不执行实际的动作,而是模拟整个过程,通常会和-v一起使用。
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-v: 执行时显示详细的信息。
-t vfstypes:仅卸除选项中所指定的文件系统。Vfstypes即文件系统类型。

 

参考:http://jimmy-shine.iteye.com/blog/77414

分享到:
评论

相关推荐

    LINUX设备驱动程序

    这里我们主要探讨的是与嵌入式开发相关的Linux设备驱动程序,特别是针对ARM架构,如6410处理器的开发。 一、Linux设备驱动程序概述 设备驱动程序是一种特殊的软件,它理解特定硬件设备的工作方式,并提供了操作系统...

    《Linux设备驱动开发详解-基于最新的Linux4.0内核》源码

    《Linux设备驱动开发详解-基于最新的Linux4.0内核》是一本深入探讨Linux设备驱动程序开发的专业书籍,其源码提供了丰富的实践示例,帮助读者理解如何在Linux操作系统下编写和调试驱动程序。该书涵盖了从基础概念到...

    Linux设备驱动开发详解:基于最新的Linux4.0内核,linux设备驱动开发详解pdf,LINUX

    《Linux设备驱动开发详解》是一本深度探讨Linux内核驱动程序开发的专业书籍,它以Linux 4.0内核为背景,为驱动工程师提供了一条深入理解与实践Linux设备驱动的路径。这本书涵盖了许多关键的知识点,对于想要在Linux...

    Linux设备驱动详解第二版

    Linux设备驱动详解【第二版】,作者宋宝华,此版PDF是经过本人整理的文字版PDF,带目录、高清无水印版。 内容简介 《Linux设备驱动开发详解(第《Linux设备驱动开发详解(第2版)》内容全面,实例丰富,操作性强,...

    浅谈Linux设备驱动.pdf

    Linux 设备驱动程序浅谈 Linux 设备驱动程序是指用于操作系统和硬件设备之间的交互接口。它是一个小程序,包含有关硬件设备的信息,用于管理计算机的硬件资源。 Linux 设备驱动程序扮演沟通的角色,把硬件的功能...

    LINUX设备驱动程序(Linux.Device.Driver)

    《LINUX设备驱动程序》(Linux.Device.Driver) 第三版是深入探讨Linux内核设备驱动程序开发的重要参考资料,尤其对于那些希望理解Linux系统如何与硬件交互的开发者来说,这本书是不可或缺的。书中详细阐述了如何编写...

    linux设备驱动详解(宋宝华 高清 非影印版)

    《Linux设备驱动开发详解》是一本介绍Linux设备驱动开发理论、框架与实例的书,《Linux设备驱动开发详解》以Linux 2.6版本内核为蓝本,详细介绍自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射...

    linux设备驱动程序 (中文第二版)

    《Linux设备驱动程序》(中文第二版)是一本深度探讨Linux系统下设备驱动程序开发的专业书籍,对于想要深入了解Linux内核以及如何与硬件交互的开发者来说,是不可或缺的参考资料。这本书详细介绍了Linux环境下设备...

    Linux设备驱动开发详解-基于最新的Linux4.0内核》配套代码.zip

    《Linux设备驱动开发详解-基于最新的Linux4.0内核》是一本深入讲解Linux设备驱动程序开发的专业书籍,配套代码存放在"learn-ldd-master-main"这个压缩包中,旨在帮助开发者理解并掌握在嵌入式Linux系统上编写驱动...

    Linux 设备驱动程序(PDF版)

    Linux设备驱动程序是一种特殊的软件模块,它为操作系统提供了与硬件通信的接口。驱动程序能够控制硬件设备的行为,使得操作系统能够安全、有效地使用这些硬件资源。编写Linux设备驱动程序通常需要深入了解操作系统的...

    Linux设备驱动程序

    《Linux设备驱动程序》是关于Linux操作系统下设备驱动程序开发的重要参考书籍,尤其适用于嵌入式ARM平台的开发者。在Linux系统中,设备驱动程序是操作系统与硬件设备之间的桥梁,它使得操作系统能够控制和管理硬件...

    《Linux设备驱动开发详解-基于最新的Linux4.0内核》源码.zip

    《Linux设备驱动开发详解-基于最新的Linux4.0内核》是一本深入讲解Linux设备驱动程序开发的专业书籍,源码.zip文件包含了与书中的讲解密切相关的代码示例。Linux驱动开发是连接硬件与操作系统内核的重要桥梁,对于...

    嵌入式Linux设备驱动程序开发.pdf

    嵌入式Linux设备驱动程序开发 本文主要讲述了嵌入式Linux设备驱动程序的概念、通用模块和具体开发流程,进一步通过实例论述了如何设计和编写模块化的嵌入式Linux设备驱动程序,以及解释驱动程序的关键代码。 一、...

    深入Linux设备驱动程序内核机制.pdf

    Linux设备驱动程序是操作系统与硬件之间的重要桥梁,它们负责处理硬件操作,使应用程序能够与硬件进行通信。在Linux内核中,设备驱动程序是作为内核模块编写的,可以动态加载或卸载,以增强系统的灵活性。本文深入...

    ldd3_pdf Linux设备驱动第三版

    《ldd3_pdf Linux设备驱动第三版》是Linux设备驱动程序开发的重要参考资料,它详细介绍了如何为Linux操作系统编写和管理设备驱动程序。这本书是Linux设备驱动程序开发领域的经典之作,尤其针对第三版进行了大量更新...

    《Linux设备驱动开发详解——基于最新的Linux4.0内核》源码.zip

    《Linux设备驱动开发详解——基于最新的Linux4.0内核》是一本专注于嵌入式Linux系统中的设备驱动程序开发的专业书籍。这本书的核心内容是讲解如何为Linux操作系统编写和理解设备驱动,以实现硬件与操作系统之间的...

    精通LINUX设备驱动程序开发.pdf

    Linux设备驱动程序开发是Linux操作系统中一项非常核心的技术,涉及到底层硬件与操作系统之间的交互。精通这一技术,意味着可以开发出适合特定硬件设备的驱动程序,进而实现设备功能的充分发挥。本书《精通LINUX设备...

Global site tag (gtag.js) - Google Analytics