磁盘、文件系统管理

linux磁盘、文件系统管理

硬盘:机械硬盘、固态硬盘

    计算硬盘速度:IoPs:(Io  per  second ) 每秒20次

机械硬盘:

    track:磁道

    平均寻道时间

        5400rpm    每分钟5400转,(一般笔记本)

        10000/15000   台式电脑

    sector:扇区(一个扇区512byte,)

    cylinder:柱面(一块弹片上的上下两面的同一个磁道)

不同弹面上的同一个编号的叫柱面,分区划分是给予柱面的

1.为什么要分区?

        因为硬盘很大,为了使得一个硬盘中可以组织为多个可独立管理的文件系统,所以要分区,每一个被划分出来的分区是独立的块设备。

设备分两类:

随机访问设备:

块设备:Block,存取单位是“块”,如硬盘 

线性访问设备:

字符设备:“char”,存取单位是“字符”,如键盘

        每一个设备都有一个文件作为它的访问入口,此文件我们称之为设备文件,该文件关联至一个设备驱动程序,进而能够与之对应的硬件设备通信

    每一个硬件设备在内核集中都是靠一个设备号来进行标识的

    设备号:用来标识设备,不同类别的设备各有不同的设备号,同一类别的设备有不同设备或多个设备,因此就有主设备号和次设备号

    主设备号:major:用来识别设备类型

    次设备号:minor:用来识别同一类型下的不同设备

MBR(Master   Boot  Record):主引导记录

        在硬盘上有一个0磁道0扇区是被预留出来的,他不属于任何分区,这个扇区称之为MBR,严格意义上讲应该叫做用来存储MBR的一段空间,

0磁道0扇区:

        该扇区的大小为512bytes,专门用来存储MBR(Master Boot  Record)主引导记录,MBR又分为三部分

    第一部分:446个字节:存储boot loader,引导加载器

    第二部分:64bytes:存储分区表:有多少多少个分区,每个分区从哪里开始到哪里结束;其中每16个字节表示一个分区,因此64除16等于4,so,一块设备最多只能有4个主分区;

    第三部分:2bytes:前面信息的有效性标识(结束标志),用4个16进制数来表示55AA,表示前面510bytes是有效的。

    如果一块硬盘需要划分超过4个分区,则需要其中16个字节的主分区划分为扩展分区,扩展分区中可以划分无数个逻辑分区(当然也得硬盘大小决定)

注意:当磁盘容量超过2T的时候,MBR机制不能识别到2T以上的磁盘空间,此时需要用到GPT机制来进行分区

文件系统管理

重新创建文件系统会损坏原有文件

分区管理

fisk命令:管理MBR(Master  Boot   Record)磁盘分区表

        fdisk提供了一个交互式接口来管理分区,他有许多子命令,分别用于不同的管理功能,所有操作都是在内存中完成,没有直接同步到磁盘,如果分区完成,输出w命令保存退出后才写到磁盘并生效。

类型:分区所在场景类型(使用·fdisk  /dev/磁盘· 使用l命令即可查看所有id对应分区类型)

正常分区:83

扩展分区:5

交换分区:82

 Device    Boot      Start         End       Blocks    Id  System
/dev/sdb1   *         1            26        204800    83  Linux
/dev/sdb2             26           7859     62914560   8e  Linux LVM

注:centos6上“start”字段和“End”字段表示的是此分区的大小是按照柱面的单位划分大小(表示开始柱面和结束柱面)

      centos7上“start”字段和“End”字段表示的是此分区的大小是按照扇区的单位划分大小(表示开始扇区和结束扇区)

1.查看分区情况:

fdisk   -l[u]   [device]

列出指定磁盘设备的分区情况

(1)#fdisk -l      列出所有分区设备

(2)#fdisk  -l  /dev/sda    列出sda磁盘的分区情况

root@localhost mntsdb]# fdisk -l /dev/sda
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000682bf
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2              26        7859    62914560   8e  Linux LVM

2.管理分区

fdisk  [u]    [device]

#fdisk  -u  /dev/sda  //进入fdisk配置分区界面,选项”u“可不用写。

 

[root@localhost mntsdb]# fdisk -u /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c').
Command (m for help): 在此键入命令,可用m查看命令

进入配置交互式界面常用命令:

     n:创建新分区

     d:删除指定已有的分区

     t:修改分区类型

     l:查看所有id对应分区类型,

     p:列出已有分区

     w:保存退出

     q:不保存退出  

     m:帮助  (列出所有交互命令)

    

n:创建新分区

Command (m for help): n   //新建分区,n命令
Command action      //列出当前可创建的分区
   e   extended    //扩展分区
   p   primary partition (1-4 )  //主分区
p       //输入p命令,创建主分区
Partition number (1-4): 1    //主分区号1
First cylinder (1-2610, default 1):     //分区开始柱面(centos6是以柱面为单位划分分区大小)
Using default value 1     //直接回车从第一个开始
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +1G  
     //大小为1G,指定分区大小有三种方法(1、输出最后柱面,表示从开始柱面到结束柱面大小2、+柱面,表示从开始柱面到指定的柱面,如+100,表示在第一个柱面的基础上增加100个柱面,3、直接输出分区大小,单位K/M/G )

Command (m for help): p    //查看当前分区信息
一下为当前磁盘的描述信息,总大小为21.5GB,255个磁头,63个扇区为一个磁道,2610个柱面等等
#####################################
#Disk /dev/sdc: 21.5 GB, 21474836480 bytes                     
#255 heads, 63 sectors/track, 2610 cylinders                        
#Units = cylinders of 16065 * 512 = 8225280 bytes             
#Sector size (logical/physical): 512 bytes / 512 bytes         
#I/O size (minimum/optimal): 512 bytes / 512 bytes          
#Disk identifier: 0x4d566b71                              
#####################################
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         132     1060258+  83  Linux

d:删除指定已有的分区

Command (m for help): p
  Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         132     1060258+  83  Linux
/dev/sdc2             133         264     1060290   83  Linux
/dev/sdc3             265         396     1060290   83  Linux
Command (m for help): d
Partition number (1-4): 1
Command (m for help): p
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc2             133         264     1060290   83  Linux
/dev/sdc3             265         396     1060290   83  Linux

t:修改分区类型

  Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         132     1060258+  83  Linux
/dev/sdc2             133         264     1060290   83  Linux
/dev/sdc3             265         396     1060290   83  Linux
Command (m for help): t
Partition number (1-4): 2
 Hex code (type L to list codes): 82    //可使用大写L查看分区id号对应的分区类型
Changed system type of partition 2 to 82 (Linux swap / Solaris)

l:查看所有id对应分区类型,

Command (m for help): l
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
...........................

p:列出已有分区

Command (m for help): p
..........
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         132     1060258+  83  Linux
/dev/sdc2             133         264     1060290   82  Linux swap / Solaris
/dev/sdc3             265         396     1060290   83  Linux

w:保存退出

Command (m for help): w

q:不保存退出  

Command (m for help): q


m:帮助  (列出所有交互命令)

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

注:在已有分区并且已经挂载中的分区所在的磁盘上创建的新分区,内核可能在创建完成后无法直接识别

查看磁盘生效的所有分区三种方法:

1、cat  /proc/partitions

2、lsblk     

  //不加参数列出所有分区信息,后面可跟参数(如:lsblk   /dev/sda  ,只列出sda磁盘的分区信息)

3、ls   /dev/sd*       //因为现在的操作系统所有磁盘都是以sd开头命令

通知内核强制重读磁盘分区表:

centos6/7:partx  -a   [device]     同步指定的磁盘指定分区信息

-d:同步删除的分区信息,强读磁盘的分区信息

–nr: 同步磁盘的指定范围的分区信息,一般组合d使用

      kpartx  -af  [device]     同步指定的磁盘所有分区信息

[root@localhost mntsdb]# partx -a /dev/sdc
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
[root@localhost mntsdb]# kpartx -af /dev/sdc

注:parted 默认创建的是GPT类型的分区,fdisk创建的是MBR类型的分区

创建文件系统:

格式化分为两类:

     低级格式化:(分区之前进行,划分磁道)

     高级格式化:(分区之后进行,创建文件系统)

创建文件系统是划分分区的元数据区和数据区

    元数据区:

        文件的元数据(inode)

            大小、权限、属组、属主、时间戳、数据块指针

VFS:virtual  file  system 虚拟文件系统

linux的文件系统:ext2/ext3/ext4/xfs/vfat/reiserfs/btrfs
光盘的文件系统:iso9660
网络文件系统:gfs2、ocfs2
交换文件系统:swap
伪文件系统:proc、sysfs、tmpfs
unix文件系统:ufs、ffs、jfs(有日志)

注:linux的文件系统又以有无日志功能分类:其中:有日志的文件系统(ext3、ext4、xfs)无日志的文件系统(ext2、vfat)

文件系统管理工具分类:

1、创建文件系统的工具
    mkfs、mke2fs(ext系列文件系统管理工具)
2、检测及修复文件系统的工具
    fsck
3、查看文件系统属性的工具
    dumpe2fs、tune2fs
4、调整文件系统特性的工具
    tune2fs

1、创建文件系统:mkfs

mkfs -t ext2   /dev/sda1   //创建文件系统
mkfs -t ext2 = mkfs.ext2

2、专门管理ext系列文件:mke2fs

mke2fs  [option]  device
-t :指明要创建的文件系统
-j: 创建ext3类型文件系统
-b BLOCK_SIZE: 指定块大小,默认为4096;可用取值为1024、2048或4096;
-L LABEL:指定分区卷标;
-m #: 指定预留给超级用户的块数百分比
-i #: 用于指定为多少字节的空间创建一个inode,默认为8192;这里给出的数值应该为块大小的2^n倍;
-N #: 为数据空间创建多少个inode个数;

-t :指明要创建的文件系统

[root@localhost mntsdb]# mke2fs -t etx4 /dev/sdb2
[root@localhost mntsdb]# blkid  /dev/sdb2
/dev/sdb2: UUID="c4359ac0-e295-48a8-bc78-916bfc644fbb" TYPE="ext2" 
注:mke2fs -t etx4 /dev/sdb2  ==  mkfs.ext4  /dev/sdb2    ==  mkfs -t ext4  /dev/sdb2

-j: 创建ext3类型文件系统

[root@localhost ~]# mke2fs -j /dev/sdc1
.......
[root@localhost ~]# blkid /dev/sdc1
/dev/sdc1: UUID="03cb5410-c543-4d37-8857-3fa531c23718" SEC_TYPE="ext2" TYPE="ext3"

-b BLOCK_SIZE: 指定块大小,默认为4096;可用取值为1024、2048或4096;(只能用这是三个值)

[root@localhost ~]# mke2fs -b 2048 /dev/sdc2
..........
[root@localhost ~]# tune2fs -l /dev/sdc2
tune2fs 1.41.12 (17-May-2010)
.......
First block:              0
Block size:               2048    //tune2fs 
......
注:块大小决定文件的寻址范围
块大小   直接寻址    间接寻址    二次间接寻址    三次间接寻址
1024     12KB        268KB        64.26MB        16.06GB
2048     24KB        1.02MB       513.02MB        265.5GB
4096     48KB        4.04MB        4GB~             4TB

-L LABEL:指定分区卷标;

[root@localhost ~]# mke2fs -L "hello sdc3" /dev/sdc3
mke2fs 1.41.12 (17-May-2010)
Filesystem label=hello sdc3
.......
[root@localhost ~]# blkid /dev/sdc3
/dev/sdc3: LABEL="hello sdc3" UUID="624cbf32-9331-4703-b787-65f1d1a471c4" TYPE="ext2"

 

-m #: 指定预留给超级用户的块数百分比

        为超级用户保留的块的比例。为了防止所有的块都被用光,某些情况下启动不起来,必须要为超级用户保留一定比例的块,这个值默认是5%

[root@localhost ~]# mke2fs -m 10 /dev/sdc4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
850304 inodes, 3397747 blocks
339774 blocks (10.00%) reserved for the super user 
   //安装过程中提示出来的信息,预留10%给超级用户
 
[root@localhost ~]# tune2fs -l /dev/sdc4     //使用查看ext系列文件系统信息
.......  
Reserved block count:     339774   //此为预留的超级块信息
.........


-i #: 用于指定为多少字节的空间创建一个inode,默认为8192;这里给出的数值应该为块大小的2^n倍

    这个参数的含义是多少个字节分配一个inode。这个参数反映的是,我们对储存在我们文件系统上的每个文件大小的期许。换句话说,我们期待,每个文件都是4096个字节左右,每个文件需要一个inode。所以我们一共需要500M/4096=12800个inode。

    举例说明,如果我打算在我这个ext2存储的文件都很小,比如说大多数文件都小于1K。那么如果这个-i的值为8192的话,就会出现下面的情况:总共有512000个块却只有64008个inode。 如果你还没体会到我的意思,那么看Group 0 ,1000个左右的free inode,但是有近8000个free block 。根据我的设定,我的文件大多数比较小,那么,当我的文件个数达到1000个时 free inode先用完了,Group 0 还有近7000个块空闲。 也就是说选错了 -i参数使我的inode先用完了。那么就算有大把的free block,你也无法创建文件了。

    这个参数的取值范围是 1024~65536 

设定原则为:考虑下你的大多数文件有多大,就设为多大。不设成1024的整数倍也是可以的

[root@localhost ~]# mke2fs -j -i 2048 /dev/sdc4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6795776 inodes, 3397747 blocks

-N #: 指定inode个数;

[root@localhost ~]# mke2fs -N 1000 /dev/sdc4

小例题:在对分区进行创建文件系统时出现提示在运行时,如下类问题时:解决办法为(先运行:dmsetupstatus,观看提示结果,再运行 dmsetup remove_all,再次运行:dmsetup status 查看结果与之前有什么不同,此时再创建文件系统就没问题了

[root@localhost ~]# mkfs.ext4 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
/dev/sdc1 is apparently in use by the system; will not make a filesystem here
[root@localhost ~]#dmsetup status
[root@localhost ~]#dmsetup remove_all
[root@localhost ~]#dmsetup status

tune2fs: 查看或修改ext系列的文件系统的相关属性

注意:块大小创建后不能修改

-j: 不损害原有数据,将ext2升级为ext3;

[root@localhost ~]# blkid
/dev/sdc4: UUID="ae221423-d29a-4d23-918c-6c2e22e969d3" TYPE="ext2" 
[root@localhost ~]# tune2fs -j /dev/sdc4
/dev/sdc4: UUID="ae221423-d29a-4d23-918c-6c2e22e969d3" SEC_TYPE="ext2" TYPE="ext3"

-L LABEL: 设定或修改卷标; 

[root@localhost ~]# blkid
/dev/sdc3: LABEL="hello sdc3" UUID="624cbf32-9331-4703-b787-65f1d1a471c4" TYPE="ext2" 
[root@localhost ~]# tune2fs -L "This is LABEL" /dev/sdc3
[root@localhost ~]# blkid
/dev/sdc3: LABEL="This is LABEL" UUID="624cbf32-9331-4703-b787-65f1d1a471c4" TYPE="ext2"

-m #: 调整预留百分比;

#tune2fs -m  10 /dev/sdc4 

-r #: 指定预留块数;

#tune2fs  -r  4096  /dev/sda1

-o: 设定默认挂载选项;(对指定的分区设定挂载选项后,挂载此分区的目录将继承此功能)

#tune2fs  -o   acl  /dev/sdc1    //设定acl控制。
#tune2fs  -o  ^acl  /dev/sdc2    //关闭acl控制

-c #:指定挂载次数达到#次之后进行自检,0或-1表关闭此功能;

#tune2fs -c  


-i #: 每挂载使用多少天后进行自检;0或-1表示关闭此功能;

[root@localhost ~]# tune2fs -l  /dev/sdc1
.......
Mount count:              0
Maximum mount count:      35         //此分区超过挂载35次就检查文件系统
Last checked:             Mon Jul 25 20:48:14 2016
Check interval:           15552000 (6 months)  
 //此分区超过6个月就检查文件系统   这两个条件满足其中一个就触发检查
.......

-l: 显示超级块中的信息;

#tune2fs -l /dev/sdc1

blkid: 查询或查看磁盘设备的相关属性

blkid  device      

[root@localhost ~]# blkid /dev/sdc2
/dev/sdc2: UUID="82f6661f-9edc-4a2d-80a2-34e2e701f722" TYPE="ext2"

blkid  -U   UUID    

[root@localhost ~]# blkid -U 82f6661f-9edc-4a2d-80a2-34e2e701f722
/dev/sdc2

blkid    -L     LABEL

[root@localhost ~]# blkid /dev/sdc3
/dev/sdc3: LABEL="hello world" UUID="624cbf32-9331-4703-b787-65f1d1a471c4" TYPE="ext2" 
[root@localhost ~]# blkid -L "hello world"
/dev/sdc3

e2label: 用于查看或定义卷标

格式:e2label  设备文件 设定卷标

e2label device //查看分区卷标

[root@localhost ~]# e2label /dev/sdc3
hello world

e2label  device   LABEL   修改指定的分区的卷标,如果原本有则替换

 [root@localhost ~]# e2label /dev/sdc4 hello
[root@localhost ~]# e2label /dev/sdc4
hello

dumpe2fs: 显示ext系列文件系统属性信息

[root@localhost ~]# dumpe2fs  /dev/sdc2   //显示系统属性信息

-h: 只显示超级块中的信息 
[root@localhost ~]# dumpe2fs -h /dev/sdc2
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          82f6661f-9edc-4a2d-80a2-34e2e701f722
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              983040
Block count:              7855784
Reserved block count:     392789
Free blocks:              7725161
Free inodes:              983029
First block:              0
Block size:               2048
Fragment size:            2048
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2048
Inode blocks per group:   256
Filesystem created:       Mon Jul 25 20:57:37 2016
Last mount time:          n/a
Last write time:          Mon Jul 25 20:57:38 2016
Mount count:              0
Maximum mount count:      27
Last checked:             Mon Jul 25 20:57:37 2016
Check interval:           15552000 (6 months)
Next check after:         Sat Jan 21 20:57:37 2017
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:          256
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   half_md4
Directory Hash Seed:      083188b6-9e4c-433f-99dd-abe5be0b2b99

fsck: 检查并修复Linux文件系统(通用所有文件系统)

因进程意外终止或系统崩溃的原因导致写入操作时非正常终止时,可能会造成文件损坏,此时应该检测并修复文件西戎,建议离线进行

-t FSTYPE: 指定文件系统类型

-a: 自动修复

-r:交互式修复

e2fsck: 专用于修复ext2/ext3文件系统

e2fsck  [options]  device

-f: 强制检查;

[root@localhost ~]# e2fsck -f  /dev/sda1

-y:对所有问题自动回答为yes

[root@localhost ~]# e2fsck -y /dev/sdc2
e2fsck 1.41.12 (17-May-2010)
The filesystem size (according to the superblock) is 7855784 blocks
The physical size of the device is 530145 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort? ye

原创文章,作者:Lii,如若转载,请注明出处:http://www.178linux.com/40024

(0)
LiiLii
上一篇 2016-08-25
下一篇 2016-08-25

相关推荐

  • 初学Linux之标准 I/O 和管道

    前面我们已经了解了文件系统的部分内容,我们可以通过 ls 命令让当前目录下的内容都显示在屏幕上,也可以使用 pwd 命令,显示当前的所在的目录路径。但是我们输入的是命令,本身并没有输入“显示”这类命令和要求,但是系统就自动的在屏幕上输出我们命令指定的信息。由此可以想象到,系统自身有默认的一种输出方式,同时,有输出就有输入,当输入的和系统无关,系统也会自动提示错误,以上就是我们接下来要了解的基础内容——标准 I/O。具体的涉及内容包括:三种 I/O 设备,把 I/O 重定向入文件,tr 命令的使用,使用管道链接命令。

    2017-12-02
  • 【N25第六周作业】VIM、crontab、简单脚本

    请详细总结vim编辑器的使用并完成以下练习题 第二周有写过vim的用法,请查看连接: 周期性任务计划:cron 服务程序: cronie:主程序包,提供了crond守护进程及相关辅助工具; 确保crond守护进程(daemon)处于运行状态: CentOS 7: systemctl  status  cron…

    Linux干货 2016-12-27
  • OpenSSL

    三个组件: openssl: 多用途的命令行工具; libcrypto: 加密解密库; libssl:ssl协议的实现; PKI:Public Key Infrastructure CA RA CRL 证书存取库  建立私有CA: OpenCA openssl  证书申请及签署步骤: 1、生成申请请求; 2、RA核验; 3、CA签署; 4…

    Linux干货 2015-03-21
  • 细节决定成败–空格的巨大作用以及正则表达式中元字符的转义

    字符串的条件判定 1.字符串判定 一定要用双[[ ]] 2.字符串判定=~默认支持扩展正则表达式,这里注意双引号的使用 仅仅做是否包含时,有无双引号无区别。 但是利用其他扩展表达式时 双引号一定要去掉 锚定示例 多条件判定时-o -a使用时,不能使用双中括号 空格有无的差别 !的使用细节 !到目前为止 有两种意义 条件判定取反 历史命令的调用 两者的使用却别…

    2017-03-19
  • 网络管理之基础知识

    Linux的网络配置 IP地址   它们可唯一标识 IP 网络中的每台设备  每台主机(计算机、网络设备、外围设备)必须具有唯 一的地址  IP地址由两部分组成: • 网络ID: • 标识网络 • 每个网段分配一个网络ID • 主机 ID: • 标识单个主机 • 由组织分配给各设备   IPv4地址格式:点分十进制记法  …

    Linux干货 2016-09-10
  • linux学习笔记: grep命令,正则表达式

    linux学习笔记:grep命令,正则表达式 linux运维笔记 简介 grep命令是一个最初用于Unix操作系统的命令行工具,在给出文件列表或者标准输入之后,grep会对匹配一个或者多个正则表达式的文本进行搜索,并且只输出匹配或者不匹配的行或者文本。(参见维基百科)  正则表达式是计算机科学的一个概念,正则表达式使用单个字符串…

    Linux干货 2017-04-07