mount命o(h)详解
功能Q加载指定的文gpȝ?
语法Qmount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文gpȝcd>] [讑֤名] [加蝲点]
用法说明Qmount可将指定讑֤中指定的文gpȝ加蝲到Linux目录下(也就是装载点Q。可经怋用的讑֤写入文g/etc/fastab,以ɾp? l在每次启动时自动加载。mount加蝲讑֤的信息记录在/etc/mtab文g中。用umount命o(h)卸蝲讑֤Ӟ记录被清除?
常用参数和选项Q?
-a 加蝲文g/etc/fstab中设|的所有设备?
-f 不实际加载设备。可?v{参数同时用以查看mount的执行过E?
-F 需?a参数同时使用。所有在/etc/fstab中设|的讑֤?x)被同时加蝲Q可加快执行速度?
-h 昄在线帮助信息?
-L<标签> 加蝲文gpȝ标签?lt;标签>的设备?
-n 不将加蝲信息记录?etc/mtab文g中?
-o<选项> 指定加蝲文gpȝ时的选项。有些选项也可?etc/fstab中用。这些选项包括Q?
async 以非同步的方式执行文件系l的输入输出动作?
atime 每次存取都更新inode的存取时_(d)默认讄Q取消选项为noatime?
auto 必须?etc/fstab文g中指定此选项。执?a参数Ӟ?x)加载设|ؓ(f)auto的设备,取消选取为noauto?
defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async?
dev 可读文gpȝ上的字符或块讑֤Q取消选项为nodev?
exec 可执行二q制文gQ取消选项为noexec?
noatime 每次存取时不更新inode的存取时间?
noauto 无法使用-a参数来加载?
nodev 不读文gpȝ上的字符或块讑֤?
noexec 无法执行二进制文件?
nosuid 关闭set-user-identifier(讄用户ID)与set-group-identifer(讄lID)讄位?
nouser 使一位用h法执行加载操作,默认讄?
remount 重新加蝲讑֤。通常用于改变讑֤的设|状态?
ro 以只L式加载?
rw 以可d模式加蝲?
suid 启动set-user-identifier(讄用户ID)与set-group-identifer(讄lID)讄位,取消选项为nosuid?
sync 以同步方式执行文件系l的输入输出动作?
user 可以让一般用户加载设备?
-r 以只L式加载设备?
-t<文gpȝcd> 指定讑֤的文件系l类型。常用的选项说明有:(x)
minix Linux最早用的文gpȝ?
ext2 Linux目前的常用文件系l?
msdos MS-DOS ?FAT?
vfat Win85/98 ?VFAT?
nfs |络文gpȝ?
iso9660 CD-ROM光盘的标准文件系l?
ntfs Windows NT的文件系l?
hpfs OS/2文gpȝ。Windows NT 3.51之前版本的文件系l?
auto 自动(g)文件系l?
-v 执行时显Cl的信息?
-V 昄版本信息?
-w 以可d模式加蝲讑֤Q默认设|?br style="font-family: 黑体;" />
挂接命o(h)(mount)
首先Q介l一下挂?mount)命o(h)的用方法,mount命o(h)参数非常多,q里主要讲一下今天我们要用到的?
命o(h)格式Q?
mount [-t vfstype] [-o options] device dir
其中Q?
1.-t vfstype 指定文gpȝ的类型,通常不必指定。mount ?x)自动选择正确的类型。常用类型有Q?
光盘或光盘镜像:(x)iso9660
DOS fat16文gpȝQmsdos
Windows 9x fat32文gpȝQvfat
Windows NT ntfs文gpȝQntfs
Mount Windows文g|络׃nQsmbfs
UNIX(LINUX) 文g|络׃nQnfs
2.-o options 主要用来描述讑֤或档案的挂接方式。常用的参数有:(x)
loopQ用来把一个文件当成硬盘分区挂接上pȝ
roQ采用只L式挂接设?
rwQ采用读写方式挂接设?
iocharsetQ指定访问文件系l所用字W集
3.device 要挂?mount)的设备?
4.dir讑֤在系l上的挂接点(mount point)?
挂接光盘镜像文g
׃q年来磁盘技术的巨大q步Q新的电(sh)脑系l都配备了大定w的磁盘系l,在Windows下许多h都习(fn)惯把软g和资料做成光盘镜像文仉过虚拟光驱来 用。这样做有许多好处:(x)一、减M光驱的磨?二、现在硬盘容量巨大存攑և十个光盘镜像文g不成问题Q随用随调十分方?三、硬盘的d速度要远q高于光 盘的d速度QCPU占用率大大降低。其实linuxpȝ下制作和使用光盘镜像比Windowspȝ更方便,不必借用MW三方Y件包?
1、从光盘制作光盘镜像文g。将光盘攑օ光驱Q执行下面的命o(h)?
#cp /dev/cdrom /home/sunky/mydisk.iso ?
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:(x)执行上面的Q何一条命令都可将当前光驱里的光盘制作成光盘镜像文?home/sunky/mydisk.iso
2、将文g和目录制作成光盘镜像文gQ执行下面的命o(h)?
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:(x)q条命o(h)?home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文g/home/sunky/mydisk.isoQ光盘卷标ؓ(f)Qmydisk
3、光盘镜像文件的挂接(mount)
#mkdir /mnt/vcdrom
注:(x)建立一个目录用来作挂接?mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
挂接Ud盘
对linuxpȝ而言QUSB接口的移动硬盘是当作SCSI讑֤对待的。插入移动硬盘之前,应先用fdisk –l ?more /proc/partitions查看pȝ的硬盘和盘分区情况?
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
在这里可 以清楚地看到pȝ有一块SCSI盘/dev/sda和它的四个磁盘分?dev/sda1 -- /dev/sda4, /dev/sda5是分?dev/sda4的逻辑分区。接好移动硬盘后Q再用fdisk –l ?more /proc/partitions查看pȝ的硬盘和盘分区情况
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdc: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS
/dev/sdc2 511 4864 Win95 Ext'd (LBA)
/dev/sdc5 511 4864 34973473+ b Win95 FAT32
大家应该可以发现多了一个SCSI盘/dev/sdc和它的两个磁盘分?dev/sdc1??dev/sdc2,其中/dev/sdc5?dev/sdc2分区的逻辑分区。我们可以用下面的命o(h)挂接/dev/sdc1?dev/sdc5?
#mkdir -p /mnt/usbhd1
#mkdir -p /mnt/usbhd2
注:(x)建立目录用来作挂接点(mount point)
#mount -t ntfs /dev/sdc1 /mnt/usbhd1
#mount -t vfat /dev/sdc5 /mnt/usbhd2
注:(x)对ntfs格式的磁盘分区应使用-t ntfs 参数Q对fat32格式的磁盘分区应使用-t vfat参数。若汉字文g名显CZؓ(f)q或不昄Q可以用下面的命o(h)格式?
#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
linuxpȝ下用fdisk分区命o(h)和mkfs文gpȝ创徏命o(h)可以移动硬盘的分区制作成linuxpȝ所Ҏ(gu)的ext2、ext3格式。这P在linux下用就更方便了。用下面的命o(h)直接挂接卛_?
#mount /dev/sdc1 /mnt/usbhd1
挂接U?
和USB接口的移动硬盘一样对linuxpȝ而言U盘也是当作SCSI讑֤对待的。用方法和Ud盘完全一栗插入U盘之前,应先用fdisk –l ?more /proc/partitions查看pȝ的硬盘和盘分区情况?
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
插入U盘后Q再用fdisk –l ?more /proc/partitions查看pȝ的硬盘和盘分区情况?
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdd: 131 MB, 131072000 bytes
9 heads, 32 sectors/track, 888 cylinders
Units = cylinders of 288 * 512 = 147456 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 * 1 889 127983+ b Win95 FAT32
Partition 1 has different physical/logical endings:
phys=(1000, 8, 32) logical=(888, 7, 31)
pȝ多了一个SCSI盘/dev/sdd和一个磁盘分?dev/sdd1,/dev/sdd1是我们要挂接的U盘?
#mkdir -p /mnt/usb
注:(x)建立一个目录用来作挂接?mount point)
#mount -t vfat /dev/sdd1 /mnt/usb
注:(x)现在可以通过/mnt/usb来访问U盘了, 若汉字文件名昄Zؕ码或不显C,可以使用下面的命令?
c?g windows的网l共享,UNIX(Linux)pȝ也有自己的网l共享,那就是NFS(|络文gpȝ)Q下面我们就以SUN Solaris2.8和REDHAT as server 3 Z单介l一下在linux下如何mount nfs|络׃n。在linux客户端挂?mount)NFS盘׃n之前Q必d配置好NFS服务端?
1、SolarispȝNFS服务端配|方法如下:(x)
(1)修改 /etc/dfs/dfstab, 增加׃n目录
share -F nfs -o rw /export/home/sunky
(2)启动nfs服务
# /etc/init.d/nfs.server start
(3)NFS服务启动以后Q也可以使用下面的命令增加新的共?
# share /export/home/sunky1
# share /export/home/sunky2
linux下?/strong>gcc命o(h)~译代码
初学时最好从命o(h)行入手,q样可以熟?zhn)从编写程序、编译、调试和执行的整个过E。编写程序可以用vi/vim(个h觉得vim?/font>vi好用)或其它编辑器~写。编译则使用gcc命o(h)。要往下学?fn)首先就得熟?zhn)?/font>gcc命o(h)的用法?/font>
gcc命o(h)提供了非常多的命令选项Q但q不是所有都要熟(zhn),初学时掌握几个常用的可以了Q到后面再慢慢学?fn)其它选项Q免得因选项太多而打M学习(fn)的信心?/font>
假设源程序文件名?/font>test.c
1. 无选项~译链接
用法Q?/font>#gcc test.c
作用Q将test.c预处理、汇~、编译ƈ链接形成可执行文件。这里未指定输出文gQ默认输Zؓ(f)a.out。编译成功后可以看到生成了一?/font>a.out的文件。在命o(h)行输?/font>./a.out 执行E序?/font>./表示在当前目录,a.out为可执行E序文g名?/font>
2. 选项 -o
用法Q?/font>#gcc test.c -o test
作用Q将test.c预处理、汇~、编译ƈ链接形成可执行文?/font>test?/font>-o选项用来指定输出文g的文件名。输?/font>./test执行E序?/font>
3. 选项 -E
用法Q?/font>#gcc -E test.c -o test.i
作用Q将test.c预处理输?/font>test.i文g?/font>
4. 选项 -S
用法Q?/font>#gcc -S test.i
作用Q将预处理输出文?/font>test.i汇编?/font>test.s文g?/font>
5. 选项 -c
用法Q?/font>#gcc -c test.s
作用Q将汇编输出文gtest.s~译输出test.o文g?/font>
6. 无选项链接
用法Q?/font>#gcc test.o -o test
作用Q将~译输出文gtest.o链接成最l可执行文gtest。输?/font>./test执行E序?/font>
7. 选项-O
用法Q?/font>#gcc -O1 test.c -o test
作用Q用编译优化?/font>1~译E序。别ؓ(f)1~3Q别越大优化效果越好,但编译时间越ѝ输?/font>./test执行E序?/font>
8.~译使用C++ std库的E序
用法Q?/font>#gcc test.cpp -o test -lstdc++
作用Q将test.cpp~译链接?/font>test可执行文件?/font>-lstdc++指定链接std c++库?/font>
如果有多个源文gQ基本上有两U编译方法:(x)
[假设有两个源文g?/font>test.c?/font>testfun.c]
1. 多个文g一L(fng)?/font>
用法Q?/font>#gcc testfun.c test.c -o test
作用Q将testfun.c?/font>test.c分别~译后链接成test可执行文件?/font>
2. 分别~译各个源文Ӟ之后对编译后输出的目标文仉接?/font>
用法Q?/font>
#gcc -c testfun.c //?/font>testfun.c~译?/font>testfun.o
#gcc -c test.c //?/font>test.c~译?/font>test.o
#gcc -o testfun.o test.o -o test //?/font>testfun.o?/font>test.o链接?/font>test
以上两种Ҏ(gu)相比较,W一中方法编译时需要所有文仉新编译,而第二种Ҏ(gu)可以只重新编译修改的文gQ未修改的文件不用重新编译?/font>