Linux中fdisk详解

Linux中fdisk详解
Linux中fdisk详解

实例解说Linux中fdisk分区使用方法

一、fdisk 的介绍 (2)

二、合理规划硬盘分区 (2)

三、fdisk -l 查看硬盘及分区信息 (2)

1、通过fdisk -l 查看机器所挂硬盘个数及分区情况 (2)

2、关于fdisk -l 一些数值的说明 (3)

3、估算一个存储设备是否被完全划分 (4)

四、fdisk命令说明 (5)

1、fdisk 的说明 (5)

2、列出当前操作硬盘的分区情况,用p (5)

3、通过fdisk的d指令来删除一个分区 (5)

4、通过fdisk的n指令增加一个分区 (6)

5、通过fdisk的t指令指定分区类型 (7)

6、fdisk 的退出,用q或者w (7)

7、一个添加分区的例子; (7)

五、对分区进行格式化,以及加载 (9)

一、fdisk 的介绍

fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;其实就是分区工具

fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux 、fat32、linux 、linux swap 、fat16 以及其实类Unix类操作系统的文件系统等;当然我们用fdisk 对磁盘操作分区时,并不是一个终点,我们还要对分区进行格式化所需要的文件系统;这样一个分区才能使用;这和DOS中的fdisk 是类似的。

二、合理规划硬盘分区

在操作分区之前,我们要明白硬盘分区一点理论,比如硬盘容量和分区大小的计算;对一个硬盘如何规划分区等。

三、fdisk -l 查看硬盘及分区信息

我们知道主分区(包括扩展分区)的总个数不能超过四个;也不能把扩展分区包围在主分区之间;根据这个原则,我们划分硬盘分区就比较容易的多;也能为以后减少不必要的麻烦

1、通过fdisk -l 查看机器所挂硬盘个数及分区情况

[root@localhost root]# fdisk –l

Disk /dev/hda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hda1 * 1 765 6144831 7 HPFS/NTFS

/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)

/dev/hda3 2806 9729 55617030 5 Extended

/dev/hda5 2806 3825 8193118+ 83 Linux

/dev/hda6 3826 5100 10241406 83 Linux

/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris

/dev/hda8 5199 6657 11719386 83 Linux

/dev/hda9 6658 7751 8787523+ 83 Linux

/dev/hda10 7752 9729 15888253+ 83 Linux

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)

/dev/sda2 26 125 806400 5 Extended

/dev/sda5 26 50 201568+ 83 Linux

/dev/sda6 51 76 200781 83 Linux

通过上面的信息,我们知道此机器中挂载两个硬盘(或移动硬盘),其中一个是hda 另一个是sda ;如果我们想查看单个硬盘情况,可以通过fdisk -l /dev/hda1 或者fdisk -l /dev/sda1 来操作;以fdisk -l 输出的硬盘标识为准

其中hda有三个主分区(包括扩展分区),分别是主分区hda1、hda2 和hda3(扩

展分区);逻辑分区是hda5到hda10

其中sda 有两个主分区(包括扩展分区),分别是hda1 和hda2 (扩展分区);逻辑分区是sda5 hda6

硬盘总容量=主分区(包括扩展分区)总容量

扩展分区容量=逻辑分区总容量

通过上面的例子,我们可以得知hda=hda1+hda2+hda3,其中hda3=hda5+hda6+hda7+hda8+hda9+hda10。

2、关于fdisk -l 一些数值的说明

Disk /dev/hda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

这个硬盘是80G的,有255个磁面;63个扇区;9729个磁柱;每个cylinder(磁柱)的容量是8225280 bytes=8225.280 K(约为)=8.225280M(约为);

分区序列引导开始终止容量分区类型ID 分区类型

Device Boot Start End Blocks Id System

/dev/hda1 * 1 765 6144831 7 HPFS/NTFS

/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)

/dev/hda3 2806 9729 55617030 5 Extended

/dev/hda5 2806 3825 8193118+ 83 Linux

/dev/hda6 3826 5100 10241406 83 Linux

/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris

/dev/hda8 5199 6657 11719386 83 Linux

/dev/hda9 6658 7751 8787523+ 83 Linux

/dev/hda10 7752 9729 15888253+ 83 Linux

说明:

硬盘分区的表示:在Linux 是通过hd*x 或sd*x 表示的,其中* 表示的是a、b、c …… …… x表示的数字1、2、3 …… …… hd大多是IDE硬盘;sd大多是SCSI或移动存储;

引导(Boot):表示引导分区,在上面的例子中hda1 是引导分区;

Start (开始):表示的一个分区从X cylinder(磁柱)开始;

End (结束):表示一个分区到Y cylinder(磁柱)结束;

id和System 表示的是一个意思,id看起来不太直观,我们要在fdisk 一个分区时,通过指定id来确认分区类型;比如7表示的就NTFS 分区;这个在fdisk 中要通过t 功能来指定。下面的部份会提到;

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…,一般也差不了多少;这么算就行。

3、估算一个存储设备是否被完全划分

我们估算一个硬盘是否完全被划分,我们只要看fdisk -l 输出的内容中的cylinders (柱体)上一个分区的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

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)

/dev/sda2 26 125 806400 5 Extended

/dev/sda5 26 50 201568+ 83 Linux

/dev/sda6 51 76 200781 83 Linux

我们再看看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左右未划分空间,并且只能划分为链逻辑分区;

四、fdisk 对硬盘及分区的操作,进入fdisk 对硬盘操作阶段

我们可以对硬盘进行分区操作,前提是您把fdisk -l 弄明白了;通过fdisk -l ,我们能找出机器中所有硬盘个数及设备名称;比如上面的例子,我们会看到两个设备一个是/dev/hda ,另一个是/dev/sda ;

fdisk 操作硬盘的命令格式如下:

[root@localhost beinan]# fdisk 设备

比如我们通过fdisk -l 得知/dev/hda 或者/dev/sda设备;我们如果想再添加或者删除一些分区,可以用

[root@localhost beinan]# fdisk /dev/had

或[root@localhost beinan]# fdisk /dev/sda

注在以后的例子中,我们要以/dev/sda设备为例,来讲解如何用fdisk 来操作添加、删除分区等动作;

四、fdisk命令说明

1、fdisk 的说明

当我们通过fdisk 设备,进入相应设备的操作时,会发现有如下的提示;以fdisk /dev/sda 设备为例,以下同;

[root@localhost beinan]# fdisk /dev/sda

Command (m for help): 在这里按m ,就会输出帮助;

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delet

e a partition 注:这是删除一个分区的动作;

l list known partition types 注:l是列出分区类型,以供我们设置相应分区的类型;

m print this menu 注:m 是列出帮助信息;

n add a new partition 注:添加一个分区;

o create a new empty DOS partition table

p print the partition table 注:p列出分区表;

q quit without saving changes 注:不保存退出;

s create a new empty Sun disklabel

t change a partition's system id 注:t 改变分区类型;

u change display/entry units

v verify the partition table

w write table to disk and exit 注:把分区表写入硬盘并退出;

x extra functionality (experts only) 注:扩展应用,专家功能;

其实我们常用的只有注有中文的,其它的功能我们不常用(呵,主要是我不会用,否则早会卖弄一下了);x扩展功能,也不是常用的;一般的情况下只要懂得 d l m p q t w 就行了;

下面以实例操作来详述,没有例子没有办法就,新手也看不懂;

2、列出当前操作硬盘的分区情况,用p

Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ c W95 FA T32 (LBA)

/dev/sda2 26 125 806400 5 Extended

/dev/sda5 26 50 201568+ 83 Linux

/dev/sda6 51 76 200781 83 Linux

3、通过fdisk的d指令来删除一个分区

Command (m for help): p 注:列出分区情况;

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ c W95 FA T32 (LBA)

/dev/sda2 26 125 806400 5 Extended

/dev/sda5 26 50 201568+ 83 Linux

/dev/sda6 51 76 200781 83 Linux

Command (m for help): d 注:执行删除分区指定;

Partition number (1-6): 6 注:我想删除sda6 ,就在这里输入6 ;

Command (m for help): p 注:再查看一下硬盘分区情况,看是否删除了?

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ c W95 FA T32 (LBA)

/dev/sda2 26 125 806400 5 Extended

/dev/sda5 26 50 201568+ 83 Linux

Command (m for help):

警告:删除分区时要小心,请看好分区的序号,如果您删除了扩展分区,扩展分区之下的逻辑分区都会删除;所以操作时一定要小心;如果知道自己操作错了,请不要惊慌,用q不保存退出;切记切记!!!!在分区操作错了之时,千万不要输入w保存退出!!!

4、通过fdisk的n指令增加一个分区

Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ c W95 FA T32 (LBA)

/dev/sda2 26 125 806400 5 Extended

/dev/sda5 26 50 201568+ 83 Linux

Command (m for help): n 注:增加一个分区;

Command action

l logical (5 or over) 注:增加逻辑分区,分区编号要大于5;为什么要大于5,因为已经有sda5了;

p primary partition (1-4) 注:增加一个主分区;编号从1-4 ;但sda1 和sda2都被占用,所以只能从3开始;

p

Partition number (1-4): 3

No free sectors available 注:失败中,为什么失败?

注:我试图增加一个主分区,看来是失败了,为什么失败?因为我们看到主分区+扩展分区把整个磁盘都用光了,看扩展分区的End的值,再看一下p输出信息中有125 cylinders;最好还是看前面部份;那里有提到;

所以我们只能增加逻辑分区了

Command (m for help): n

Command action

l logical (5 or over)

p primary partition (1-4)

l 注:在这里输入l,就进入划分逻辑分区阶段了;

First cylinder (51-125, default 51): 注:这个就是分区的Start 值;这里最好直接按回车,如果您输入了一个非默认的数字,会造成空间浪费;

Using default value 51

Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:这个是定义分区大小的,+200M 就是大小为200M ;当然您也可以根据p提示的单位cylinder的大小来算,然后来指定End的数值。回头看看是怎么算的;还是用+200M这个办法来添加,这样能直观一点。如果您想添加一个10G左右大小的分区,请输入+10000M ;Command (m for help):

5、通过fdisk的t指令指定分区类型

Command (m for help): t 注:通过t来指定分区类型;

Partition number (1-6): 6 注:要改变哪个分区类型呢?我指定了6,其实也就是sda6 Hex code (type L to list codes):L 注:在这里输入L,就可以查看分区类型的id了;

Hex code (type L to list codes): b 注:如果我想让这个分区是W95 FA T32 类型的,通过L查看得知b是表示的是,所以输入了b;

Changed system type of partition 6 to b (W95 FA T32) 注:系统信息,改变成功;是否是改变了,请用p查看;

Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ c W95 FA T32 (LBA)

/dev/sda2 26 125 806400 5 Extended

/dev/sda5 26 50 201568+ 83 Linux

/dev/sda6 51 75 201568+ b W95 FA T32

6、fdisk 的退出,用q或者w

其中q是不保存退出,w是保存退出

Command (m for help): w

Command (m for help): q

7、一个添加分区的例子;

本例中我们会添加两个200M的主分区,其它为扩展分区,在扩展分区中我们添加两个200M大小的逻辑分区

Command (m for help): p 注:列出分区表;

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

Command (m for help): n 注:添加分区;

Command action

e extended

p primary partition (1-4)

p 注:添加主分区;

Partition number (1-4): 1 注:添加主分区1;

First cylinder (1-125, default 1): 注:直接回车,主分区1的起始位置;默认为1,默认就好;

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-125, default 125): +200M 注:指定分区大小,用+200M来指定大小为200M

Command (m for help): n 注:添加新分区;

Command action

e extended

p primary partition (1-4)

p 注:添加主分区

Partition number (1-4): 2 注:添加主分区2;

First cylinder (26-125, default 26):

Using default value 26

Last cylinder or +size or +sizeM or +sizeK (26-125, default 125): +200M 注:指定分区大小,用+200M来指定大小为200M

Command (m for help): n

Command action

e extended

p primary partition (1-4)

e 注:添加扩展分区;

Partition number (1-4): 3 注:指定为3 ,因为主分区已经分了两个了,这个也算主分区,从3开始;

First cylinder (51-125, default 51): 注:直接回车;

Using default value 51

Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): 注:直接回车,把其余的所有空间都给扩展分区;

Using default value 125

Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ 83 Linux

/dev/sda2 26 50 201600 83 Linux

/dev/sda3 51 125 604800 5 Extended

Command (m for help): n

Command action

l logical (5 or over)

p primary partition (1-4)

l 注:添加逻辑分区;

First cylinder (51-125, default 51):

Using default value 51

Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:添加一个大小为200M大小的分区;

Command (m for help): n

Command action

l logical (5 or over)

p primary partition (1-4)

l 注:添加一个逻辑分区;

First cylinder (76-125, default 76):

Using default value 76

Last cylinder or +size or +sizeM or +sizeK (76-125, default 125): +200M 注:添加一个大小为200M大小的分区;

Command (m for help): p 列出分区表;

Disk /dev/sda: 1035 MB, 1035730944 bytes

256 heads, 63 sectors/track, 125 cylinders

Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 25 201568+ 83 Linux

/dev/sda2 26 50 201600 83 Linux

/dev/sda3 51 125 604800 5 Extended

/dev/sda5 51 75 201568+ 83 Linux

/dev/sda6 76 100 201568+ 83 Linux

然后我们根据前面所说通过t指令来改变分区类型;

最后不要忘记w保存退出

五、对分区进行格式化,以及加载

先提示一下;用mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs 等命令来格式化分区,比如我想格式化sda6为ext3文件系统,则输入;

[root@localhost beinan]# mkfs.ext3 /dev/sda6

如果我想加载sda6到目前系统来存取文件,应该有mount 命令,但首先您得建一个挂载目录;比如/mnt/sda6 ;

[root@localhost beinan]# mkdir /mnt/sda6

[root@localhost beinan]# mount /dev/sda6 /mnt/sda6

[root@localhost beinan]# df –lh

Filesystem 容量已用可用已用% 挂载点

/dev/hda8 11G 8.4G 2.0G 81% /

/dev/shm 236M 0 236M 0% /dev/shm

/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10

/dev/sda6 191M 5.6M 176M 4% /mnt/sda6

这样我们就能进入/mnt/sda6目录,然后存取文件了

具体的权限方法,以及mount 更详细的用法,在以后我会专门写一个帖子;在一

帖中放下所有的内容实在有点为难。

Linux常用命令

查询相关 find 按规则查找某个文件或文件夹,包括子目录 ?find . -name '*.sh' -- 以.sh结尾的文件 ?find . -name '*channel*' -- 包含channel字符的文件 ?find . -name 'build*' -- 以build开头的文件 ?find . -name 'abc??' -- abc后面有两个字符的文件 grep 查找内容包含指定的范本样式的文件,Global Regular Expression Print ?grep -n pattern files -- 规则-n表示显示行号 ?grep -n 'PostsActivity' AndroidManifest.xml ?grep -n '\d' AndroidManifest.xml ?grep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方 ?grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号 ?ps -e | grep java -- 所有java进程 ?ps -e | grep -i qq --所有qq进程,不区分大小写 ?find . -name '*channel.xml' | xargs grep -n 'aapt' -- 在以channel.xml 结尾的文件中查找包含‘aapt’关键字的地方 ?ls | grep 'channel' -- 包含channel关键字的文件 which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果?which zip ?which grep 查看命令 tail tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File] 从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。 ?tail -f test.log,循环查看文件内容,Ctrl+c来终止 ?tail -n 5 test.log,显示文件最后5行内容

Linux top 命令详解

Linux top 命令详解 top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。 本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。 top进入视图 top视图01 【top视图01】是刚进入top的基本视图,我们来结合这个视图讲解各个数据的含义。 第一行: 10:01:23 —当前系统时间 126 days, 14:29 —系统已经运行了126天14小时29分钟(在这期间没有重启过) 2 users —当前有2个用户登录系统 load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。 第二行: Tasks —任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped 状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态 6.7% us —用户空间占用CPU的百分比。 0.4% sy —内核空间占用CPU的百分比。 0.0% ni —改变过优先级的进程占用CPU的百分比 92.9% id —空闲CPU百分比 0.0% wa — IO等待占用CPU的百分比 0.0% hi —硬中断(Hardware IRQ)占用CPU的百分比 0.0% si —软中断(Software Interrupts)占用CPU的百分比 在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。 第四行:内存状态 8306544k total —物理内存总量(8GB) 7775876k used —使用中的内存总量(7.7GB) 530668k free —空闲内存总量(530M) 79236k buffers —缓存的内存量(79M) 第五行:swap交换分区 2031608k total —交换区总量(2GB) 2556k used —使用的交换区总量(2.5M) 2029052k free —空闲交换区总量(2GB) 4231276k cached —缓冲的交换区总量(4GB) 这里要说明的是不能用windows的内存概念理解这些数据,如果按windows的方式此台服务器“危矣”:8G的内存总量只剩下530M的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。 第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。 如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB。 对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。 第六行是空行 第七行以下:各进程(任务)的状态监控 PID —进程id USER —进程所有者 PR —进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT —进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES —进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR —共享内存大小,单位kb

Shell和Linux常用命令

Shell和Linux常用命令 一、字符界面简介 1、进入字符工作方式的方法 1)、在图形环境下开启终端窗口进入字符工作方式; 2)、在系统启动后直接进入字符工作方式; 3)、使用远程登录方式(Telnet或SSH)进入字符工作方式。 2、虚拟控制台 3、关机与重启 1)、关机 #init 0 或 halt 或 shutdown –h now 2)、重启 #init 6 或 reboot 或 shutdown -r now 3)、命令init用于立即关机或重启,但是在多用户系统中,若想给用户发送警告信息以便各个用户完成自己的工作并注销登录,则必须使用shutdown命令。例如, #shutdown –h +5\ “System will be down in 5 minites,Please save your work.” 该命令警告所有用户将在5分钟后关闭系统。警告信息将显示在所有已登录的终端上。用-r参数替换-h参数用于重启。 4、Shell 1)、Shell介绍:Shell就是用户与操作系统内核之间的接口,起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。Shell在Linux 系统中具有极其重要的地位。Shell最重要的功能是命令解释,从这种意义上说,Shell是一个命令解释器。Linux系统中所有可执行文件都可以

作为Shell命令来执行。Red Hat Linux默认的Shell是bash。 2)、Linux系统中可执行文件的分类 5、命令格式、通配符和文件 1)、命令格式 cmd [-option] [arguments] 2)、在Linux环境下,只要是可执行的文件并具有可执行属性它就能执行,不管其文件名后缀是什么。 3)、常用设备文件说明 4)、常用通配符 * 匹配任何字符和任何数目的字符例如,ls *.c ? 匹配任何单字符例如,ls test?.c […] 匹配任何包含在括号里的单字符例如,ls [abc]t.c 6、获取帮助 man command_name info command_name 二、文件目录操作命令 1、常用的文件目录操作命令

linux命令详解:pgrep命令

linux命令详解:pgrep 前言 经常要查看进程的信息,包括进程的是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。pgrep通过匹配其程序名,找到匹配的进程 重要选项 -l 同时显示进程名和PID -o 当匹配多个进程时,显示进程号最小的那个 -n 当匹配多个进程时,显示进程号最大的那个 注:进程号越大,并不一定意味着进程的启动时间越晚 使用说明 查看指定名称的进程信息 默认只显示PID 1: [root@master ~]# pgrep ssh 2: 3686 3: 7907 4: 8815 5: 12874 同时显示PID和ProcessName : –l 1: [root@master ~]# pgrep -l sshd 2: 3686 sshd 3: 7907 sshd 4: 8815 sshd 5: 12874 sshd -o 当匹配多个进程时,显示进程号最小的那个 1: [root@master ~]# pgrep -l sshd 2: 3686 sshd 3: 7907 sshd 4: 8815 sshd 5: 12874 sshd 6: [root@master ~]# pgrep -l -o sshd 7: 3686 sshd -n 当匹配多个进程时,显示进程号最大的那个 1: [root@master ~]# pgrep -l -n sshd 2: 12874 sshd 特别说明 1)pgrep相当于ps –eo pid,cmd | awk ‘{print $1,$2}’ | grep KeyWord 1: [root@master ~]# ps -eo pid,cmd | awk '{print $1,$2}' | grep init 2: 1 init 3: [root@master ~]# pgrep init 4: 1

Linux主要shell命令详解

shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell 就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。 有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。 shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。 shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。 当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用―$‖作提示符,对超级用户(root)用―#‖作提示符。 一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。

grep命令详解

grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! 正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串。vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大;在以前上班的公司里,由于公司是基于web的服务型网站(nginx),对正则的需求比较大,所以也花了点时间研究正则,特与大家分享下: 1基础正则表达式 grep 工具,以前介绍过。 grep -[acinv] '搜索内容串' filename -a 以文本文件方式搜索 -c 计算找到的符合行的次数 -i 忽略大小写 -n 顺便输出行号 -v 反向选择,即找没有搜索字符串的行 其中搜索串可以是正则表达式! 1 搜索有the的行,并输出行号 $grep -n 'the' regular_express.txt 搜索没有the的行,并输出行号 $grep -nv 'the' regular_express.txt 2 利用[]搜索集合字符

[] 表示其中的某一个字符,例如[ade] 表示a或d或e woody@xiaoc:~/tmp$ grep -n 't[ae]st' regular_express.txt 8:I can't finish the test. 9:Oh! the soup tast e good! 可以用^符号做[]内的前缀,表示除[]内的字符之外的字符。 比如搜索oo前没有g的字符串所在的行. 使用'[^g]oo' 作搜索字符串woody@xiaoc:~/tmp$ grep -n '[^g]oo' regular_express.txt 2:apple is my favorite foo d. 3:Foo tball game is not use feet only. 18:google is the best too ls for search keyword. 19:go ooo oogle yes! [] 内可以用范围表示,比如[a-z] 表示小写字母,[0-9] 表示0~9的数字, [A-Z] 则是大写字母们。[a-zA-Z0-9]表示所有数字与英文字符。当然也可以配合^来排除字符。 搜索包含数字的行 woody@xiaoc:~/tmp$ grep -n '[0-9]' regular_express.txt 5:However ,this dress is about $ 3183 dollars. 15:You are the best is menu you are the no.1. 行首与行尾字符^ $. ^ 表示行的开头,$表示行的结尾( 不是字符,是位置)那么‘^$’ 就表示空行,因为只有 行首和行尾。 这里^与[]里面使用的^意义不同。它表示^后面的串是在行的开头。 比如搜索the在开头的行 woody@xiaoc:~/tmp$ grep -n '^the' regular_express.txt 12:the symbol '*' is represented as star. 搜索以小写字母开头的行 woody@xiaoc:~/tmp$ grep -n '^[a-z]' regular_express.txt

cat和grep指令

cat命令 功能1: 在标准输出上显示文件。 语法:cat [选项] 文件 说明:该命令功能之一是用来显示文件。它依次读取其后所指文件的内容并将其输出到标准输出。 该命令的各选项含义如下: -v 用一种特殊形式显示控制字符,LFD与TAB除外。 加了-v 选项后,-T 和-E 选项将起作用。其中: -T 将TAB显示为“ùI”。该选项需要与-v 选项一起使用。即如果没有使用-v 选项,则这个选项将被忽略。 -E 在每行的末尾显示一个$符。该选项需要与-v 选项一起使用。 -u 输出不经过缓冲区。 -A 等于-vET。 -t 等于-vT。 -e 等于-vE。 -n 在文件的每行前面显示行号。 指令实例: cat example.txt // 则在屏幕上显示出example.txt 文件的内容 cat -A exam2.txt // 在屏幕上显示出exam2.txt 文件的内容,而且如果文件中含有特殊字符的话,一并显示 功能2:连接两个或多个文件 说明:该命令功能之二是用来将两个或多个文件连接起来。 cat file1 file2 > file3 // 这样就把文件filel和文件file2的内容合并起来,放入文件file3中。 (此时在屏幕上并不能直接看到该命令执行后的结果。若想看到连接后的文件内容, 可以再使用“cat file3”。) 需要说明的是,当文件内容过多时,就带来一个问题,因为文本在屏幕上迅速地闪过,用户来不及看清其内容。因此,当文件内容较大时,一般可用more等命令分屏显示,以免因屏幕滚动太快而无法看清。 linux grep命令

1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 \<:从匹配正则表达式的行开始。 \>:到匹配正则表达式的行结束。 [ ]:单个字符,如[A]即A符合要求。 [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。 。:所有的单个字符。 * :有字符,长度可以为0。 4.grep命令使用简单实例 $ grep ‘test’ d* 显示所有以d开头的文件中包含test的行。 $ grep ‘test’ aa bb cc 显示在aa,bb,cc文件中匹配test的行。 $ grep ‘[a-z]\{5\}’ aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。 $ grep ‘w\(es\)t.*\1′aa 如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。 5.grep命令使用复杂实例 假设您正在’/usr/src/Linux/Doc’目录下搜索带字符串’magic’的文件: $ grep magic /usr/src/Linux/Doc/* sysrq.txt:* How do I enable the magic SysRQ key? sysrq.txt:* How do I use the magic SysRQ key? 其中文件’sysrp.txt’包含该字符串,讨论的是SysRQ 的功能。 默认情况下,’grep’只搜索当前目录。如果此目录下有许多子目录,’grep’会以如下形式列出:

Linux中fdisk分区使用方法

一、fdisk 的介绍 fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具 fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux 、fat32、 linux 、linux swap 、fat16 以及其实类Unix类操作系统的文件系统等;当然我们用fdisk 对磁盘操作分区时,并不是一个终点,我们还要对分区进行格式化所需要的文件系统;这样一个分区才能使用;这和DOS中的fdisk 是类似的 二、合理规划您的硬盘分区 在操作分区之前,我们要明白硬盘分区一点理论,比如硬盘容量和分区大小的计算;对一个硬盘如何规划分区等,请参考如下文档,谢谢 三、fdisk -l 查看硬盘及分区信息 通过《合理规划您的硬盘分区》,我们知道主分区(包括扩展分区)的总个数不能超过四个;也不能把扩展分区包围在主分区之间;根据这个原则,我们划分硬盘分区就比较容易的多;也能为以后减少不必要的麻烦 1、通过fdisk -l 查看机器所挂硬盘个数及分区情况 [root@localhost beinan]# fdisk -l Disk /dev/hda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 765 6144831 7 HPFS/NTFS /dev/hda2 766 2805 16386300 c W95 FAT32 (LBA) /dev/hda3 2806 9729 55617030 5 Extended /dev/hda5 2806 3825 8193118+ 83 Linux /dev/hda6 3826 5100 10241406 83 Linux /dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris /dev/hda8 5199 6657 11719386 83 Linux /dev/hda9 6658 7751 8787523+ 83 Linux /dev/hda10 7752 9729 15888253+ 83 Linux Disk /dev/sda: 1035 MB, 1035730944 bytes 256 heads, 63 sectors/track, 125 cylinders Units = cylinders of 16128 * 512 = 8257536 bytes Device Boot Start End Blocks Id System

linux常用的60个命令

Linux必学的60个命令 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。

Linux进程管理命令详解16页word文档

Linux进程管理命令详解 Linux进程管理命令详解2010-10-08 14:124.3 Linux进程管理命令详解(1) Linux管理进程的最好方法就是使用命令行下的系统命令。Linux 下面的进程涉及的命令有 at,bg,fg,kill,crontab,jobs,ps,pstree,top,nice,renice,sleep,nohu p。 1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列。 格式: at[-V][-q x][-f file][-m]time atq[-V][-q x] atrm[-V][-q x]job… batch[-V][-f file][-m] 主要选项如下。 -V:显示作业将被执行的时间。 -q:选用q参数则可选队列名称,队列名称可以是a~z和A~Z之间的任意字母。队列字母顺序越高则队列优先级别越低。 -f:从文件中读取命令或shell脚本,而非在提示后指定它们。 -m:执行完作业后发送电子邮件到用户。 time:设定作业执行的时间。time参数可以是下面格式中的任何一种。 HH:MM格式--如04:00,代表4:00AM。如果时间已过,就会在第二天的这一时间执行。 midnight代表12:00AM。noon代表12:00PM。teatime代表4:00PM。 英文月名日期年份格式--如January 15 2005,代表2005年1月15日。年份可无。 MMDDYY、MM/DD/YY或MM.DD.YY格式--如011505,代表2005年1月15日。

now+时间格式--时间以minutes、hours、days或weeks为单位。如now+5 days,代表命令应该在5天之后的此时此刻执行。偏移量的格式为时间+偏移量,单位是minutes、hours和days。 说明:at命令实际上是一组命令集合。at命令在指定时刻执行指定的命令序列。atq查询已经设定的命令序列。atrm删除已经设定的命令序列。batch当系统负载低于一个设定值(0.8),执行设定的命令序列。 应用实例如下。 (1)让系统在两天后的17:30执行文件data中指定的作业,使用命令: #at-f data 15:30+2 days (2)配置batch作业 要在系统平均载量降到0.8以下时执行某项一次性的任务,使用batch命令。键入batch命令后,"at"提示就会出现。键入要执行的命令,按"Enter"键,然后键入"Ctrl-D"。你可以指定多条命令,方法是键入每一条命令后按"Enter"键。键入所有命令后,按"Enter"键转入一个空行,然后再键入"Ctrl-D"。或者你也可以在提示后输入shell脚本,在脚本的每一行后按"Enter"键,然后在空行处键入"Ctrl-D"来退出。系统平均载量一降到0.8以下,这组命令或脚本就会被执行。如果这组命令或脚本试图在标准输出中显示信息,该输出会用电子邮件方式被邮寄给用户。 (3)进阶应用:控制对at和batch的使用 通过/etc/at.allow和/etc/at.deny文件可以用来限制对at和batch命令的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许使用空白字符。如果控制文件被修改了,at守护进程不必被重启。每次用户试图执行at或batch命令时,使用控制文件都会被读取。不论控制文件如何规定,超级权限用户总是可以执行at和batch 命令。如果at.allow文件存在,只有其中列出的用户才能使用at或batch命令,at.deny文件会被忽略。如果at.allow文件不存在,所有在at.deny文件中列出的用户都被禁止使用at和batch命令。 2.bg命令后台运行命令

Disk-Genius分区图解教程

一、硬盘分区DiskGen分区图解教程 未建立分区的硬盘空间(即自由空间)在分区结构图中显示为灰色,只有在硬盘的自由空间才能新建分区。如图1。 分区参数表格的第 0~3 项分别对应硬盘主分区表的四个表项,而将来新建立的第4、5、6…以后的项分别对应逻辑盘D、E、F…等。当硬盘只有一个DOS 主分区和扩展分区时(利用FDISK进行分区的硬盘一般都是这样的),“第0项”表示主分区(逻辑盘C)的分区信息,“第1项”表示扩展分区的信息,“第2、第3项”则全部为零,不对应任何分区,所以无法选中。笔者曾在某网站论坛上发现一张有关DISKMAN疑问的帖子,询问有没有办法将分区参数表格中全部为零的“第2项、第3项”删除掉,这当然是不可能的,发帖者显然对硬盘分区知识缺乏了解。想真正弄懂分区参数表格中各项的意义,必须了解硬盘分区表链结构,建议有兴趣的朋友多找一些相关资料看看。 图1:未建立分区的新硬盘 1 建立主分区想从硬盘引导系统,那么硬盘上至少需要有一个主分区,所以建立主分区就是我们的第一步。先选中分区结构图中的灰色区域,然后选择分区菜单里面的“新建分区”,此时会要求你输入主分区的大小,确定之后软件会询问是否建立DOS FAT分区,如果选择“是”那么软件会根据你刚刚天写的分区的小进行设置,小于640M时该分区将被自动设为FAT16格式,而大于640M时分区则会自动设为FAT32格式。如果选择了“否”软件将会提示你手工填写一个系统标志,并在右边窗体的下部给出一个系统标志的列表供用户参考和填写,确定之后主分区的建立就完成了,如图2,主分区就是我们将来的 C 盘。

(要建立非DOS分区,还须根据提示设定系统标志,如建立Linux分区,系统标志为“83”)。 图2:建立了一个FAT32主分区 2 建立扩展分区在建立了主分区之后,接着要建立扩展分区。首先建立扩展分区,先在柱状硬盘空间显示条上选定未分配的灰色区域,选择菜单 > 分 区 > 建扩展分区,之后会有提示要求你输入建的扩展分区的大小,通常情况下我们应该将所有的剩余空间都建立为扩展分区,所以这里可以直接按回车确定。如图3。

linux中目录.文件命令详解

linux中ls命令详解 linux中ls命令详解 ls 命令可以说是linux下最常用的命令之一。 -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c 输出文件的 i 节点的修改时间,并以此排序。 -d 将目录象文件一样显示,而不是显示其下的文件。 -e 输出时间的全部信息,而不是输出简略信息。 -f -U 对输出的文件不排序。 -g 无用。 -i 输出文件的 i 节点的索引信息。 -k 以 k 字节的形式表示文件的大小。 -l 列出文件的详细信息。 -m 横向输出文件名,并以“,”作分格符。 -n 用数字的 UID,GID 代替名称。 -o 显示文件的除组信息外的详细信息。 -p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通 文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套 接字(sockets)。 -q 用?代替不可输出的字符。 -r 对目录反向排序。 -s 在每个文件名后输出该文件的大小。 -t 以时间排序。 -u 以文件上次被访问的时间排序。 -x 按列输出,横向排序。 -A 显示除“.”和“..”外的所有文件。 -B 不输出以“~”结尾的备份文件。

-C 按列输出,纵向排序。 -G 输出文件的组的信息。 -L 列出链接文件名而不是链接到的文件。 -N 不限制文件长度。 -Q 把输出的文件名用双引号括起来。 -R 列出所有子目录下的文件。 -S 以文件大小排序。 -X 以文件的扩展名(最后一个 . 后的字符)排序。 -1 一行只输出一个文件。 --color=no 不显示彩色文件名 --help 在标准输出上显示帮助信息。 --version 在标准输出上输出版本信息并退出。 只列出子目录 1. ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux) 2. ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris) 计算当前目录下的文件数和目录数 下面命令可以分别计算当前目录下的文件和目录个数: # ls -l * |grep "^-"|wc -l ---- to count files # ls -l * |grep "^d"|wc -l ----- to count dir 显示彩色目录列表 打开/etc/bashrc, 加入如下一行: alias ls="ls --color" 下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下: 1. 蓝色-->目录 2. 绿色-->可执行文件 3. 红色-->压缩文件

Linux grep命令的使用用法

Linux Grep用法 QUOTE: 原帖由"网中人" 发表: 比方以grep 来说, 在Linux 上你可找到grep, egrep, fgrep 这几个程序, 其差异大致如下: * grep: 传统的grep 程序, 在没有参数的情况下, 只输出符合RE 字符串之句子. 常见参数如下: -v: 逆反模示, 只输出"不含" RE 字符串之句子. -r: 递归模式, 可同时处理所有层级子目录里的文件. -q: 静默模式, 不输出任何结果(stderr 除外. 常用以获取return value, 符合为true, 否则为false .) -i: 忽略大小写. -w: 整词比对, 类似\ . -n: 同时输出行号. -c: 只输出符合比对的行数. -l: 只输出符合比对的文件名称. -o: 只输出符合RE 的字符串. (gnu 新版独有, 不见得所有版本都支持.) -E: 切换为egrep . * egrep: 为grep 的扩充版本, 改良了许多传统grep 不能或不便的操作. 比方说: - grep 之下不支持? 与+ 这两种modifier, 但egrep 则可. - grep 不支持a|b 或(abc|xyz) 这类"或一"比对, 但egrep 则可. - grep 在处理{n,m} 时, 需用\{ 与\} 处理, 但egrep 则不需. 诸如此类的... 我个人会建议能用egrep 就不用grep 啦... ^_^ * fgrep: 不作RE 处理, 表达式仅作一般字符串处理, 所有meta 均失去功能. g r e p一般格式为: ][ - ] CODE: grep [选项]基本正则表达式[文件] 这里基本正则表达式可为字符串。 单引号双引号 在g r e p命令中输入字符串参数时,最好将其用双引号括起来。 在调用模式匹配时,应使用单引号。 例如:“m y s t r i n g”。这样做有两个原因,一是以防被误解为s h e l l命令,二是可以用来查找多个单词组成的字符串。在调用变量时,也应该使用双引号,诸如:g r e p“$ M Y VA R”文件名,如果不这样,将没有返回结果。 常用的g r e p选项有: QUOTE: -c 只输出匹配行的计数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。

PQMagic(硬盘分区)完全使用教程

PQMagic(硬盘分区)完全使用教程$_n_o_t1_0_1_0_0_0_$拆分分区(一) “分区”对于许多人来说都是一件复杂而且危险的操作,时不时的还让人想起CIH,CIH病毒一旦发作就会破坏硬盘分区表,那简直就是一场恶梦。如果我们把硬盘只分了一个区,假如CIH真的发作了,没有电脑专家的帮助我们只能眼看着硬盘上的数据毁于一旦。 如果当初分成两个C、D区,把重要的数据都保存到D区上,我们就可以使用KV300来恢复硬盘上的逻辑分区,这样就可以把损失减到最小。 可是我的硬盘现在只有一个区,而且已经用了很久,如果用Fdisk去分区的话,那也痛苦了点,会把硬盘的所有内容毁掉,一切都要从头安装。别说是分区,就是重新安装一下Windows,还总漏掉一些东西忘记了备份。 今天我要给你介绍一位新助手:Partition Magic,我把叫做:“魔术分区”。这位魔术师可是非同一般,它可以在不损伤硬盘数据的情况下对硬盘进行分区操作。下面我们就来看看它的魔法吧! 1.拆分分区 我们先来看一下如何让魔术师把一个硬盘分区拆分成两个分区。 安装好了“魔术分区4.0”后,会在“开始”菜单的“程序”项下面添加一个“PowerQuest PartitionMagic 4.0”,这一项“PartitionMagic 4.0”便是魔术分区的启动程序。 我们先来了解一下“魔术分区”的外观, 上面是菜单条和快捷工具栏,中间这个是当前硬盘的分区情况,下面的这五个人形的图标是操作向导。我最喜欢在中间的分区表中操作了。 在进行真正的分区前,我建议你最好还是把重要的数据做好备份,如果你的硬盘本身已经有了坏的扇区,或是你的Windows不时的还冒出个“非法操作”的提示,或是偶尔屏幕上还来一个“蓝色雪崩”,或是你那里总是经常断电跳闸,更应该做好数据备份,因为“魔法师”还无法对付这些突发事件,那将意味着悲惨的后果,所以我提前声明,如果出现问题,我们概不负责。

Linux常用命令详解(配合示例说明,清晰易懂)

Linux常用命令详解 (常用、详细) BISTU 自动化学院 刷碗小工(frisen.imtm) 2010年11月 开源社区,造福大家,版权所有,翻录不究(初次接触Linux命令可能对以下说明有不少疑问,可待看完一遍后再回头细看) (配合Ctrl + F可快速查找你想了解的命令)

索引:(待完善) 文件说明:Linux命令很多,但最常用的80个左右 文档内容充实,用示例说明命令如何使用笔者力求语言简洁,清晰易懂 由于忙于其他事情,改进排版的工作只能搁置了 最后,望此文档能为大家Linux学习之路献微薄之力 一、路径: 执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误的执行或是找不到该命令。要知道设置的路径,可执行以下命令: 一般而言,本书的命令位于/bin、usr/bin、/sbin、/usr/sbin之中。若读者执行了命令却出现“command not find”或是“命令不存在”的字样,就必须要确定该命令的位置是否在命令的路径中,或是系统上根本没有安装该套件。 二、命令顺序: 若在shell内置的命令/bin以及/usr/bin之下都出现了命令pwd,那当我们执行该命令时,会执行哪一个?答案是第一优先执行shell内置的命令,再执行路径中的设置;因此若有相同名称的命令时,必须要注意顺序设置,或是直接输入完整路径。 三、参数(或称选项)顺序: 一般除了特殊情况,参数是没有顺序的。举例而言,输入“–a –v”与输入“–v –a”以及“–av”的执行效果是相同的。但若该参数后指定了要接的文件或特殊对象,如“–a cmd1 –v cmd2”,则不能任意改变选项顺序。 四、常用参数: 下面所列的是常见的参数(选项)意义: --help,-h 显示帮助信息 --version,-V 显示版本信息 -v 繁琐模式(显示命令完整的执行过程) -i 交谈模式(指定界面) -l 长列表输出格式 -q,-s 安静模式(不显示任何输出或错误信息) -R 递归模式(连同目录下所有文件和子目录一起处理) -z 压缩 五、命令的结合与定向: 命令中除了一般命令外,还有管道(或称途径)(|)与定向(>或>>)。 管道(途径)的用法: “命令一[选项]”| “命令二[选项]”,也就是将“命令一[选项]”的输出结果传到“命令二[选项]”,通过命令二的处理之后才输出到标准输出(屏幕)上。比如“ls /etc”会列出etc下的所有文件,若加上“| less”,也就是“ls /etc | less”,则会将“ls /etc”的结果通过less分页输出。 定向的用法: 将结果定向到命令的输出设备,一般不加文件名意为将结果输出到屏幕,若是在定向后加上文件名,则会将命令的执行结果输出到定向的文件,例如“ls > temp.txt”,就会将ls 的结果输出到文件temp.txt中。“>”与“>>”的差异在于前者是覆盖,而后者是附加。 六、命令中的命令: 许多命令在执行后,会进入该命令的操作模式,如fdisk、pine、top等,进入后我们必须要使用该命令中的命令,才能正确执行;而一般要退出该命令,可以输入exit、q、quit或是按【Ctrl+C】组合

Grep命令详解

Grep命令详解 grep [ -E | -F ] [ -i ] [ -h ] [ -s ] [ -v ] [ -w ] [ -x ] [ -y ] [ [ [ -b ] [ -n ] ] | [ -c | -l | -q ] ] [ -p [ Separator ] ] { [ -e PatternList ... ] [ -f PatternFile ... ] | PatternList ... } [ 文件... ] 描述 grep 命令用于搜索由Pattern参数指定的模式,并将每个匹配的行写入标准输出中。这些模式是具有限定的正则表达式,它们使用ed或egrep命令样式。grep命令使用压缩的不确定算法。 如果在File参数中指定了多个名称,grep命令将显示包含匹配行的文件的名称。对shell 有特殊含义的字符($, *, [, |, ^, (, ), \ ) 出现在Pattern 参数中时必须带双引号。如果Pattern参数不是简单字符串,通常必须用单引号将整个模式括起来。在诸如[a-z], 之类的表达式中,-(减号)cml 可根据当前正在整理的序列来指定一个范围。整理序列可以定义等价的类以供在字符范围中使用。如果未指定任何文件,grep 会假定为标准输入。 注意: 1.行被限制为2048个字节。 2.段落(使用-p标志时)长度当前被限制为5000个字符。 3.请不要对特殊文件运行grep命令,这样做可能产生不可预计的结果。 4.输入行不应包含空字符。 5.输入文件应该以换行符作为结束。 6.正则表达式不会对换行符进行匹配。 7.虽然一些标志可以同时被指定,但其中的某些标志会覆盖其它标志。例如,-l选项将优先于所有其它标志。另外,如果您同时指定了-E 和-F标志,则后指定的那个会有优先权。 标志 -b 在每行之前添加找到该行时所在的块编号。使用这个标志有助于通过上下文来找到磁盘块号码。-b标志不能用于来自标准输入和管道的输入。 -c 仅显示匹配行的计数。

相关文档
最新文档