高级文件系统管理(swap,RAID,LVM)

交换分区wasp

swap文件系统:

    linux上的交换分区必须使用独立的文件系统;

        其文件系统的system ID必须为82

创建swap设备,文件系统,使用mkswap命令

创建步骤:

    1.创建交换分区或者文件

    2.使用mkswap写入特殊签名(可以理解为格式化创建swap文件系统,命令也是类似文件系统创建的命令)

    3.在/etc/fstab文件文件中添加适当的条目

    4.使用swapon -a 激活交换空间

blob.png

设定除根文件系统以外的其他文件系统能够开机时自动挂载:/etc/fstab

    每行定义一个要挂载的文件系统及其相关属性:

    6个字段:

        1.要挂载的设备:

            设备文件,例如:/dev/sd*

            LABEL

            UUID

            伪文件系统,如sysfs….

        2.挂载点

            swap类型的设备的挂载点为swap

        3.文件系统类型

        4.挂载选项

            default:使用默认挂载选项

            如果要同时指明多个挂载选项。彼此以逗号“,”分开

                default,acl,noatime,noexec….

        5.转储次序

            0:从不备份

            1:每天备份

            2:隔一天备份(两天备份一次)

        6自检次序

            0:不自检

            1:首先自检(优先),通常只能是根文件系统可以

            2:次级自检

 blob.png   

交换分区启用:swapon

        -a:激活所有的交换分区

        -p priority:指定优先级

        /etc/fstab:pri=value

blob.png

禁用:swapoff

swap的优先级

用户可以给某个swap 指定一个0 到32767 的优先级

如果用户没有指定,那么核心会自动给swap 指定一个优先级,这个优先级从-1 开始,每加入一个新的没有用户

指定优先级的swap ,会给这个优先级减一。

先添加的swap 的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级( 是正数) 永远高于核心

缺省指定的优先级( 是负数)。

优化性能:分布存放,高性能磁盘存放

df命令:

-l:仅显示本地文件的相关信息

-h:humen-readable

-i:显示inode使用状态

-T:文件系统类型

-P:以posix兼容的格式输出

-H:以1000为单位

blob.png

du命令:显示文件大小

-s:显示目录下所有文件大小之和

-h:humen-readable

blob.png

移动介质

挂载意味着使外来的文件系统看起来如同是主目录树的一部分

访问前,介质必须被挂载

摘除时,介质必须被卸载

按照默认设备,费根用户只能挂载某些设备(光盘,DVD,软盘,USB等等)

挂载点通常在/media或者/mnt

光盘设备文件:

    IDE:/dev/hdc

    SATA:/dev/sr0

符号链接:

    /dev/cdrom

    /dev/cdrw

    /dev/dvd

    /dev/dvdrw

挂载和卸载命令

mount -r /dev/cdrom  /media/cdrom

umount  /dev/cdrom

eject命令卸载或者弹出磁盘

创建ISO文

   cp /dev/cdrom /root/centos.iso

    mkisofs -r -o /roo/etc.iso /etc

刻录光盘

    wodim -v -eject centos.iso

dd命令:convert and copy a file

用法:dd if=/path/from/src   of=/path/to/dest

    bs=#  block  size  ,复制单元大小

    count=#,复制多少个bs

of=file 写到所命名的文件而不是到标准输出

if=file 从所命名文件读取而不是从标准输入

bs=size 指定块大小(既是是ibs 也是obs)

ibs=size 一次读size 个byte

obs=size 一次写size 个byte

cbs=size 一次转化size 个byte

skip=blocks 从开头忽略blocks 个ibs 大小的块

seek=blocks 从开头忽略blocks 个obs 大小的块

count=n 只拷贝n 个记录

conv=conversion[,conversion…]  用指定的参数转换文件。

转换参数:

    ascii:换 转换 EBCDIC 为 为 ASCII

    ebcdic:换 转换 ASCII 为 为 EBCDIC

    block:转换为长度为 cbs  的记录,不足部分用空格填充。

    unblock:替代cbs 长度的每一行尾的空格为新行

    lcase:把大写字符转换为小写字符

    ucase:把小写字符转换为大写字符

    swab:交换输入的每对字节

    noerror:出错时不停止

    notrunc:不截短输出文件

    sync:把每个输入块填充到ibs 个字节,不足部分用空(NUL)

磁盘拷贝:

dd if=/dev/sda of=/dev/sdb

备份MBR

dd  if=/dev/sda  of=/tem/mbr.bak  bs=512 count=1

将/dev/sda的MBR拷贝到/dev/sdg中,因为扩展分区中的MBR独立,

所以结果是指将主分区的MBR的信息拷贝过去了,逻辑分区的没有

dd if=/dev/sda of=/dev/sdg bs=512 count=1

blob.png

破坏MBR中的bootloader

dd  if=/dev/zero  of=/dev/sda bs=256 count=1

破坏MBR

dd  if=/dev/zero  of=/dev/sda bs=512  count=1

连个特殊设备:

    /dev/null:数据黑洞

    /dev/zero:吐零机

有一个大与2K 的二进制文件fileA。 。 现在想从第64 个字节位置

开始读取,需要读取的大小是128Byts 。又有fileB,  想把上

面读取到的128Bytes 写到第32 个字节开始的位置,替换

128Bytes ,请问如何实现?

dd if=/dev/zero of=file1 bs=2k count
echo {1..100}|tr -d " ">>file2
dd if=file1 of=file2 bs=1 count=128 skip=63 seek=31 conv=notrunc

blob.png

备份:

dd -if=/dev/sda of=/devsdb

将本地的/dev/sda整盘备份到/dev/sdy

dd if=/dev/sda if=/path/to/image

将/dev/sda全部数据备份到指定路径的image文件

dd if=/dev/sda|gzip >/path/to/image.gz

备份/dev/sda全盘数据,并利用gzip工具进行压缩,保存到指定路径

恢复:

dd if=/path/to/image of=/dev/sda

将备份文件恢复到指定盘

gzigzp -dc /path/to/image.gz |dd of=/dev/sda

将压缩的备份文件恢复到指定盘

拷贝内存资料到磁盘

dd if=/dev/mem of=/root/mem.bin bs=1024

将内存里的数据拷贝到root目录下的mem.bin文件

从光盘拷贝iso镜像

dd if=/dev/cdrom of=/root/cd.iso

拷贝光盘数据到root 文件夹下,并保存为cd.iso 

销毁磁盘数据

dd if=/dev/urandom of=/dev/sda1

利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,

/dev/sda1 将无法挂载,创建和拷贝操作无法执行。

测试系统最佳的block size

dd if=/dev/zero of=file1 bs=1024 count=1000000
dd if=/dev/zero of=file1 bs=2048 count=500000
dd if=/dev/zero of=file1 bs=4096 count=250000
dd if=/dev/zero of=file1 bs=8192 count=125000

blob.png

以结果来block=4096上,读写数据速度最快,为最佳block size

测试磁盘的速写速度

dd if=file of=/dev/null 
dd if=file bs=64k |dd of=/dev/null
dd if=/dev/zero of=file1 bs=1024 count=1000000

blob.png

读入速度:85.3MB/s 左右 写入速度:70MB/s左右

修复硬盘

dd if=/dev/sda of=/dev/sda

当硬盘较长时间(比如1 ,2 年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可

能导致I/O 错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死

回生。且这个过程是安全,高效的

练习:

1 、创建一个2G 的文件系统,块大小为2048byte, , 预留1%可用空间, 文件系统ext4 ,卷标为TEST ,要求此分区开机后自

动挂载至/testdir 目录,且默认有acl 挂载选项

第一步:

创建一个2G的分区

fdisk /dev/sdb1

blob.png

第二步:

格式化分区,创建文件系统,使用如下选项

blob.png

[root@localhost ~]# tune2fs -l /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   test   ======>卷标test
Last mounted on:          <not available>
Filesystem UUID:          bd915a87-493a-415b-8d2f-8cedaab84792
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              131072
Block count:              1048576
Reserved block count:     10485   ==================>预留大小1%
Free blocks:              994651
Free inodes:              131061
First block:              0
Block size:               2048    ================>块大小为2048k
Fragment size:            2048
Group descriptor size:    64
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Mon Aug 29 21:17:12 2016
Last mount time:          n/a
Last write time:          Mon Aug 29 21:17:12 2016
Mount count:              0
Maximum mount count:      -1
Last checked:             Mon Aug 29 21:17:12 2016
Check interval:           0 (<none>)
Lifetime writes:          65 MB
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
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      516971e6-940d-4dc4-b883-377fe5a4a811
Journal backup:           inode blocks

第三步:

mkdir /testdir
vim /etc/fstab

blob.png

mount -a

blob.png

完成!!

 2 、写一个脚本,完成如下功能:

(1)  列出当前系统识别到的所有 磁盘设备

(2)  如磁盘数量为1 ,则显示其空间 使用信息,否则,则显示最后一个磁盘上的空间 使用信息

  1 #!/bin/bash
  2 #qiuwei
  3 #写一个脚本,完成如下功能:
  4 #1. 列出当前系统识别到的所有 磁盘设备
  5 #2. 如磁盘数量为1 ,则显示其空间 使用信息,否则,则显示最后一个磁盘上的空间 使用信息
  6 
  7 
  8 #:用grep找出lsblk中所有的磁盘设备,然后显示最后一行的磁盘的空间使用信息
  9 #因为不管有多少块磁盘,只要显示最后一块就可以得出结果了
 10 lsblk|grep  "^sd[a-z]"|tail -n 1

blob.png

高级文件系统管理

1.设定文件系统配额

在生产环境中,为了限制普通用户创建文件的大小和数量,我们一般会对普通用户的家目录设定文件系统配额

特点:

    1.在内核中执行

    2.以文件系统为单位启用

    3.对不同组或者用户的策略不同

    4.根据块或者节点进行限制

        执行软件限制(soft limit)====>文件总大小或者总数量超过软限制,会出现警告

        硬限制(hard limit)====>文件总大小或者总数量到达硬限制,就不能在增加文件大小或者创建新文件了,

我们现在来实际操作下

第一步:

一般用户的文件会保存至家目录,使用我们首先要将一个单独分区挂载至/home下,但是如果直接挂载到/home下的话,/home里面

的文件就没了,所有我们应该先创建分区,格式化创建文件系统,然后随便挂载在一个挂载点/mnt,然后将/home下的数据迁移至此挂载点,

然后在将此设备挂载到/home下,卸载挂载点/mnt,这样单独分区挂载到了/home,

    a.创建文件系统

blob.png

    b.挂载到/mnt下,然后复制文件至/mnt下

blob.png

    c.将/dev/sdb2挂载之/home下,在/etc/fstab里面改,特性:usrquota,grpquota

blob.png

    将之前的挂载点/mnt卸载掉

第二步:

创建配额数据库

quotacheck  -cug /home命令

blob.png

如果创建失败,使用如下命令关闭selinux,在使用quotacheck  -cug /home命令

setenforce  0

blob.png

第三步:

启用数据库

quotaon -p /home 查看是否启用数据库

quotaon  /home 启用数据库

blob.png

第四步:

配置配额项

edquota pingxiong

edquota  -p wang mage

setquota tom 100000 150000 0 0 /home

blob.png

第五步:

测试

quota pingxiong

repquota  /home

blob.png

软配额是100M,超过报警,且无法超过200M

blob.png

blob.png

完成!!!!

RAID:Redundant Arrays of Inexpensive Disks    廉价冗余磁盘阵列

   Redundant Arrays of  Independent Disks   独立冗余磁盘阵列

多个磁盘合成一个“陈列”来提高更好的性能,冗余,或者两者都提供

提高IO能力:

    磁盘并行读写

提高耐用性:

    磁盘冗余来实现

RAID级别:多块磁盘组织在一起的工作方式有所不同

RAID实现方式:

    外接式磁盘阵列:通过扩展卡提供适配能力

    内接式RAID:主板集成RAID控制器

        安装OS前在BIOS里配置

    Software RAID:

级别:level

    RAID-0:0,条带卷,strip

    RAID-1:1,镜像卷,mirror;

    RAID-2:2,

    RAID-3:3,

    RAID-4:4,

    RAID-5:5,

    RAID-6:6    

    RAID-10

    RAID-01

RAID-0:文件平分之每个磁盘上

    读写能力提升;将文件数据并行至各个磁盘中,多通道同时进行,IO能力必然增强   

    可用空间:N*min(s1,s2…)最小磁盘的大小*磁盘数

    无容错能力:任何一块磁盘坏掉了,整个RAID数据都会坏掉

    最少磁盘数:+2

blob.png

RAID-1:完整文件都要存在每个硬盘上

    读性能提升,写性能略有下降

    可用空间:1*min(s1,s2…..)

    有冗余能力

    最少磁盘数: 2+

blob.png   

RAID-4:多块数据盘异或运算值,存于专用校验盘

    1101   0110  1011

    存1    存2   校验  

假如磁盘1坏掉,可以通过磁盘2和校验盘取异或值,反响推导出磁盘的数据

此级别的RAID缺点是校验盘损坏评论太高

RAID-5:

    读,写性能提升

    可用空间:(N-1)*min(s1,s2…..)最小磁盘的大小*磁盘数(取最小)

    有容错能力:最多只能坏一个磁盘

    最少磁盘数:3+

在RAID-4的基础上提升,各个磁盘轮流充当校验盘,此级别RAID一般生产环境中最常用

blob.png  

RAID-6:  在RAID5的基础上,再增加一块校验盘

    读、写性能提升

    可用空间:(N-2)*min(S1,S2,…)

    有容错能力:允许最多2 块磁盘损坏

    最少磁盘数:4, 4+

…….    

RAID10:

    读写性能提升

    可以空间:N*min(s1,s2…..)最小磁盘的大小*磁盘数(取最小)/2

    有容错能力:每组镜像最多只能坏一块

    最少磁盘数:4+

  blob.png

RAID01:和上面的RAID10组合相反

blob.png

RAID-10在容错能力上比RAID-01要强,RAID-01每组镜像最多只能坏一块,但是如上只有两组

假如磁盘1坏了,raid4.5.6任何一个坏了,整个RAID01数据就都损坏了,因为上面两个RAID-0的总的数据虽然一样,

但是并不等于磁盘1和磁盘4数据一样,数据平分也不是都要分成一模一样的

同理,RAID-50就是先做RAID-5,在做RAID-0

RAID-7:可以理解为一个独立存储计算机,自身带有操作系统的管理工具,可以独立运行,理论上性能最高的RAID模式

JBOD:Just a Bunch Of Disks

    功能:将多块磁盘的空间合并一个大的连续空间使用

        可用空间:sum(S1,S2,…)

常用级别:RAID-0, RAID-1, RAID-5, RAID-10,RAID-50, JBOD

软RAID

mdadm :为软RAID 提供管理界面

为空余磁盘添加冗余

结合内核中的md(multi devices)

RAID 设备可命名为/dev/md0 、/dev/md1 、/dev/md2、/dev/md3 等等

实际创建一个软RAID-5

第一步:

在磁盘上创建五个分区,做四个磁盘和一个空闲盘,其system ID必须为fd

blob.png

第二步:

创建RAID设备    

mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 /dev/{sdc3,sdd1,sde1,sdf1,sdg1}

blob.png

mdadm -D /dev/md0

blob.png

cat /proc/mdstat

blob.png

第三步

格式化磁盘阵列RAID-5,创建文件系统

blob.png

第四步:

挂载

[root@localhost ~]# mkdir /mnt/raid
[root@localhost ~]# vim /etc/fstab 
[root@localhost ~]# mount -a

blob.png

blob.png

第五步:

生成配置文件

blob.png

mdadm -S /dev/md0 停止raid
mdadm -A /dev/md0 启动raid

备注:停止和启动一定要在卸载的时候进行!!!!!!!!!!!!

blob.png

第六部:测试

mdadm /dev/md0 -f /dev/sdf1 模拟损坏

mdadm /dev/md0 -r /dev/sdf1 删除成员

mdadm /dev/md0 -a /dev/sdf1 增加

mdadm -G /dev/md0 -n 6 -a /dev/sdd4 增加成员

[root@localhost ~]# mdadm  /dev/md0 -f /dev/sdf1
mdadm: set /dev/sdf1 faulty in /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Aug 30 10:43:48 2016
     Raid Level : raid5
     Array Size : 9431040 (8.99 GiB 9.66 GB)
  Used Dev Size : 3143680 (3.00 GiB 3.22 GB)
   Raid Devices : 4
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Tue Aug 30 11:20:35 2016
          State : clean, degraded, recovering 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 1
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 77% complete

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : 1127eda8:86f13176:195b31c4:19f44971
         Events : 32

    Number   Major   Minor   RaidDevice State
       0       8       35        0      active sync   /dev/sdc3
       1       8       49        1      active sync   /dev/sdd1
       2       8       65        2      active sync   /dev/sde1
       4       8       97        3      spare rebuilding   /dev/sdg1

       5       8       81        -      faulty   /dev/sdf1 =====> /dev/sdf1损坏,之前的空闲盘补上去了

其他选项不详细做了

第七步:当不使用RAID时,删除RAID

umount /mnt/raid    ====>卸载

mdadm -S /dev/md0 停止raid  ===>停止RAID

rm -f /etc/mdadm.conf  ===>删除配置文件

vi /etc/fstab      ===>删除开机启动的挂载设置

fdisk /dev/sda     =====>删除分区

mdadm –zero-superblock /dev/sdd1  ===>

[root@localhost ~]# umount /dev/md0
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# rm -rf /etc/mdadm.conf 
[root@localhost ~]# vim /etc/fstab

blob.png

完成!!

工具:mdadm  模式化的工具

    命令语法格式:mdadm [mode ] <raiddevice>[options]<component-decixes>

        支持的RAID级别:LINEAR,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10

模式:

    创建 :-C

    装配 :-A

    监控 :-F

    管理:-f,-r,-a

<raiddevice> :/dev/md#

<component-decixes>:任意块设备

-C:创建模式

    -n #:使用#个块设备来创建此RAID

    -l #:指明要创建的RAID的级别

    -a{yes|no}:自动创建目标RAID设备的设备文件

    -c chunk_size:指明块大小

    -x #:指明空闲盘的个数  ============》此项对不支持冗余能力的RAID无效,因为空闲盘的作用是在别的磁盘坏掉时,临时顶上去的,

-D:显示RAID的详细信息

    mdadm -D /dev/dm#

管理模式:

    -f:标记指定磁盘为损坏

    -a:添加磁盘

    -r:移除磁盘

观察md的状态

    cat  /proc/mdstat

停止md设备

    mdadm  -S  /dev/md#

    watch 命令:

    -n#  :刷新间隔,单位是秒

    watch  -n# 'command'

练习

1.创建一个可用空间为1G 的RAID1 设备,要求其chunk 大小为128k ,文件系统为ext4 ,有一个空闲

盘,开机可自动挂载至/backup 目录

第一步:创建两个1G的分区,

第二步:创建RAID1

mdadm -C /dev/md1 -a yes -c 128 -l 1 -n 2 /dev/sd{f1,g1}

blob.png

第三步:

格式化,创建文件系统,挂载

[root@localhost ~]# mke2fs -t ext4 /dev/md1
[root@localhost ~]# vim /etc/fstab 
[root@localhost ~]# mount -a
[root@localhost ~]# mdadm -D /dev/md1

blob.png

blob.png

2.创建由三块硬盘组成的可用空间为2G 的RAID5设备,要求其chunk 大小为256k ,文件系统为ext4

,开机可自动挂载至/mydata

 备注:此题上卖弄的实例已经做过了,限于篇幅,这里就不在做了,参考上面案例

逻辑卷管理器(LVM)

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

允许在多个物理设备间重新组织文件系统

    将设备指定为物理卷

    用一个或者多个物理卷来创建一个卷组

    物理卷是用固定大小的物理区域(Physical Extent,PE )来定义的

    在物理卷上创建的逻辑卷是由物理区域(PE )组成

    可以在逻辑卷上创建文件系统

blob.png    



lVM: Logical  Volume  Manager; Version2

dm:device mapper ;将一个或多个底层块设备组织成一个逻辑设备的模块

  设备名:  /dev/dm-#

软链接:

/dev/mapper/VG_NAME-LV_NAME

    /dev/mapper/vo10-root

/dev/VG_NAME/LV_NAME

    /dev/vo10/root

pv管理工具

pvs:简要pv信息显示

pvdispaly:显示pv的详细信息

pvcreate /dev/device:创建pv

pvremove:删除pv

备注:分区的system ID必须为fd,才能创建成pv

blob.png

vg管理工具

vgdisplay:显示vg的详细信息

vgcreate:创建

-s :指明块大小(默认4M)

vgextend:增加pv

blob.png

vgreduce :移除pv

    要先pvremove,在vgreduce

blob.png

vgremove:删除卷组

lv管理工具

lvmconf:设置逻辑卷配置文件

lvs:查看

lvdisplay

lvcreate -L #[mMgGtT]  -n NAME  VolumeGroup

blob.png

blob.png

blob.png

扩展逻辑卷:

    lvextend  -L [+]#[mMgGtT]   /dev/VG_NAME/LV_NAME

有+表示增加了#大小

没有表示增加到#大小

1.扩展物理边界

lvextend -L 15G /dev/vg0/lv0

blob.png

2.修改逻辑边界

resize2fs /dev/mapper/vg0-lv0   ==》不需要重新挂载,直接就把空间加上去了

blob.png

缩减逻辑卷

  1. umount  /dev/mapper/vg0-lv0  先卸载文件系统

blob.png

2.e2fick  -f /dev/mapper/vg0-lv0 文件系统强制检测和修复

blob.png

3.resize2fs  /dev/mapper/vg0-lv0    #[mMgGtT] 给定大小,指明缩减至多大   ==>逻辑边界

blob.png

4.lvreduce  -L [+]#[mMgGtT]   /dev/VG_NAME/LV_NAME                            ===>物理边界

有-表示缩减了#大小

没有表示缩减到#大小

blob.png

5.mount  /dev/mapper/vg0-lv0 重新挂载

blob.png

如果不想使用了,删除步骤如下:

从逻辑卷lv,到卷组vg,再到pv,全部删除过程

umount /dev/vg0/lv0   卸载

lvremove  /dev/vg0/lv0  删除lv

vgremove  /dev/vg0 删除vg

pvremove  /dev/sdd5   删除pv

blob.png

以上为上次上课的全部内容,如有错误,请帮忙留言指出,谢谢!!

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

(0)
qiuweiqiuwei
上一篇 2016-08-30
下一篇 2016-08-30

相关推荐

  • Bash Shell详解

    引言:什么是Shell? Linux的命令行接口归结起来就是各种Shell,那么到底什么是Shell?Shell,译为外壳,是用户直接连入计算机所使用的计算机程序,负责解析用户提供的命令,如词法分析、语法分析、句法分析。 1.Shell的分类 Linux 的命令 shell 是与操作系统相分离的一层。不同的 shell 环境影响您具备不同的功能,比如可编辑的…

    2017-09-07
  • 一次简单的内核编译(二)

      前言:     此次编译是继一次简单的内核编译(一)进行操作编译的,请先查看第一篇再来看此片文章 一、使用busybox代替自己制作的init脚本,实现内核启动;  1、在这里我们使用静态编译busybox,所以需要先安装glibc-static依赖包,如果不安装会报错     2、解…

    Linux干货 2015-06-01
  • N25第六周作业

    vim 是vi编辑的升级版,同样有三种工作模式:编辑、命令和一般 模式 #:指定行号位置 #,#:指定多少行到多少行 #,+#:指定范围,多少行开始,加#行 $:最后一行 .:当前行 .,$-1,当前行到倒数第二行 1,$:全文 %:全文 /从上往下,?:从下往上 搜索 /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行 s/要查找的内容…

    Linux干货 2017-01-11
  • 内键命令和外部命令

    命令的基本格式 COMMAND  [OPTIONS…]  [ARGUMENTS…]        命令 (COMMAND)       OPTIONS(选项):用于启用或关闭命令的某个或某些功能      …

    2017-05-23
  • Linux第七周小结

    1、创建一个10G分区,并格式为ext4文件系统 a) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl; b) 挂载至/data/madata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之 3、写一个脚本 a)&…

    2017-08-13
  • 用户和组的简介

     在第二周的学习中,关于用户和组是一个难点,也是重点,本篇博客则是对用户和组的简单阐述,如有错误或不足还请各位大牛指出,在此谢过! 1、用户 # 1.1用户的定义      通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(…

    Linux干货 2017-07-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-01 12:12

    文章对当天所学内容进行了详细的总结,同时通过自己的练习,对所学命令进行了联系,但是如果能思维上进行优化会使人印象更为深刻哦。