﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-唐吉诃德-文章分类-Ubuntu </title><link>http://www.cppblog.com/tdweng/category/13585.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 09 Jun 2011 22:53:25 GMT</lastBuildDate><pubDate>Thu, 09 Jun 2011 22:53:25 GMT</pubDate><ttl>60</ttl><item><title>mount</title><link>http://www.cppblog.com/tdweng/articles/146985.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Mon, 23 May 2011 09:58:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/146985.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/146985.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/146985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/146985.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/146985.html</trackback:ping><description><![CDATA[<div fc05="" fc11="" nbw-blog="" ztag="" js-fs2=""><div>mount 命令详解  功能：加载指定的文件系统。 语法：mount [-afFhnrvVw] [-L标签] [-o选项] [-t文件系统类型] [设备名] [加载点]  用法说明：mount可将指定设备中指定的文件系统加载到Linux目录下（也就是装载点）。可将经常使用的设备写入文件/etc/fastab,以</div>                      <p><span style="font-family: 宋体;"><span style="font-size: small;">mount命令详解</span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;"><br style="font-family: 黑体;" /> 功能：加载指定的文件系统。 <br style="font-family: 黑体;" /> 语法：mount [-afFhnrvVw] [-L&lt;标签&gt;] [-o&lt;选项&gt;] [-t&lt;文件系统类型&gt;] [设备名] [加载点] <br style="font-family: 黑体;" />   用法说明：mount可将指定设备中指定的文件系统加载到Linux目录下（也就是装载点）。可将经常使用的设备写入文件/etc/fastab,以使系  统在每次启动时自动加载。mount加载设备的信息记录在/etc/mtab文件中。使用umount命令卸载设备时，记录将被清除。 <br style="font-family: 黑体;" /> 常用参数和选项： <br style="font-family: 黑体;" /> -a 加载文件/etc/fstab中设置的所有设备。 <br style="font-family: 黑体;" /> -f 不实际加载设备。可与-v等参数同时使用以查看mount的执行过程。 <br style="font-family: 黑体;" /> -F 需与-a参数同时使用。所有在/etc/fstab中设置的设备会被同时加载，可加快执行速度。 <br style="font-family: 黑体;" /> -h 显示在线帮助信息。 <br style="font-family: 黑体;" /> -L&lt;标签&gt; 加载文件系统标签为&lt;标签&gt;的设备。 <br style="font-family: 黑体;" /> -n 不将加载信息记录在/etc/mtab文件中。 <br style="font-family: 黑体;" /> -o&lt;选项&gt; 指定加载文件系统时的选项。有些选项也可在/etc/fstab中使用。这些选项包括： <br style="font-family: 黑体;" /> async 以非同步的方式执行文件系统的输入输出动作。 <br style="font-family: 黑体;" /> atime 每次存取都更新inode的存取时间，默认设置，取消选项为noatime。 <br style="font-family: 黑体;" /> auto 必须在/etc/fstab文件中指定此选项。执行-a参数时，会加载设置为auto的设备，取消选取为noauto。 <br style="font-family: 黑体;" /> defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。 <br style="font-family: 黑体;" /> dev 可读文件系统上的字符或块设备，取消选项为nodev。 <br style="font-family: 黑体;" /> exec 可执行二进制文件，取消选项为noexec。 <br style="font-family: 黑体;" /> noatime 每次存取时不更新inode的存取时间。 <br style="font-family: 黑体;" /> noauto 无法使用-a参数来加载。 <br style="font-family: 黑体;" /> nodev 不读文件系统上的字符或块设备。 <br style="font-family: 黑体;" /> noexec 无法执行二进制文件。 <br style="font-family: 黑体;" /> nosuid 关闭set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位。 <br style="font-family: 黑体;" /> nouser 使一位用户无法执行加载操作，默认设置。 <br style="font-family: 黑体;" /> remount 重新加载设备。通常用于改变设备的设置状态。 <br style="font-family: 黑体;" /> ro 以只读模式加载。 <br style="font-family: 黑体;" /> rw 以可读写模式加载。 <br style="font-family: 黑体;" /> suid 启动set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位，取消选项为nosuid。 <br style="font-family: 黑体;" /> sync 以同步方式执行文件系统的输入输出动作。 <br style="font-family: 黑体;" /> user 可以让一般用户加载设备。 <br style="font-family: 黑体;" /> <br style="font-family: 黑体;" /> -r 以只读方式加载设备。 <br style="font-family: 黑体;" /> -t&lt;文件系统类型&gt; 指定设备的文件系统类型。常用的选项说明有： <br style="font-family: 黑体;" /> minix Linux最早使用的文件系统。 <br style="font-family: 黑体;" /> ext2 Linux目前的常用文件系统。 <br style="font-family: 黑体;" /> msdos MS-DOS 的 FAT。 <br style="font-family: 黑体;" /> vfat Win85/98 的 VFAT。 <br style="font-family: 黑体;" /> nfs 网络文件系统。 <br style="font-family: 黑体;" /> iso9660 CD-ROM光盘的标准文件系统。 <br style="font-family: 黑体;" /> ntfs Windows NT的文件系统。 <br style="font-family: 黑体;" /> hpfs OS/2文件系统。Windows NT 3.51之前版本的文件系统。 <br style="font-family: 黑体;" /> auto 自动检测文件系统。 <br style="font-family: 黑体;" /> -v 执行时显示详细的信息。 <br style="font-family: 黑体;" /> -V 显示版本信息。 <br style="font-family: 黑体;" /> -w 以可读写模式加载设备，默认设置。<br style="font-family: 黑体;" /> <br style="font-family: 黑体;" /> <br style="font-family: 黑体;" /> </span></span></p> <div style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">简单用法:<br /> fat32的分区<br /> mount -o codepage=936,iocharset=<a href="http://www.linuxso.com/a/linuxmingling/0/cp.html" target="_blank"><u>cp</u></a>936 /dev/hda7 /mnt/<a href="http://www.linuxso.com/a/linuxmingling/1/cd.html" target="_blank"><u>cd</u></a>rom (mount -t vfat -o iocharset=cp936 /dev/hda7 /mnt/cdrom)<br /> ntfs的分区<br /> mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom<br /> iso文件<br /> mount -o loop /abc.iso /mnt/cdrom<br /> 软盘<br /> mount /dev/fd0 /mnt/floppy<br /> USB闪存<br /> mount /dev/sda1 /mnt/cdrom<br /> <br /> 所有/etc/fstab内容 mount -a<br /> <br /> 可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等.<br /> <br /> 镜像文件：<br /> mount <a href="http://www.linuxso.com/a/linuxmingling/0/file.html" target="_blank"><u>file</u></a>Name  mountPoint -o  loop，fileName是镜像文件名(*.iso,*.img)，其它的不用说了，跟上面一样。用例：如我有一个a.iso光盘镜像文件，mount  a.iso a -o loop，这样进入目录a你就能浏览a.iso的内容了，*.img文件的用法一样。<br /> <br /> 显示中文方面,如果是fedora core 1 的话，用utf8更好<br /> mount -o iocharset=uft8 /dev/hda1 /mnt/c<br /> mount -o iocharset=uft8 /dev/sda1 /mnt/usb<br /> mount -t smbfs //ip_addr/share/dir /mnt/smb/share -o iocharset=uft8,username=name, password=passwd<br /> <br /> <br /> 开机就mount上windows下的分区<br /> 自动将windows的d盘挂到/mnt/d上，用vi打开/etc/fstab，加入以下一行<br /> /dev/hda5 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0<br /> 注意，先得手工建立一个/mnt/d目录<br /> mount局域网上其他windows机器共享出的目录(bjchenxu)<br /> mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom</span></span></div> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">挂接命令(mount) </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　首先，介绍一下挂接(mount)命令的使用方法，mount命令参数非常多，这里主要讲一下今天我们要用到的。 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　命令格式： </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　mount [-t vfstype] [-o options] device dir </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　其中： </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　1.-t vfstype 指定文件系统的类型，通常不必指定。mount 会自动选择正确的类型。常用类型有： </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　光盘或光盘镜像：iso9660 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　DOS fat16文件系统：msdos </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　Windows 9x fat32文件系统：vfat </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　Windows NT ntfs文件系统：ntfs </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　Mount Windows文件网络共享：smbfs </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　UNIX(LINUX) 文件网络共享：nfs </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有： </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　loop：用来把一个文件当成硬盘分区挂接上系统 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　ro：采用只读方式挂接设备 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　rw：采用读写方式挂接设备 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　iocharset：指定访问文件系统所用字符集 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　3.device 要挂接(mount)的设备。 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　4.dir设备在系统上的挂接点(mount point)。 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　挂接光盘镜像文件 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　   　由于近年来磁盘技术的巨大进步，新的电脑系统都配备了大容量的磁盘系统，在Windows下许多人都习惯把软件和资料做成光盘镜像文件通过虚拟光驱来使   用。这样做有许多好处：一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘镜像文件不成问题，随用随调十分方便;三、硬盘的读取速度要远远高于光  盘的读取速度，CPU占用率大大降低。其实linux系统下制作和使用光盘镜像比Windows系统更方便，不必借用任何第三方软件包。 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　1、从光盘制作光盘镜像文件。将光盘放入光驱，执行下面的命令。 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　#cp /dev/cdrom /home/sunky/mydisk.iso 或 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　#dd if=/dev/cdrom of=/home/sunky/mydisk.iso </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　注：执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　2、将文件和目录制作成光盘镜像文件，执行下面的命令。 </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　注：这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso，光盘卷标为：mydisk </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　3、光盘镜像文件的挂接(mount) </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　#<a href="http://www.linuxso.com/a/linuxmingling/1/mkdir.html" target="_blank"><u>mkdir</u></a> /mnt/vcdrom </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　注：建立一个目录用来作挂接点(mount point) </span></span></p> <p style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom </span></span></p> <div style="font-family: 黑体;"><span style="font-family: 宋体;"><span style="font-size: small;">　　　注：使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了</span></span></div> <div style="font-family: 黑体;"> <p><span style="font-family: 宋体;"><span style="font-size: small;">挂接移动硬盘 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　对linux系统而言，USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前，应先用fdisk &#8211;l 或 <a href="http://www.linuxso.com/a/linuxmingling/0/more.html" target="_blank"><u>more</u></a> /proc/partitions查看系统的硬盘和硬盘分区情况。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　[root at pldyrouter /]# fdisk -l </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　255 heads, 63 sectors/track, 8924 cylinders </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Units = cylinders of 16065 * 512 = 8225280 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Device Boot Start End Blocks Id System </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda1 1 4 32098+ de Dell Utility </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda3 2555 7904 42973875 83 Linux </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda4 7905 8924 Win95 Ext'd (LBA) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda5 7905 8924 8193118+ 82 Linux swap </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　 　在这里可 以清楚地看到系统有一块SCSI硬盘/dev/sda和它的四个磁盘分区/dev/sda1 -- /dev/sda4,  /dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后，再用fdisk &#8211;l 或 more  /proc/partitions查看系统的硬盘和硬盘分区情况 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　[root at pldyrouter /]# fdisk -l </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　255 heads, 63 sectors/track, 8924 cylinders </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Units = cylinders of 16065 * 512 = 8225280 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Device Boot Start End Blocks Id System </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda1 1 4 32098+ de Dell Utility </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda3 2555 7904 42973875 83 Linux </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda4 7905 8924 Win95 Ext'd (LBA) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda5 7905 8924 8193118+ 82 Linux swap </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Disk /dev/sdc: 40.0 GB, 40007761920 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　255 heads, 63 sectors/track, 4864 cylinders </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Units = cylinders of 16065 * 512 = 8225280 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Device Boot Start End Blocks Id System </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sdc2 511 4864 Win95 Ext'd (LBA) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sdc5 511 4864 34973473+ b Win95 FAT32 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　大家应该可以发现多了一个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们可以使用下面的命令挂接/dev/sdc1和/dev/sdc5。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mkdir -p /mnt/usbhd1 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mkdir -p /mnt/usbhd2 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　注：建立目录用来作挂接点(mount point) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mount -t ntfs /dev/sdc1 /mnt/usbhd1 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mount -t vfat /dev/sdc5 /mnt/usbhd2 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　注：对ntfs格式的磁盘分区应使用-t ntfs 参数，对fat32格式的磁盘分区应使用-t vfat参数。若汉字文件名显示为乱码或不显示，可以使用下面的命令格式。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　linux系统下使用fdisk分区命令和mkfs文件系统创建命令可以将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样，在linux下使用就更方便了。使用下面的命令直接挂接即可。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　#mount /dev/sdc1 /mnt/usbhd1 </span></span></p> <div> <div> <p><span style="font-family: 宋体;"><span style="font-size: small;">挂接U盘 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前，应先用fdisk &#8211;l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　[root at pldyrouter root]# fdisk -l </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　255 heads, 63 sectors/track, 8924 cylinders </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Units = cylinders of 16065 * 512 = 8225280 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Device Boot Start End Blocks Id System </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda1 1 4 32098+ de Dell Utility </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda3 2555 7904 42973875 83 Linux </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda4 7905 8924 Win95 Ext'd (LBA) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda5 7905 8924 8193118+ 82 Linux swap </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　插入U盘后，再用fdisk &#8211;l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　[root at pldyrouter root]# fdisk -l </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　255 heads, 63 sectors/track, 8924 cylinders </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Units = cylinders of 16065 * 512 = 8225280 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Device Boot Start End Blocks Id System </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda1 1 4 32098+ de Dell Utility </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda3 2555 7904 42973875 83 Linux </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda4 7905 8924 Win95 Ext'd (LBA) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sda5 7905 8924 8193118+ 82 Linux swap </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Disk /dev/sdd: 131 MB, 131072000 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　9 heads, 32 sectors/track, 888 cylinders </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Units = cylinders of 288 * 512 = 147456 bytes </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Device Boot Start End Blocks Id System </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　/dev/sdd1 * 1 889 127983+ b Win95 FAT32 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　Partition 1 has <a href="http://www.linuxso.com/a/linuxmingling/0/diff.html" target="_blank"><u>diff</u></a>erent physical/logical endings: </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　phys=(1000, 8, 32) logical=(888, 7, 31) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　#mkdir -p /mnt/usb </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　注：建立一个目录用来作挂接点(mount point) </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　#mount -t vfat /dev/sdd1 /mnt/usb </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　注：现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示，可以使用下面的命令。 </span></span></p> <div><span style="font-family: 宋体;"><span style="font-size: small;">　　#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb</span></span></div> <div> <div> <p><span style="font-family: 宋体;"><span style="font-size: small;">类 似于 windows的网络共享，UNIX(Linux)系统也有自己的网络共享，那就是NFS(网络文件系统)，下面我们就以SUN  Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount  nfs网络共享。在linux客户端挂接(mount)NFS磁盘共享之前，必须先配置好NFS服务端。 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　1、Solaris系统NFS服务端配置方法如下： </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">(1)修改&nbsp;/etc/<a href="http://www.linuxso.com/a/linuxmingling/1/df.html" target="_blank"><u>df</u></a>s/dfstab, 增加共享目录 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　share -F nfs -o rw /export/home/sunky </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">(2)启动nfs服务 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　　# /etc/init.d/nfs.server start </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">(3)NFS服务启动以后，也可以使用下面的命令增加新的共享 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　　# share /export/home/sunky1 </span></span></p> <p><span style="font-family: 宋体;"><span style="font-size: small;">　　　　# share /export/home/sunky2 </span></span></p> <div><span style="font-family: 宋体;"><span style="font-size: small;">　　　注：/export/home/sunky和/export/home/sunky1是准备共享的目录</span></span></div> </div> </div> </div> </div> </div>转载请注明文章来源:<a href="http://www.linuxso.com/a/linuxmingling/1/mount.html">http://www.linuxso.com/a/linuxmingling/1/mount.html</a></div><img src ="http://www.cppblog.com/tdweng/aggbug/146985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2011-05-23 17:58 <a href="http://www.cppblog.com/tdweng/articles/146985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>u-boot命令解释</title><link>http://www.cppblog.com/tdweng/articles/146871.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Sat, 21 May 2011 08:58:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/146871.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/146871.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/146871.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/146871.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/146871.html</trackback:ping><description><![CDATA[<span style="color: red;">U-Boot上电启动后，敲任意键能够退出自动启动状态，进入命令行。</span><br /><br />U-Boot 1.1.2 (Apr 26 2005 - 12:27:13)<br />U-Boot code: 11080000 -&gt; 1109614C&nbsp;&nbsp;BSS: -&gt; 1109A91C<br />RAM Configuration:<br />Bank #0: 10000000 32 MB<br />Micron StrataFlash MT28F128J3 device initialized<br />Flash: 32 MB<br />In:&nbsp; &nbsp; serial<br />Out:&nbsp; &nbsp;serial<br />Err:&nbsp; &nbsp;serial<br />Hit any key to stop autoboot:&nbsp;&nbsp;0<br />U-Boot&gt;<br /><br />在命令行提示符下，能够输入U-Boot的命令并执行。U-Boot能够支持几十个常用命令，通过这些命令，能够对研发板进行调试，能够引导Linux内核，还能够擦写Flash完成系统部署等功能。掌控这些命令的使用，才能够顺利地进行嵌入式系统的研发。<br />输入help命令，能够得到当前U-Boot的任何命令列表。每一条命令后面是简单的命令说明。<br /><br /><span style="color: red;">=&gt; help</span><br />?&nbsp; &nbsp;&nbsp; &nbsp; - alias for 'help'<br />autoscr - run  from memory<br />base&nbsp; &nbsp; - print or set address offset<br />bdinfo&nbsp;&nbsp;- print Board Info structure<br />boot&nbsp; &nbsp; - boot default, i.e., run 'bootcmd'<br />bootd&nbsp; &nbsp;- boot default, i.e., run 'bootcmd'<br />bootm&nbsp; &nbsp;- boot application image from memory<br />bootp&nbsp; &nbsp;- boot image via network using BootP/TFTP protocol<br />cmp&nbsp; &nbsp;&nbsp;&nbsp;- memory compare<br />coninfo&nbsp;&nbsp;- print console devices and information<br />cp&nbsp; &nbsp;&nbsp; &nbsp;- memory copy<br />crc32&nbsp; &nbsp;- checksum calculation<br />dhcp&nbsp; &nbsp; - invoke DHCP client to obtain IP/boot params<br />echo&nbsp; &nbsp; - echo args to console<br />erase&nbsp; &nbsp;- erase FLASH memory<br />flinfo&nbsp;&nbsp;- print FLASH memory information<br />go&nbsp; &nbsp;&nbsp; &nbsp;- start application at address 'addr'<br />help&nbsp; &nbsp; - print online help<br />iminfo&nbsp;&nbsp;- print header information for application image<br />imls&nbsp; &nbsp; - list all images found in flash<br />itest&nbsp; &nbsp; - return true/false on integer compare<br />loadb&nbsp; &nbsp;- load binary file over serial line (kermit mode)<br />loads&nbsp; &nbsp;- load S-Record file over serial line<br />loop&nbsp; &nbsp;- infinite loop on address range<br />md&nbsp; &nbsp; - memory display<br />mm&nbsp; &nbsp; - memory modify (auto-incrementing)<br />mtest&nbsp; &nbsp;- simple RAM test<br />mw&nbsp; &nbsp;&nbsp; &nbsp;- memory write (fill)<br />nfs&nbsp; &nbsp;&nbsp;&nbsp;- boot image via network using NFS protocol<br />nm&nbsp; &nbsp;&nbsp; &nbsp;- memory modify (constant address)<br />printenv - print environment variables<br />protect - enable or disable FLASH write protection<br />rarpboot - boot image via network using RARP/TFTP protocol<br />reset&nbsp; &nbsp;- Perform RESET of the CPU<br />run&nbsp; &nbsp;&nbsp;&nbsp;- run commands in an environment variable<br />saveenv - save environment variables to persistent storage<br />setenv&nbsp;&nbsp;- set environment variables<br />sleep&nbsp; &nbsp;- delay execution for some time<br />tftpboot - boot image via network using TFTP protocol<br />version - print monitor version<br />=&gt;<br /><br />U-Boot还提供了更加周详的命令帮助，通过help命令还能够查看每个命令的参数说明。由于研发过程的需要，有必要先把U-Boot命令的用法弄清楚。接下来，根据每一条命令的帮助信息，解释一下这些命令的功能和参数。<br /><br /><span style="color: red;">=&gt; help bootm</span><br />bootm [addr [arg ...]]<br />&nbsp; &nbsp; - boot application image stored in memory<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; passing arguments 'arg ...'; when booting a Linux kernel,<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 'arg' can be the address of an initrd image<br /><br />bootm命令能够引导启动存储在内存中的程式映像。这些内存包括RAM和能够永久保存的Flash。<br />第1个参数addr是程式映像的地址，这个程式映像必须转换成U-Boot的格式。<br />第2个参数对于引导Linux内核有用，通常作为U-Boot格式的RAMDISK映像存储地址；也能够是传递给Linux内核的参数（缺省情况下传递bootargs环境变量给内核）。<br /><br /><span style="color: red;">=&gt; help bootp</span><br />bootp [loadAddress] [bootfilename]<br />bootp命令通过bootp请求，需要DHCP服务器分配IP地址，然后通过TFTP协议下载指定的文档到内存。<br />第1个参数是下载文档存放的内存地址。<br />第2个参数是要下载的文档名称，这个文档应该在研发主机上准备好。<br /><br /><span style="color: red;">=&gt; help cmp</span><br />cmp [.b, .w, .l] addr1 addr2 count<br />&nbsp; &nbsp;&nbsp;&nbsp;- compare memory<br /><br />cmp命令能够比较2块内存中的内容。.b以字节为单位；.w以字为单位；.l以长字为单位。注意：cmp.b中间不能保留空格，需要连续敲入命令。<br />第1个参数addr1是第一块内存的起始地址。<br />第2个参数addr2是第二块内存的起始地址。<br />第3个参数count是要比较的数目，单位按照字节、字或长字。<br /><br /><span style="color: red;">=&gt; help cp</span><br />cp [.b, .w, .l] source target count<br />&nbsp; &nbsp;&nbsp; &nbsp; - copy memory<br /><br />cp命令能够在内存中复制数据块，包括对Flash的读写操作。<br />第1个参数source是要复制的数据块起始地址。<br />第2个参数target是数据块要复制到的地址。这个地址假如在Flash中，那么会直接调用写Flash的函数操作。所以U-Boot写Flash就使用这个命令，当然需要先把对应Flash区域擦干净。<br />第3个参数count是要复制的数目，根据cp.b cp.w cp.l分别以字节、字、长字为单位。<br /><br /><span style="color: red;">=&gt; help crc32</span><br />crc32 address count [addr]<br />&nbsp; &nbsp;&nbsp;&nbsp;- compute CRC32 checksum [save at addr]&nbsp; &nbsp;<br /><br />crc32命令能够计算存储数据的校验和。<br />第1个参数address是需要校验的数据起始地址。<br />第2个参数count是要校验的数据字节数。<br />第3个参数addr用来指定保存结果的地址。<br /><br /><span style="color: red;">=&gt; help echo</span><br />echo [args..]<br />&nbsp; &nbsp;&nbsp; &nbsp;- echo args to console; \c suppresses newline<br /><br />echo命令回显参数。<br /><br /><span style="color: red;">=&gt; help erase</span><br />erase start end<br />&nbsp; &nbsp;&nbsp; &nbsp;- erase FLASH from addr 'start' to addr 'end'<br />erase N:SF[-SL]<br />&nbsp; &nbsp;&nbsp; &nbsp;- erase sectors SF-SL in FLASH bank # N<br />erase bank N<br />&nbsp; &nbsp;&nbsp; &nbsp;- erase FLASH bank # N<br />erase all<br />&nbsp; &nbsp;&nbsp; &nbsp;- erase all FLASH banks<br /><br />erase命令能够擦Flash。<br />参数必须指定Flash擦除的范围。<br />按照起始地址和结束地址，start必须是擦除块的起始地址；end必须是擦除末尾块的结束地址。这种方式最常用。举例说明：擦除0x20000 &#8211; 0x3ffff区域命令为erase 20000 3ffff。<br />按照组和扇区，N表示Flash的组号，SF表示擦除起始扇区号，SL表示擦除结束扇区号。另外，还能够擦除整个组，擦除组号为N的整个Flash组。擦除全部Flash只要给出一个all的参数即可。<br /><br /><span style="color: red;">=&gt; help flinfo</span><br />flinfo<br />&nbsp; &nbsp;&nbsp; &nbsp; - print information for all FLASH memory banks<br />flinfo N<br />&nbsp; &nbsp;&nbsp; &nbsp; - print information for FLASH memory bank # N<br /><br />flinfo命令打印全部Flash组的信息，也能够只打印其中某个组。一般嵌入式系统的Flash只有一个组。<br /><br /><span style="color: red;">=&gt; help go</span><br />go addr [arg ...]<br />&nbsp; &nbsp;&nbsp; &nbsp;- start application at address 'addr'<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;passing 'arg' as arguments<br /><br />go命令能够执行应用程式。<br />第1个参数是要执行程式的入口地址。<br />第2个可选参数是传递给程式的参数，能够不用。<br /><br /><span style="color: red;">=&gt; help iminfo</span><br />iminfo addr [addr ...]<br />&nbsp; &nbsp;&nbsp; &nbsp;- print header information for application image starting at<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;address 'addr' in memory; this includes verification of the<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;image contents (magic number, header and payload checksums)<br /><br />iminfo能够打印程式映像的开头信息，包含了映像内容的校验（序列号、头和校验和）。<br />第1个参数指定映像的起始地址。<br />可选的参数是指定更多的映像地址。<br /><br /><span style="color: red;">=&gt; help loadb</span><br />loadb [ off ] [ baud ]<br />&nbsp; &nbsp;&nbsp;&nbsp;- load binary file over serial line with offset 'off' and baudrate 'baud'<br /><br />loadb命令能够通过串口线下载二进制格式文档。<br /><br /><span style="color: red;">=&gt; help loads</span><br />loads [ off ]<br />&nbsp; &nbsp; - load S-Record file over serial line with offset 'off'<br /><br />loads命令能够通过串口线下载S-Record格式文档。<br /><br /><span style="color: red;">=&gt; help mw</span><br />mw [.b, .w, .l] address value [count]<br />&nbsp; &nbsp;&nbsp;&nbsp;- write memory<br /><br />mw命令能够按照字节、字、长字写内存，.b .w .l的用法和cp命令相同。<br />第1个参数address是要写的内存地址。<br />第2个参数value是要写的值。<br />第3个可选参数count是要写单位值的数目。<br /><br /><span style="color: red;">=&gt; help nfs</span><br />nfs [loadAddress] [host ip addr:bootfilename]<br /><br />nfs命令能够使用NFS网络协议通过网络启动映像。<br /><br /><span style="color: red;">=&gt; help nm</span><br />nm [.b, .w, .l] address<br />&nbsp; &nbsp;&nbsp;&nbsp;- memory modify, read and keep address<br /><br />nm命令能够修改内存，能够按照字节、字、长字操作。<br />参数address是要读出并且修改的内存地址。<br /><br /><span style="color: red;">=&gt; help printenv</span><br />printenv<br />&nbsp; &nbsp;&nbsp; &nbsp;- print values of all environment variables<br />printenv name ...<br />&nbsp; &nbsp;&nbsp; &nbsp;- print value of environment variable 'name'<br /><br />printenv命令打印环境变量。<br />能够打印全部环境变量，也能够只打印参数中列出的环境变量。<br /><br /><span style="color: red;">=&gt; help protect</span><br />protect on&nbsp;&nbsp;start end<br />&nbsp; &nbsp;&nbsp; &nbsp;- protect Flash from addr 'start' to addr 'end'<br />protect on&nbsp;&nbsp;N:SF[-SL]<br />&nbsp; &nbsp;&nbsp; &nbsp;- protect sectors SF-SL in Flash bank # N<br />protect on&nbsp;&nbsp;bank N<br />&nbsp; &nbsp;&nbsp; &nbsp;- protect Flash bank # N<br />protect on&nbsp;&nbsp;all<br />&nbsp; &nbsp;&nbsp; &nbsp;- protect all Flash banks<br />protect off start end<br />&nbsp; &nbsp;&nbsp; &nbsp;- make Flash from addr 'start' to addr 'end' writable<br />protect off N:SF[-SL]<br />&nbsp; &nbsp;&nbsp;&nbsp;- make sectors SF-SL writable in Flash bank # N<br />protect off bank N<br />&nbsp; &nbsp;&nbsp;&nbsp;- make Flash bank # N writable<br />protect off all<br />&nbsp; &nbsp;&nbsp;&nbsp;- make all Flash banks writable<br /><br />protect命令是对Flash写保护的操作，能够使能和解除写保护。<br />第1个参数on代表使能写保护；off代表解除写保护。<br />第2、3参数是指定Flash写保护操作范围，跟擦除的方式相同。<br /><br /><span style="color: red;">=&gt; help rarpboot</span><br />rarpboot [loadAddress] [bootfilename]<br /><br />rarboot命令能够使用TFTP协议通过网络启动映像。也就是把指定的文档下载到指定地址，然后执行。<br />第1个参数是映像文档下载到的内存地址。<br />第2个参数是要下载执行的映像文档。<br /><br /><span style="color: red;">=&gt; help run</span><br />run var [...]<br />&nbsp; &nbsp;&nbsp; &nbsp;- run the commands in the environment variable(s) 'var'<br /><br />run命令能够执行环境变量中的命令，后面参数能够跟几个环境变量名。<br /><br /><span style="color: red;">=&gt; help setenv</span><br />setenv name value ...<br />&nbsp; &nbsp;&nbsp; &nbsp;- set environment variable 'name' to 'value ...'<br />setenv name<br />&nbsp; &nbsp;&nbsp; &nbsp;- delete environment variable 'name'<br /><br />setenv命令能够配置环境变量。<br />第1个参数是环境变量的名称。<br />第2个参数是要配置的值，假如没有第2个参数，表示删除这个环境变量。<br /><br /><br /><span style="color: red;">=&gt; help sleep</span><br />sleep N<br />&nbsp; &nbsp;&nbsp; &nbsp;- delay execution for N seconds (N is _decimal_ !!!)<br /><br />sleep命令能够延迟N秒钟执行，N为十进制数。<br /><br /><span style="color: red;">=&gt; help tftpboot</span><br />tftpboot [loadAddress] [bootfilename]<br /><br />tftpboot命令能够使用TFTP协议通过网络下载文档。按照二进制文档格式下载。另外使用这个命令，必须配置好相关的环境变量。例如serverip和ipaddr。<br />第1个参数loadAddress是下载到的内存地址。<br />第2个参数是要下载的文档名称，必须放在TFTP服务器相应的目录下。<br />这 些U-Boot命令为嵌入式系统提供了丰富的研发和调试功能。在Linux内核启动和调试过程中，都能够用到U-Boot的命令。但是一般情况下，无需使 用全部命令。比如已支持以太网接口，能够通过tftpboot命令来下载文档，那么更有必要使用串口下载的loadb吗？反过来，假如研发板需要特别的调 试功能，也能够添加新的命令。<br />在建立交叉研发环境和调试Linux内核等章节时，在ARM平台上移植了U-Boot，并且提供了具体U-Boot的操作步骤。<img src ="http://www.cppblog.com/tdweng/aggbug/146871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2011-05-21 16:58 <a href="http://www.cppblog.com/tdweng/articles/146871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fdisk</title><link>http://www.cppblog.com/tdweng/articles/146853.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Sat, 21 May 2011 02:18:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/146853.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/146853.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/146853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/146853.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/146853.html</trackback:ping><description><![CDATA[DISK进行 硬盘分区   分区从实质上说就是对硬盘的一种格式化。当我们创建分区时，就已经设置好了硬盘的各项物理参数，指定了硬盘主引导记录(即 MasterBootRecord，一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高 级格式化，即Format命令来实现。用一个形象的比喻，分区就好比在一张白纸上画一个大方框。而格式化好比在方框里打上格子。安装各种软件就好比在格子 里写上字。分区和格式化就相当于为安装软件打基础，实际上它们为电脑在硬盘上存储数据起到标记定位的作用。进行硬盘分区，我们最常用的软件是 FDISK.com。下面，就如何利用F 					 				 			 		 		 			<div> 				<div id="cata"> 					<h3>目录</h3> 					<dl id="catelog"><dt>1<a target="_self" title="Linux命令：fdisk" href="http://baike.soso.com/v2647186.htm#1">Linux命令：fdis&#8230;</a></dt></dl> 					 				</div> 				<div id="hideCatelog" unwrap="" dp_none=""> 					<h3>目录</h3> 					<dl><dt>1<a target="_self" title="Linux命令：fdisk" href="http://baike.soso.com/v2647186.htm#1">Linux命令：fdis&#8230;</a></dt></dl> 					<a>收起</a> 				</div> 			</div> 			<dl id="lemma_content"><dt><a target="_self" href="http://baike.soso.com/v2647186.htm#">编辑本段</a><strong><a name="1"><span style="color: red;">Linux命令：fdisk</span></a></strong></dt><dd>　　<strong>功能说明</strong>：磁盘分区。<br />　　<strong>语　法</strong>：fdisk [-b &lt;分区大小&gt;][-uv][外围设备代号] 或 fdisk [-l][-b &lt;分区大小&gt;][-uv][外围设备代号...] 或 fdisk [-s &lt;分区编号&gt;]<br />　　补充说明：fdisk是用来磁盘分区的程序，它采用传统的问答式界面，而非类似DOS fdisk的cfdisk互动式操作界面，因此在使用上较为不便，但功能却丝毫不打折扣。<br />　　<strong>参　数</strong>：<br />　　-b&lt;分区大小&gt; 指定每个分区的大小。<br />　　-l 列出指定的外围设备的分区表状况。<br />　　-s&lt;分区编号&gt; 将指定的分区大小输出到标准输出上，单位为区块。<br />　　-u 搭配"-l"参数列表，会用分区数目取代柱面数目，来表示每个分区的起始地址。<br />　　-v 显示版本信息。<br />　　提要：fdisk 是一款功能强大的分区工具，也是目前在<a target="_blank" href="http://baike.soso.com/v103172.htm?ch=ch.bk.innerlink">Unix</a>类操作系统中最流行的工具之一；分区工具老字号；本篇只介绍其最简单的分区操作功能； <br />　　<span style="color: red;">一、fdisk 的介绍；</span><br />　　fdisk - Partition table manipulator for <a target="_blank" href="http://baike.soso.com/v5075.htm?ch=ch.bk.innerlink">Linux</a>  ，译成中文的意思是磁盘分区表操作工具；本人译的不太好，也没有看中文文档；其实就是分区工具； fdsik  能划分磁盘成为若干个区，同时也能为每个分区指定分区的文件系统，比如linux 、fat32、 linux 、linux swap 、fat16  以及其实类Unix类操作系统的文件系统等；当然我们用fdisk  对磁盘操作分区时，并不是一个终点，我们还要对分区进行格式化所需要的文件系统；这样一个分区才能使用；这和DOS中的fdisk 是类似的； <br />　<span style="color: red;">　二、合理规划您的硬盘分区；</span><br />　　在操作分区之前，我们要明白硬盘分区一点理论，比如<a target="_blank" href="http://baike.soso.com/v430664.htm?ch=ch.bk.innerlink">硬盘容量</a>和分区大小的计算；对一个硬盘如何规划分区等，请参考如下文档，谢谢； 《合理规划您的硬盘分区》 <br />　　<span style="color: red;">三、fdisk -l 查看硬盘及分区信息；</span><br />　　通过《合理规划您的硬盘分区》 ，我们知道主分区（包括扩展分区）的总个数不能超过四个；也不能把扩展分区包围在主分区之间；根据这个原则，我们划分硬盘分区就比较容易的多；也能为以后减少不必要的麻烦； <br />　　<span style="color: red;">1、通过fdisk -l 查看机器所挂硬盘个数及分区情况；</span><br />　　[root@localhost beinan]# fdisk -l<br />　　<a target="_blank" href="http://baike.soso.com/v84374.htm?ch=ch.bk.innerlink">Disk</a> /dev/hda: 80.0 GB, 80026361856 bytes<br />　　255 heads, 63 sectors/track, 9729 cylinders<br />　　Units = cylinders of 16065 * 512 = 8225280 bytes<br />　　Device Boot <a target="_blank" href="http://baike.soso.com/v5723093.htm?ch=ch.bk.innerlink">Start</a> <a target="_blank" href="http://baike.soso.com/v1283207.htm?ch=ch.bk.innerlink">End</a> Blocks Id System<br />　　/dev/hda1 * 1 765 6144831 7 HPFS/<a target="_blank" href="http://baike.soso.com/v87681.htm?ch=ch.bk.innerlink">NTFS</a><br />　　/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)<br />　　/dev/hda3 2806 9729 55617030 5 Extended<br />　　/dev/hda5 2806 3825 8193118+ 83 Linux<br />　　/dev/hda6 3826 5100 10241406 83 Linux<br />　　/dev/hda7 5101 5198 787153+ 82 Linux swap / <a target="_blank" href="http://baike.soso.com/v5061069.htm?ch=ch.bk.innerlink">Solaris</a><br />　　/dev/hda8 5199 6657 11719386 83 Linux<br />　　/dev/hda9 6658 7751 8787523+ 83 Linux<br />　　/dev/hda10 7752 9729 15888253+ 83 Linux<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id <a target="_blank" href="http://baike.soso.com/v632254.htm?ch=ch.bk.innerlink">System</a><br />　　/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)<br />　　/dev/sda2 26 125 806400 5 Extended<br />　　/dev/sda5 26 50 201568+ 83 Linux<br />　　/dev/sda6 51 76 200781 83 Linux<br />　　通过上面的信息，我们知道此机器中挂载两个硬盘（或<a target="_blank" href="http://baike.soso.com/v132502.htm?ch=ch.bk.innerlink">移动硬盘</a>）， 其中一个是hda 另一个是sda ；如果我们想查看单个硬盘情况，可以通过 fdisk -l /dev/hda1 或者fdisk -l  /dev/sda1 来操作；以fdisk -l 输出的硬盘标识为准；其中 hda有三个主分区（包括扩展分区）,分别是主分区 hda1 hda2  和hda3（扩展分区） ；逻辑分区是 hda5到hda10；<br />　　其中 sda 有两个主分区（包括扩展分区），分别是 hda1 和hda2 (扩展分区）；逻辑分区是 sda5 hda6 ；硬盘总容量=主分区（包括扩展分区）总容量<br />　　扩展分区容量=逻辑分区总容量通过上面的例子，我们可以得知 hda=hda1+hda2+hda3，其中hda3=hda5+hda6+hda7+hda8+hda9+hda10 ... ...<br />　　<span style="color: red;">2、关于fdisk -l 一些数值的说明；</span><br />　　Disk /dev/hda: 80.0 GB, 80026361856 bytes<br />　　255 heads, 63 sectors/track, 9729 cylinders<br />　　Units = cylinders of 16065 * 512 = 8225280 bytes<br />　　这个硬盘是80G的，有255个磁面；63个扇区；9729个磁柱；每个 cylinder（磁柱）的容量是 8225280 bytes=8225.280 K（约为）=8.225280M（约为）； 分区序列 引导 开始 终止 容量 分区类型ID 分区类型<br />　　Device Boot Start End Blocks Id System<br />　　/dev/hda1 * 1 765 6144831 7 HPFS/NTFS<br />　　/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)<br />　　/dev/hda3 2806 9729 55617030 5 Extended<br />　　/dev/hda5 2806 3825 8193118+ 83 Linux<br />　　/dev/hda6 3826 5100 10241406 83 Linux<br />　　/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris<br />　　/dev/hda8 5199 6657 11719386 83 Linux<br />　　/dev/hda9 6658 7751 8787523+ 83 Linux<br />　　/dev/hda10 7752 9729 15888253+ 83 Linux<br />　　说明： 硬盘分区的表示：在Linux 是通过hd*x 或 sd*x 表示的，其中 * 表示的是a、b、c ... ... x表示的数字 1、2、3 ... ... hd大多是<a target="_blank" href="http://baike.soso.com/v7695095.htm?ch=ch.bk.innerlink">IDE硬盘</a>；sd大多是SCSI或移动存储；<br />　　引导（Boot）：表示引导分区，在上面的例子中 hda1 是引导分区；<br />　　Start （开始）：表示的一个分区从X cylinder（磁柱）开始；<br />　　End （结束）：表示一个分区到 Y cylinder（磁柱）结束；<br />　　id和System 表示的是一个意思，id看起来不太直观，我们要在fdisk 一个分区时，通过指定id来确认分区类型；比如 7表示的就NTFS 分区；这个在fdisk 中要通过t功能来指定。下面的部份会提到；<br />　 　Blocks（容量）：这是我翻译的，其实不准确，表示的意思的确是容量的意思，其单位是K；一个分区容量的值是由下面的公式而来的； Blocks =  （相应分区End数值 - 相应分区Start数值）x 单位cylinder（磁柱）的容量 所以我们算一下 hda1的 Blocks 的大小 ：  hda1 Blocks=(765-1)x8225.280=6284113.92 K = 6284.113.92M  注：换算单位以硬盘厂家提供的10进位算起，如果以操作系统二进制来算，这个分区容量应该更少一些，得出的这个值和我们通过 fdisk -l 看到的  /dev/hda1的值是大体相当的，因为换算方法不一样，所以也不可能尽可能的精确；再加上分区时的一点损失之类，有时或大或小是存在的；我们查看分区 大小或者文件的时候，还是用十进制来计算比较直观；推算办法是 byte 向前推小数点三位就是K  ，K单位的值向前推小数点三位就是M，M向前推小数点三位就是G... ... 一般也差不了多少；这么算就行； <br />　　<span style="color: red;">3、估算一个存储设备是否被完全划分；</span><br />　　我们估算一个硬盘是否完全被划分，我们只要看 fdisk -l 输出的内容中的 cylinders（<a target="_blank" href="http://baike.soso.com/v503453.htm?ch=ch.bk.innerlink">柱体</a>）  上一个分区的End 和 下一个分区的Start是不是一个连续的数字，另外要看一下每个硬盘设备的fdisk -l 的开头部份，看一下他的  cylinders（柱体）的值；比如hda设备，我们看到的是 9729 cylinders ；我们通过  hda的分区表可以看到上一个分区的End的值+1 就是下一个分区的Start 的值；比如 hda2的Start的值是 hda1 的End  的值+1，这证明 hda1 和hda2 中间没有空白分区，是连续的，以此类推；在 hda10，我们看到 End 的值是9729 ，而在fdisk  -l头部信息中也有9729 cylinders，证明这个硬盘已经完全划分； Disk /dev/sda: 1035 MB,  1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)<br />　　/dev/sda2 26 125 806400 5 Extended<br />　　/dev/sda5 26 50 201568+ 83 Linux<br />　　/dev/sda6 51 76 200781 83 Linux<br />　 　我们再看看 sda 移动储是不是被完全划分了；sda有 125个cylinders  （柱体），有一个主分区和一个扩展分区构成；在扩展分区中，我们看到End的值为125,而这个移动硬盘的cylinder也是125，这能说明这个硬盘 不可能再添加任何主分区了；根据我们上面所说的 sda1 sda2 sda5 sda6 之间未有任何未划分空间，但sda6 的cylinders  （柱体）的End值却是 76 ，而 sda总的cylinders （柱体）有125个，由此看来sda 在 sda6后面有未划分区域；至于sda  有多少未划分空间，我们算一下就知道了；扩展分区总容量是 806400 K ，大约是 806.400M左右，而逻辑分区 sda5 和sda6  的大小加起来是 400M左右，所以还仍有400M左右未划分空间，并且只能划分为链逻辑分区； <br />　　<span style="color: red;">四、fdisk 对硬盘及分区的操作，进入fdisk 对硬盘操作阶段；</span><br />　　我们可以对硬盘进行分区操作，前提是您把fdisk -l 弄明白了；通过fdisk -l ，我们能找出机器中所有硬盘个数及设备名称；比如上面的例子，我们会看到两个设备一个是/dev/hda ，另一个是/dev/sda ；<br />　　fdisk 操作硬盘的命令格式如下：<br />　　[root@localhost beinan]# fdisk 设备 <br />　　比如我们通过 fdisk -l 得知 /dev/hda 或者 /dev/sda设备；我们如果想再添加或者删除一些分区，可以用 [root@localhost beinan]# fdisk /dev/hda<br />　　或<br />　　[root@localhost beinan]# fdisk /dev/sda <br />　　注 在以后的例子中，我们要以 /dev/sda设备为例，来讲解如何用fdisk 来操作添加、删除分区等动作；<br />　　<span style="background-color: yellow;">1、fdisk 的说明；</span><br />　　当我们通过 fdisk 设备，进入相应设备的操作时，会发现有如下的提示；以 fdisk /dev/sda 设备为例，以下同； [root@localhost beinan]# fdisk /dev/sda<br />　　<a target="_blank" href="http://baike.soso.com/v7420224.htm?ch=ch.bk.innerlink">Command</a> (m for help): 在这里按m ，就会输出帮助；<br />　　Command action<br />　　a toggle a bootable flag<br />　　b edit bsd disklabel<br />　　c toggle the dos compatibility flag<br />　　d delete a partition 注：这是删除一个分区的动作；<br />　　l list known partition types 注：l是列出分区类型，以供我们设置相应分区的类型；<br />　　m print this menu 注：m 是列出帮助信息；<br />　　n add a new partition 注：添加一个分区；<br />　　o create a new empty DOS partition table <br />　　p print the partition table 注：p列出分区表；<br />　　q quit without saving changes 注：不保存退出；<br />　　s create a new empty <a target="_blank" href="http://baike.soso.com/v471153.htm?ch=ch.bk.innerlink">Sun</a> disklabel <br />　　t change a partition's system id 注：t 改变分区类型；<br />　　u change display/entry units <br />　　v verify the partition table<br />　　w write table to disk and exit 注：把分区表写入硬盘并退出；<br />　　x extra functionality (experts only) 注：扩展应用，专家功能；<br />　　其实我们常用的只有注有中文的，其它的功能我们不常用（呵，主要是我不会用，否则早会卖弄一下了）；x扩展功能，也不是常用的；一般的情况下只要懂得 d l m p q t w 就行了；下面以实例操作来详述，没有例子没有办法就，新手也看不懂；<br />　　<span style="background-color: yellow;">2、列出当前操作硬盘的分区情况，用p；</span><br />　　Command (m for help): p<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)<br />　　/dev/sda2 26 125 806400 5 Extended<br />　　/dev/sda5 26 50 201568+ 83 Linux<br />　　/dev/sda6 51 76 200781 83 Linux<br />　　<span style="background-color: yellow;">3、通过fdisk的d指令来删除一个分区；</span><br />　　Command (m for help): p 注：列出分区情况；<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)<br />　　/dev/sda2 26 125 806400 5 Extended<br />　　/dev/sda5 26 50 201568+ 83 Linux<br />　　/dev/sda6 51 76 200781 83 Linux<br />　　Command (m for help): d 注：执行删除分区指定；<br />　　Partition number (1-6): 6 注：我想删除 sda6 ，就在这里输入 6 ；<br />　　Command (m for help): p 注：再查看一下硬盘分区情况，看是否删除了？<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)<br />　　/dev/sda2 26 125 806400 5 Extended<br />　　/dev/sda5 26 50 201568+ 83 Linux<br />　　Command (m for help):<br />　　警告：删除分区时要小心，请看好分区的序号，如果您删除了扩展分区，扩展分区之下的逻辑分区都会删除；所以操作时一定要小心；如果知道自己操作错了，请不要惊慌，用q不保存退出；切记切记！！！！在分区操作错了之时，千万不要输入w保存退出！！！<br />　　<span style="background-color: yellow;">4、通过fdisk的n指令增加一个分区；</span><br />　　Command (m for help): p<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)<br />　　/dev/sda2 26 125 806400 5 Extended<br />　　/dev/sda5 26 50 201568+ 83 Linux<br />　　Command (m for help): n 注：增加一个分区；<br />　　Command action<br />　　l logical (5 or over) 注：增加逻辑分区，分区编号要大于5；为什么要大于5，因为已经有sda5了；<br />　　p primary partition (1-4) 注：增加一个主分区；编号从 1-4 ；但sda1 和sda2都被占用，所以只能从3开始；<br />　　p<br />　　Partition number (1-4): 3<br />　　No free sectors available 注：失败中，为什么失败？<br />　 　注：我试图增加一个主分区，看来是失败了，为什么失败？因为我们看到主分区+扩展分区把整个磁盘都用光了，看扩展分区的End的值，再看一下  p输出信息中有125 cylinders；最好还是看前面部份；那里有提到；所以我们只能增加逻辑分区了； Command (m for  help): n<br />　　Command action<br />　　l logical (5 or over)<br />　　p primary partition (1-4)<br />　　l 注：在这里输入l，就进入划分逻辑分区阶段了；<br />　　First cylinder (51-125, default 51): 注：这个就是分区的Start 值；这里最好直接按回车，如果您输入了一个非默认的数字，会造成空间浪费；<br />　　<a target="_blank" href="http://baike.soso.com/v7648488.htm?ch=ch.bk.innerlink">Using</a> default value 51<br />　　<a target="_blank" href="http://baike.soso.com/v1772755.htm?ch=ch.bk.innerlink">Last</a>  cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M  注：这个是定义分区大小的，+200M 就是大小为200M ；当然您也可以根据p提示的单位cylinder的大小来算，然后来指定  End的数值。回头看看是怎么算的；还是用+200M这个办法来添加，这样能直观一点。如果您想添加一个10G左右大小的分区，请输入 +10000M ；<br />　　Command (m for help):<br />　　<span style="background-color: yellow;">5、通过fdisk的t指令指定分区类型；</span><br />　　Command (m for help): t 注：通过t来指定分区类型；<br />　　Partition number (1-6): 6 注：要改变哪个分区类型呢？我指定了6，其实也就是sda6<br />　　<a target="_blank" href="http://baike.soso.com/v7676846.htm?ch=ch.bk.innerlink">Hex</a> code (type L to list codes):L 注：在这里输入L，就可以查看分区类型的id了；<br />　　Hex code (type L to list codes): b 注：如果我想让这个分区是 W95 FAT32 类型的，通过L查看得知 b是表示的是，所以输入了b；<br />　　Changed system type of partition 6 to b (W95 FAT32) 注：系统信息，改变成功；是否是改变了，请用p查看；<br />　　Command (m for help): p<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)<br />　　/dev/sda2 26 125 806400 5 Extended<br />　　/dev/sda5 26 50 201568+ 83 Linux<br />　　/dev/sda6 51 75 201568+ b W95 FAT32<br />　　<span style="background-color: yellow;">6、fdisk 的退出，用q或者 w；</span><br />　　其中 q是 不保存退出，w是保存退出； Command (m for help): w<br />　　或 <br />　　Command (m for help): q<br />　　<span style="background-color: yellow;">7、一个添加分区的例子；</span><br />　　本例中我们会添加两个200M的主分区，其它为扩展分区，在扩展分区中我们添加两个200M大小的逻辑分区； Command (m for help): p 注：列出分区表；<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　Command (m for help): n 注：添加分区；<br />　　Command action<br />　　e extended<br />　　p primary partition (1-4)<br />　　p 注：添加主分区；<br />　　Partition number (1-4): 1 注：添加主分区1；<br />　　First cylinder (1-125, default 1): 注：直接回车，主分区1的起始位置；默认为1,默认就好；<br />　　Using default value 1<br />　　Last cylinder or +size or +sizeM or +sizeK (1-125, default 125): +200M 注：指定分区大小，用+200M来指定大小为200M<br />　　Command (m for help): n 注：添加新分区；<br />　　Command action<br />　　e extended<br />　　p primary partition (1-4)<br />　　p 注：添加主分区<br />　　Partition number (1-4): 2 注：添加主分区2；<br />　　First cylinder (26-125, default 26):<br />　　Using default value 26<br />　　Last cylinder or +size or +sizeM or +sizeK (26-125, default 125): +200M 注：指定分区大小，用+200M来指定大小为200M<br />　　Command (m for help): n<br />　　Command action<br />　　e extended<br />　　p primary partition (1-4)<br />　　e 注：添加扩展分区；<br />　　Partition number (1-4): 3 注：指定为3 ，因为主分区已经分了两个了，这个也算主分区，从3开始；<br />　　First cylinder (51-125, default 51): 注：直接回车；<br />　　Using default value 51<br />　　Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): 注：直接回车，把其余的所有空间都给扩展分区；<br />　　Using default value 125<br />　　Command (m for help): p<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ 83 Linux<br />　　/dev/sda2 26 50 201600 83 Linux<br />　　/dev/sda3 51 125 604800 5 Extended<br />　　Command (m for help): n<br />　　Command action<br />　　l logical (5 or over)<br />　　p primary partition (1-4)<br />　　l 注：添加逻辑分区；<br />　　First cylinder (51-125, default 51):<br />　　Using default value 51<br />　　Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注：添加一个大小为200M大小的分区；<br />　　Command (m for help): n<br />　　Command action<br />　　l logical (5 or over)<br />　　p primary partition (1-4)<br />　　l 注：添加一个逻辑分区；<br />　　First cylinder (76-125, default 76):<br />　　Using default value 76<br />　　Last cylinder or +size or +sizeM or +sizeK (76-125, default 125): +200M 注：添加一个大小为200M大小的分区；<br />　　Command (m for help): p 列出分区表；<br />　　Disk /dev/sda: 1035 MB, 1035730944 bytes<br />　　256 heads, 63 sectors/track, 125 cylinders<br />　　Units = cylinders of 16128 * 512 = 8257536 bytes<br />　　Device Boot Start End Blocks Id System<br />　　/dev/sda1 1 25 201568+ 83 Linux<br />　　/dev/sda2 26 50 201600 83 Linux<br />　　/dev/sda3 51 125 604800 5 Extended<br />　　/dev/sda5 51 75 201568+ 83 Linux<br />　　/dev/sda6 76 100 201568+ 83 Linux<br />　　然后我们根据前面所说通过t指令来改变分区类型；最后不要忘记w保存退出； <br />　　<span style="color: red;">五、对分区进行格式化，以及加载;</span><br />　　先提示一下；用 mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.<a target="_blank" href="http://baike.soso.com/v601465.htm?ch=ch.bk.innerlink">ext3</a> mkfs.minix mkfs.reiserfs mkfs.xfs 等命令来格式化分区，比如我想格式化 sda6为ext3文件系统，则输入； [root@localhost beinan]# mkfs.ext3 /dev/sda6<br />　　如果我想加载 sda6到目前系统来存取文件，应该有mount 命令，但首先您得建一个挂载目录；比如 /mnt/sda6 ； [root@localhost beinan]# mkdir /mnt/sda6<br />　　[root@localhost beinan]# mount /dev/sda6 /mnt/sda6<br />　　[root@localhost beinan]# df -lh<br />　　<a target="_blank" href="http://baike.soso.com/v1272893.htm?ch=ch.bk.innerlink">Filesystem</a> 容量 已用 可用 已用% 挂载点<br />　　/dev/hda8 11G 8.4G 2.0G 81% /<br />　　/dev/shm 236M 0 236M 0% /dev/shm<br />　　/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10<br />　　/dev/sda6 191M 5.6M 176M 4% /mnt/sda6<br />　　这样我们就能进入 /mnt/sda6目录，然后存取文件了；具体的权限方法，以及mount 更详细的用法，在以后我会专门写一个帖子；在一帖中放下所有的内容实在有点为难；<br />　　<strong>鲜为人知的FDISK命令参数</strong><br />　 　相信大家对FDISK已经非常熟悉了，虽然FDISK有英文界面或不支持大容量硬盘分区等缺点，但是FDISK仍然是许多电脑爱好者的首选分区程序。鉴 于分区操作是对磁盘结构的重新划分，具有一定的危险性，所以该程序的全部参数开关并没有全部公布出来，造成FDISK的功能在一定程度上受到了限制。笔者 通过长期的资料收集和实践，得到了一部分关于FDISK的未公开参数开关，在此介绍给大家，希望朋友们能更好地利用FDISK。<br />　　FDISK程序的命令行格式通用语法为：FDISK ／参数开关，下面是它们的具体功能说明：<br />　　／ACTOK<br />　　参数功能：不检查磁盘表面是否有坏扇区。它可以在硬盘分区时不检测磁盘表面是否有坏区，直接进行分区。<br />　　／CMBR<br />　　参数功能：重新建立指定磁盘的主引导记录功能说明。其操作等同于／MBR参数，不同之处是可以指定磁盘。<br />　　／EXT<br />　　参数功能：在当前磁盘上建立扩展分区（用来随后建立逻辑磁盘分区）。<br />　　／FPRMT<br />　 　参数功能：在交互模式下询问FAT16或FAT32的使用。当加上／FPRMT参数时不会出现是否支持大容量硬盘的询问画面，而是在每次建立一个新的分 区时询问使用FAT16还是FAT32格式，这样我们就可以更自由地划分每一个盘的格式，当然现在不是很实用了，所以大家看过就是。<br />　　／LOG<br />　　参数功能：建立磁盘逻辑分区，用／<a target="_blank" href="http://baike.soso.com/v102518.htm?ch=ch.bk.innerlink">LOG</a>来建立逻辑磁盘，／LOG必须和／<a target="_blank" href="http://baike.soso.com/v4934579.htm?ch=ch.bk.innerlink">EXT</a>同时使用。<br />　　／LOGO<br />　　参数功能：使用FAT16格式建立磁盘逻辑分区。<br />　　／MBR<br />　　参数功能：重新建立主磁盘的主引导记录（Master Boot Record）。卸载WindowsNT或Windows2000后消除在主引导记录上记载的系统启动选择；当有病毒感染主引导记录时，用来清除病毒相当有效。<br />　　／PRI<br />　　参数功能：在磁盘上建立主分区，分区会自动被设定为激活形式。<br />　　／PRIO<br />　　参数功能：使用FAT16格式建立主分区并设定为激活形式。<br />　　／Q<br />　　参数功能：使用／Q参数将不用在改变分区表后重新启动计算机，这也是一项比较实用的功能，如果大家还需要在运行FDISK之后运行别的软件，记住用这个参数。<br />　　／STATUS<br />　　参数功能：当磁盘扩展分区上没有进行逻辑分区时，扩展分区不会被显示出来。<br />　　／X<br />　　参数功能：使用／X参数将不会产生带有LBA属性的分区。<br />　　这些参数中又以／<a target="_blank" href="http://baike.soso.com/v581193.htm?ch=ch.bk.innerlink">ACT</a>OK，／MBR，／Q 这几个最常用和实用。总的来讲，这些参数会让FDISK程序更全面，但是这些隐藏参数的危险系数也很大，诸位还是要谨慎使用</dd></dl><img src ="http://www.cppblog.com/tdweng/aggbug/146853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2011-05-21 10:18 <a href="http://www.cppblog.com/tdweng/articles/146853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gcc命令项</title><link>http://www.cppblog.com/tdweng/articles/143912.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Mon, 11 Apr 2011 01:55:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/143912.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/143912.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/143912.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/143912.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/143912.html</trackback:ping><description><![CDATA[<style type="text/css">h4 { margin-top: 0.04cm; margin-bottom: 0.04cm; page-break-inside: avoid; }h4.western { font-family: "Arial",sans-serif; font-size: 14pt; font-weight: normal; }h4.cjk { font-family: "黑体","SimHei"; font-size: 14pt; font-style: normal; font-weight: normal; }h4.ctl { font-family: "DejaVu Sans"; font-size: 14pt; }p { margin-bottom: 0.21cm; }</style>
<p style="margin-bottom: 0cm;" align="CENTER"><font face="宋体, SimSun"><font size="4"><strong>linux</strong></font></font><font size="4"><strong>下使用</strong></font><font face="宋体, SimSun"><font size="4"><strong>gcc</strong></font></font><font size="4"><strong>命令编译代码</strong></font></p>
<p style="text-indent: 0.74cm; margin-bottom: 0cm;"><font size="3">初学时最好从命令行入手，这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用</font><font face="宋体, SimSun"><font size="3">vi/vim(</font></font><font size="3">个人觉得</font><font face="宋体, SimSun"><font size="3">vim</font></font><font size="3">比</font><font face="宋体, SimSun"><font size="3">vi</font></font><font size="3">好用</font><font face="宋体, SimSun"><font size="3">)</font></font><font size="3">或其它编辑器编写。编译则使用</font><font face="宋体, SimSun"><font size="3">gcc</font></font><font size="3">命令。要往下学习首先就得熟悉</font><font face="宋体, SimSun"><font size="3">gcc</font></font><font size="3">命令的用法。</font></p>
<p style="margin-bottom: 0cm;">
<font face="宋体, SimSun"><font size="3">gcc</font></font><font size="3">命令提供了非常多的命令选项，但并不是所有都要熟悉，初学时掌握几个常用的就可以了，到后面再慢慢学习其它选项，免得因选项太多而打击了学习的信心。</font></p>
<h4 class="cjk">一<font face="Arial, sans-serif">. </font>常用编译命令选项</h4>
<p style="margin-bottom: 0cm;"><font size="3">假设源程序文件名为</font><font face="宋体, SimSun"><font size="3">test.c</font></font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">1.
</font></font><font size="3">无选项编译链接</font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="DejaVu Serif, serif"><font face="宋体, SimSun"><font size="3">#gcc
test.c</font></font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将</font><font face="宋体, SimSun"><font size="3">test.c</font></font><font size="3">预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件，默认输出为</font><font face="宋体, SimSun"><font size="3">a.out</font></font><font size="3">。编译成功后可以看到生成了一个</font><font face="宋体, SimSun"><font size="3">a.out</font></font><font size="3">的文件。在命令行输入</font><font face="宋体, SimSun"><font size="3">./a.out
</font></font><font size="3">执行程序。</font><font face="宋体, SimSun"><font size="3">./</font></font><font size="3">表示在当前目录，</font><font face="宋体, SimSun"><font size="3">a.out</font></font><font size="3">为可执行程序文件名。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">2.
</font></font><font size="3">选项 </font><font face="宋体, SimSun"><font size="3">-o</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
test.c -o test</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将</font><font face="宋体, SimSun"><font size="3">test.c</font></font><font size="3">预处理、汇编、编译并链接形成可执行文件</font><font face="宋体, SimSun"><font size="3">test</font></font><font size="3">。</font><font face="宋体, SimSun"><font size="3">-o</font></font><font size="3">选项用来指定输出文件的文件名。输入</font><font face="宋体, SimSun"><font size="3">./test</font></font><font size="3">执行程序。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">3.
</font></font><font size="3">选项 </font><font face="宋体, SimSun"><font size="3">-E</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
-E test.c -o test.i</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将</font><font face="宋体, SimSun"><font size="3">test.c</font></font><font size="3">预处理输出</font><font face="宋体, SimSun"><font size="3">test.i</font></font><font size="3">文件。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">4.
</font></font><font size="3">选项 </font><font face="宋体, SimSun"><font size="3">-S</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
-S test.i </font></font>
</p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将预处理输出文件</font><font face="宋体, SimSun"><font size="3">test.i</font></font><font size="3">汇编成</font><font face="宋体, SimSun"><font size="3">test.s</font></font><font size="3">文件。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">5.
</font></font><font size="3">选项 </font><font face="宋体, SimSun"><font size="3">-c</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
-c test.s</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将汇编输出文件</font><font face="宋体, SimSun"><font size="3">test.s</font></font><font size="3">编译输出</font><font face="宋体, SimSun"><font size="3">test.o</font></font><font size="3">文件。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">6.
</font></font><font size="3">无选项链接</font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
test.o -o test</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将编译输出文件</font><font face="宋体, SimSun"><font size="3">test.o</font></font><font size="3">链接成最终可执行文件</font><font face="宋体, SimSun"><font size="3">test</font></font><font size="3">。输入</font><font face="宋体, SimSun"><font size="3">./test</font></font><font size="3">执行程序。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">7.
</font></font><font size="3">选项</font><font face="宋体, SimSun"><font size="3">-O</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
-O1 test.c -o test</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：使用编译优化级别</font><font face="宋体, SimSun"><font size="3">1</font></font><font size="3">编译程序。级别为</font><font face="宋体, SimSun"><font size="3">1~3</font></font><font size="3">，级别越大优化效果越好，但编译时间越长。输入</font><font face="宋体, SimSun"><font size="3">./test</font></font><font size="3">执行程序。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">8.</font></font><font size="3">编译使用</font><font face="宋体, SimSun"><font size="3">C++
std</font></font><font size="3">库的程序</font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
test.cpp -o test -lstdc++</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将</font><font face="宋体, SimSun"><font size="3">test.cpp</font></font><font size="3">编译链接成</font><font face="宋体, SimSun"><font size="3">test</font></font><font size="3">可执行文件。</font><font face="宋体, SimSun"><font size="3">-lstdc++</font></font><font size="3">指定链接</font><font face="宋体, SimSun"><font size="3">std
c++</font></font><font size="3">库。</font></p>
<h4 class="cjk">二<font face="Arial, sans-serif">. </font>多源文件的编译方法</h4>
<p style="margin-bottom: 0cm;"><font size="3">如果有多个源文件，基本上有两种编译方法：</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">[</font></font><font size="3">假设有两个源文件为</font><font face="宋体, SimSun"><font size="3">test.c</font></font><font size="3">和</font><font face="宋体, SimSun"><font size="3">testfun.c]</font></font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">1.
</font></font><font size="3">多个文件一起编译</font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">用法：</font><font face="宋体, SimSun"><font size="3">#gcc
testfun.c test.c -o test</font></font></p>
<p style="margin-left: 0.74cm; margin-bottom: 0cm;"><font size="3">作用：将</font><font face="宋体, SimSun"><font size="3">testfun.c</font></font><font size="3">和</font><font face="宋体, SimSun"><font size="3">test.c</font></font><font size="3">分别编译后链接成</font><font face="宋体, SimSun"><font size="3">test</font></font><font size="3">可执行文件。</font></p>
<p style="margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">2.
</font></font><font size="3">分别编译各个源文件，之后对编译后输出的目标文件链接。</font></p>
<p style="margin-bottom: 0cm;"><font size="3">用法：</font></p>
<p style="margin-left: 0.37cm; margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">#gcc
-c testfun.c //</font></font><font size="3">将</font><font face="宋体, SimSun"><font size="3">testfun.c</font></font><font size="3">编译成</font><font face="宋体, SimSun"><font size="3">testfun.o</font></font></p>
<p style="margin-left: 0.37cm; margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">#gcc
-c test.c    //</font></font><font size="3">将</font><font face="宋体, SimSun"><font size="3">test.c</font></font><font size="3">编译成</font><font face="宋体, SimSun"><font size="3">test.o</font></font></p>
<p style="margin-left: 0.37cm; margin-bottom: 0cm;"><font face="宋体, SimSun"><font size="3">#gcc
-o testfun.o test.o -o test //</font></font><font size="3">将</font><font face="宋体, SimSun"><font size="3">testfun.o</font></font><font size="3">和</font><font face="宋体, SimSun"><font size="3">test.o</font></font><font size="3">链接成</font><font face="宋体, SimSun"><font size="3">test</font></font></p>
<p style="text-indent: 0.37cm; margin-bottom: 0cm;"><font size="3">以上两种方法相比较，第一中方法编译时需要所有文件重新编译，而第二种方法可以只重新编译修改的文件，未修改的文件不用重新编译。</font></p><img src ="http://www.cppblog.com/tdweng/aggbug/143912.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2011-04-11 09:55 <a href="http://www.cppblog.com/tdweng/articles/143912.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的学习笔记 －－Ubuntu8.10下jdk与tomcat的安装设置 </title><link>http://www.cppblog.com/tdweng/articles/116639.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Fri, 28 May 2010 12:29:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/116639.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/116639.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/116639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/116639.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/116639.html</trackback:ping><description><![CDATA[<font size="4">由于学习的需要，今天终于把tomcat安装成功了。。虽说不是很难，但也是我上网查资料努力了不少时间的结果呀。。先表扬自己一下，，<img  src="http://zerowang.blog.51cto.com/editor/icons/etc_17.gif" onclick="'window.open("http://blog.51cto.com/viewpic.php?refimg="" + this.src)' http:="" blog.51cto.com="" viewpic.php?refimg=" + this.src)" alt="" border="0"><img  src="http://zerowang.blog.51cto.com/editor/icons/etc_17.gif" onclick="'window.open("http://blog.51cto.com/viewpic.php?refimg="" + this.src)' http:="" blog.51cto.com="" viewpic.php?refimg=" + this.src)" alt="" border="0"><br><br>现在开始介绍一下安装过程吧。。<br><br>1，jdk和jre的安装<br>打开终端，执行以下命令，或使用《新立得软件管理器》，在其中分别搜索&#8220;sun-java6-jre&#8220;和&#8220;sun-java6-jdk&#8221;并标记安装。<br>  <font style="background-color: #ffff00;">sudo apt-get install sun-java6-jre</font><br>  # 如果空间富裕，建议安装一个JDK。呵呵<br> <font style="background-color: #ffff00;"><font size="4">sudo apt-get install sun-java6-jdk</font> </font> <br>设置当前默认的java解释器<br></font>  <font style="background-color: #ffff00;" size="4">sudo update-alternatives －－config java</font><font size="4"><br>  执行后会出现类似如下的画面:<br>  There are 4 alternatives which provide `java&#8217;.<br><br>  Selection&nbsp;&nbsp;&nbsp;  Alternative<br>  ———————————————&#8211;<br>  1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/lib/jvm/java-gcj/jre/bin/java<br>  2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/bin/gij-wrapper-4.1<br>  3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/bin/gij-wrapper-4.0<br>  4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/lib/jvm/java-6-sun/jre/bin/java<br>  Press enter to keep the default<br><br>  or type selection number:<br><br>  输入 有包含 &#8220;sun&#8221; 的行的前面的数字。如上面显示，则输入 4，然后回车确定。<br><span style="color: #ff0000;">注</span>：如果你只有一个程序提供 java（比如我啦！！）那这一步命令就可以省略了。。当然，即使写了这个命令他也会提示你只有一个的。<br><br>2，设置JAVA_HOME变量（网上有好多种，但我只有下面一种设置成功了）<br>编辑catalina.sh， 执行命令如下：<br></font>      <font style="background-color: #ffff00;" size="4">sudo vi /usr/share/tomcat5/apache-tomcat-5.5.27/bin/catalina.sh</font><font size="4"><br>修改catalina.sh文件，在文件开头注释后插入<br><br></font><font style="background-color: #ffff00;" size="4">JAVA_HOME="/usr/lib/jvm/java/jdk1.6.0_12"</font><font size="4"><br>我是在 # OS specific support.&nbsp; $var _must_ be set to either true or false.&nbsp; 这句话后面另起一行添加的。<br><br>3，安装tomcat5.5<br><br><span class="postbody"><font style="background-color: #ffff00;">apt-get install tomcat5.5
</font><br> 如果你要和apache2整合，可以把mod_jk安装上。
<br> <font style="background-color: #ffff00;"><span class="postbody">apt-get install libapache2-mod-jk</span></font></span><br><br>4 ,启动tomcat<br>执行：<br><span class="postbody"> <font style="background-color: #ffff00;"><span class="postbody">sudo /usr/share/tomcat5.5/bin/startup.sh</span></font></span><br>如果能看到下列提示，就表明启动成功了！ <br> Using CATALINA_BASE:&nbsp;&nbsp; /usr/share/tomcat5.5<br>Using CATALINA_HOME:&nbsp;&nbsp; /usr/share/tomcat5.5<br>Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp<br>Using JRE_HOME:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/lib/jvm/java-6-sun<br><br>5 ，关闭tomcat<br>执行：<br></font><font style="background-color: #ffff00;" size="4">&nbsp;sudo /usr/share/tomcat5.5/bin/shutdown.sh</font><font size="4"><br>&nbsp;如果能看到下列提示，就表明关闭成功了！ <br>Using CATALINA_BASE:&nbsp;&nbsp; /usr/share/tomcat5.5<br>Using CATALINA_HOME:&nbsp;&nbsp; /usr/share/tomcat5.5<br>Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp<br>Using JRE_HOME:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/lib/jvm/java-6-sun</font><br><span style="color: #ff0000;">注意</span>：上面各步的路径可能会不同，需要以自己系统的路径为准。。<br><img src ="http://www.cppblog.com/tdweng/aggbug/116639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2010-05-28 20:29 <a href="http://www.cppblog.com/tdweng/articles/116639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu下vim配置使用</title><link>http://www.cppblog.com/tdweng/articles/113026.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Mon, 19 Apr 2010 14:56:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/113026.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/113026.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/113026.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/113026.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/113026.html</trackback:ping><description><![CDATA[vim比vi的功能强多了，也好用多了。一直就用vim。<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp;配置vim<br>
注:只对各个用户在自己的当前目录下的.vimrc修改的话，修改内容只对本用户有效,要想全部有效，可以修改/etc/vim/vimrc.<br>
1.apt-get install vim-full<br>
2.设置/etc/vim/vimrc加上下面语句:<br>
"语法高亮度显示<br>
&nbsp;&nbsp;syntax on<br>
"去掉有关vi一致性模式，避免以前版本的一些bug和局限<br>
&nbsp;&nbsp;set nocompatible<br>
"显示行号<br>
&nbsp;&nbsp;set number<br>
"检测文件的类型<br>
&nbsp;&nbsp;filetype on<br>
"记录历史的行数<br>
&nbsp;&nbsp;set history=1000<br>
"背景使用黑色<br>
&nbsp;&nbsp;set background=dark<br>
"vim使用自动对起，也就是把当前行的对起格式应用到下一行<br>
&nbsp;&nbsp;set autoindent<br>
"依据上面的对起格式，智能的选择对起方式，对于类似C语言编<br>
&nbsp;&nbsp;set smartindent<br>
"设置Windows风格的C/C++自动缩进,第一行设置tab键为4个空格，第二行设置当行之间交错时使用4个空格<br>
&nbsp;&nbsp;set tabstop=4<br>
&nbsp;&nbsp;set shiftwidth=4<br>
"设置匹配模式，类似当输入一个左括号时会匹配相应的那个右括号<br>
&nbsp;&nbsp;set showmatch<br>
"去除vim的GUI版本中的toolbar<br>
&nbsp;&nbsp;set guioptions-=T<br>
"在编辑过程中，在右下角显示光标位置的状态行<br>
&nbsp;&nbsp;set ruler<br>
"默认情况下，寻找匹配是高亮度显示的，该设置关闭高亮显示<br>
&nbsp;&nbsp;set nohls<br>
"使用此设置会快速找到答案，当你找要匹配的单词时，别忘记回车<br>
&nbsp;&nbsp;set incsearch<br>
"如果没有下列行，加上吧<br>
&nbsp;&nbsp;if &amp;term=="xterm"<br>
&nbsp;&nbsp;set t_Co=8<br>
&nbsp;&nbsp;set t_Sb=^[[4%dm<br>
&nbsp;&nbsp;set t_Sf=^[[3%dm<br>
&nbsp;&nbsp;endif<br>
&nbsp;&nbsp;系统的一些设置(包括终端下的颜色，ls命令,vi等)<br>
&nbsp; &nbsp; 注:只对各个用户在自己的当前目录下的.vimrc修改的话，修改内容只对本用户有效,要想全部有效，可以修改/etc/bash.bashrc<br>
&nbsp; &nbsp;&nbsp; &nbsp; 使用alias命令修改之<br>
&nbsp;&nbsp;将其中的与颜色有关的设置改为：<br>
&nbsp; &nbsp;# enable color support of ls and also add handy aliases<br>
&nbsp; &nbsp;if [ "$TERM" != "dumb" ] &amp;&amp; [ -x /usr/bin/dircolors ]; then<br>
&nbsp; &nbsp;&nbsp; &nbsp;eval "`dircolors -b`"<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias ls='ls --color=auto'<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias vi='vim'<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias ll='ls -l --color=auto'<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias dir='ls --color=auto --format=vertical'<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias vdir='ls --color=auto --format=long'<br>
<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias grep='grep --color=auto'<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias fgrep='fgrep --color=auto'<br>
&nbsp; &nbsp;&nbsp; &nbsp;alias egrep='egrep --color=auto'<br>
&nbsp;&nbsp;fi<br>
&nbsp;&nbsp;增加命令:<br>
&nbsp; &nbsp;# some more ls aliases<br>
&nbsp; &nbsp;alias ll='ls -l'<br>
&nbsp; &nbsp;alias la='ls -A'<br>
&nbsp; &nbsp;alias l='ls -CF'<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; <br>
vi(m)用法<br>
&nbsp; &nbsp;&nbsp;&nbsp;vi 是 Linux/Unix 世界里极为普遍的全屏幕文本编辑器，<br>
几乎可以说任何一台 Linux/Unix 机器都会提供这个软件。<br>
&nbsp; &nbsp;&nbsp;&nbsp;vi 有三种状态，即编辑方式、插入方式和命令方式。<br>
在命令方式下，所有命令都要以:开始，所键入的字符系统均作命令来处理，<br>
如:q 代表退出，:w 表示存盘。<br>
&nbsp; &nbsp;&nbsp;&nbsp;当你进入vi 时，会首先进入命令方式（同时也是编辑方式）。<br>
按下I就进入插入方式，用户输入的可视字符都添加到文件中，显示在屏幕上。<br>
按下ESC就可以回到命令状态（同时也是编辑方式）。<br>
编辑方式和命令方式类似，都是要输入命令，<br>
但它的命令不要以:开始，它直接接受键盘输入的单字符或组合字符命令，<br>
例如直接按下u 就表示取消上一次对文件的修改，相当于WINDOWS 下的Undo 操作。<br>
编译方式下有一些命令是要以/开始的，<br>
例如查找字符串就是：/string 则在文件中匹配查找string 字符串。<br>
在编辑模式下按下:就进入命令方式。<br>
基本命令解释：<br>
1．光标命令<br>
k、j、h、l——上、下、左、右光标移动命令。 <br>
虽然您可以在Linux 中使用键盘右边的4 个光标键，<br>
但是记住这4 个命令还是非常有用的。这4 个键正是右手在键盘上放置的基本位置。<br>
nG——跳转命令。n 为行数，该命令立即使光标跳到指定行。<br>
Ctrl+G——光标所在位置的行数和列数报告。<br>
w、b——使光标向前或向后跳过一个单词。<br>
2．编辑命令<br>
i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。<br>
cw 、dw—— 改变( 置换)/删除光标所在处的单词的命令 (c=change 、d=delete)。<br>
x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。<br>
3．查找命令<br>
---- /string、?string——从光标所在处向后或向前查找相应的字符串的命令。<br>
4．拷贝复制命令<br>
---- yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。<br>
常用操作：<br>
无论是开启新档或修改旧文件，都可以使用vi，所需指令为：<br>
&nbsp;&nbsp;$ vi filemane<br>
如果文件是新的，就会在荧幕底部看到一个信息，告诉用户正在创建新文件。<br>
如果文件早已存在，vi 则会显示文件的首廿四行， 用户可再用光标（cursor）上下移动。<br>
～<br>
～<br>
上面是一个经vi 开启的模拟文件，一行开始处的波折号（～）表示文件的结尾。<br>
—指令i 在光标处插入正文<br>
—指令I 在一行开始处插入正文<br>
—指令a 在光标後追加正文<br>
—指令A 在行尾追加正文<br>
—指令o 在光标下面新开一行<br>
—指令O 在光标上面新开一行<br>
在插入方式下，不能打入指令，必需先按〈Esc〉键，返回命令方式。<br>
假若户不知身处何态，也可以按〈Esc〉键，不管处於何态，都会返回命令方式。<br>
在修改文件时，如何存档及退出指定文件都非常重要。在vi 内，行使存档或退出的指令时，<br>
要先按冒号（:），改变为命令方式，用户就可以看见在荧幕左下方，出现冒号（:），<br>
显示vi 已经改为指 令态，可以进行存档或退出等工作。<br>
:q!放弃任何改动而退出vi，也就是强行退出<br>
:w 存档<br>
:w! 对于只读文件强行存档<br>
:wq 存档并退出vi<br>
:x 与wq 的工作一样<br>
:zz 与wq 的工作一样删除正文<br>
删除或修改正文都是利用编辑方式，故此，下面所提及的指令只需在编辑方式下，<br>
直接键入指令即行。<br>
—x 删除光标处字符（Character）<br>
—nx 删除光标处後n 个字符<br>
—nX 删除光标处前n 个字符<br>
—ndw 删除光标处下n 个单词（word）<br>
—dd 删除整行<br>
—d$或D 删除由光标至该行最末<br>
—u 恢复前一次所做的删除<br>
当使用vi 修改正文，加减字符时，就会采用另一组在编辑方式下操作的指令。<br>
— r char 由char 代替光标处的字符<br>
—Rtext〈Esc〉由text 代替光标处的字符<br>
—cwtext〈Esc〉由text 取代光标处的单词 <br>
—Ctext〈Esc〉由text 取代光标处至该行结尾处<br>
—cc 使整行空白，但保留光标位置，让你开始打入<br>
—如删除指令一样，在指令前打入的数，表示执行该指令多少次。<br>
<br>
要检索文件，必需在编辑方式下进行。<br>
—／str〈Return〉向前搜寻str 直至文件结尾处<br>
—?str〈Return〉往後搜寻str 直至文件开首处<br>
—n 同一方向上重复检索<br>
—N 相反方向上重复检索<br>
—vi 缠绕整个文件，不断检索，直至找到与模式相匹配的下一个出现。<br>
全程替换命令：<br>
:%s/string1/string2/g 在整个文件中替换&#8220;string1&#8221;成&#8220;string2&#8221;。<br>
如果要替换文件中的路径：<br>
使用命令&#8220;:%s#/usr/bin#/bin#g&#8221;可以把文件中所有路径/usr/bin 换成/bin。<br>
也可以使用命令&#8220;:%s/\/usr\/bin/\/bin/g&#8221;实现，其中&#8220;\&#8221;是转义字符，表明其后的&#8220;/&#8221;字符是具有实际意义的字符，不是分隔符。<br>
<br>
同时编辑2 个文件，拷贝一个文件中的文本并粘贴到另一个文件中：<br>
命令如下：<br>
---- vi file1 file2<br>
---- yy 在文件1 的光标处拷贝所在行<br>
---- :n 切换到文件2 (n=next) 或者按ctrl+ww，就在两个文件间切换。<br>
---- p 在文件2 的光标所在处粘贴所拷贝的行<br>
---- :n 切换回文件1 （Ctrl +WW 也可实现切换）<br>
<br>
将文件中的某一部分修改保存到临时文件，<br>
例如仅仅把第20～59 行之间的内容存盘成文件/tmp/1，我们可以键入如下命令。<br>
---- vi file<br>
---- :20,59w /tmp/1<br>
<br>
如果要在 vi 执行期间，转到shell 执行，使用惊叹号（!）执行系统指令，<br>
例如在vi 期间，列出当前目录内容，可以键入 ：<br>
:!ls<br>
另一方面，用户可以在主目录中创建.exrc 环境文件，用set 打入选项，<br>
每次调用vi 时，就会读入.exrc 中的指令与设置。下面是.exrc 环境文件的实例：<br>
set wrapmarging＝8<br>
set showmode<br>
set autoindent <img src ="http://www.cppblog.com/tdweng/aggbug/113026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2010-04-19 22:56 <a href="http://www.cppblog.com/tdweng/articles/113026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>