认识EXT2文件系统

文件的系统特性

Linux的正规文件系统为Ext2

文件数据除了文件实际内容外,还包括其他属性(文件权限、文件属性)。

文件系统将这两部分数据分别存放在不同的块,权限和属性放在inode内,实际数据放在data block块中。此外还有一个super block,记录整个文件系统的信息。

  1. super block:记录文件系统的整体信息,包括inode/block的总量、使用量和剩余量。
  2. inode:记录文件的属性,一个文件占用一个inode,同时记录文件数据所在的block号码
  3. block:实际记录文件的内容,若文件很大,会占用多个block

Ext2属于索引式文件系统,所有block都记录在inode中,与之不同的FAT格式则没有inode存在,因此FAT格式无法一开始就把所有block全部读取出来,每个block号码都记录在前一个block中。如果block分布离散,则读取时间很长,因此FAT需要碎片整理,将同一个文件的block汇整到一起。

因为Ext2是索引式文件系统,基本不需要碎片整理(不绝对)。

Linux的Ext2文件系统(inode)

为了便于管理,Ext2文件系统在格式化的时候区分多个块组(block group),每个块组都有自己独立的inode/block/superblock系统。

在整体规划时,文件系统最前面有一个启动扇区,这个启动扇区可以安装引导装载程序。

个人理解:磁盘分区后,针对每个分区都要进行格式化,所以Ext2文件系统是对于每个分区而言的。

Ext2格式化后如下表所示:

启动扇区 block group1 block group2 block group3 ……

每个块组如下表所示:

super block 文件系统描述 块对应表 inode对应表 inode table data block

data block(数据块)

大小有1kb,2kb,4kb

block的大小会影响文件系统能够支持的最大磁盘容量和最大单一文件容量

每个块最多只能存放一个文件,每个文件最少占有一个数据块。

inode table(inode表格)

存放文件的属性和文件数据所在的block号

每个inode大小均为128bytes,每个文件都仅占用一个inode

文件系统能创建的数目和inode数量有关

系统读取文件时,先找到inode,并分析inode记录的权限和用户是否一致,符合才读取对应的block

分析:

一个inode大小128bytes,记录一个block需要4bytes,如果文件特别大,则会有许多的block,显然inode空间不足以记录,因此inode记录block区域定义为:12个直接、一个间接、一个双间接、一个三间接。

假设每个block大小为1k:

12个直接:12*1k=12k

间接:256*1k=256k  间接指inode记录一个块的号码,这个块记录的是所有实际数据块的号码,每个块大小1k,记录一个块号码需要4bytes,则每个块能记录1k/4bytes=256条记录。

双间接:256*256*1k

三间接:256*256*256*1k

总额:12k+256k+256*256k+256*256*256k = 16G

super block(超级块)

记录整个文件系统信息。包括block和inode总量,未使用量,block和inode的大小(block:1k,2k,4k  inode:128bytes)

super block大小为1024bytes

除了第一个block group内含有super block外,其余block group不一定含有super block,若含有,则为第一个block group的super block备份,用于super block的救援

File system Description(文件系统描述)

该区段用于描述每个block group的开始和结束的block号码,以及说明每个区段(superblock,bitmap,inodemap,datablock)分别介于哪一个block号码之间

block bitmap(块对应表)

记录哪些block是空的,添加文件时,迅速找到可使用空间。当删除文件时,也会标记对应块为未使用状态。

inode bitmap(inode对应表)

记录使用与未使用的inode号码

查看文件系统

dumpe2fs指令(仅仅适用于ext2文件系统)

与目录树的关系

文件和目录都占用一个inode,根据文件内容大小分配多个block,目录的内容是文件名,因此文件名存放在目录的block内。文件对应的inode不记录文件名。

举例:

假设需要读物/etc/passwd这个文件,系统如何读取?

//首先显示下各级目录及文件的inode号码
[root@localhost ~]# ls -dli / /etc /etc/passwd
dr-xr-xr-x. root root 6月 : /
drwxr-xr-x. root root 6月 : /etc
-rw-r--r--. root root 6月 : /etc/passwd

1. 首先找到根目录的inode号码为128,inode具有的root权限为读取和执行,我们可以读取其block内容

2. 经过上面步骤,我们获得/的block的号码,并找到该内容有etc/目录的inode号码(134311585)

3. 读取134311585的inode号码后,获取etc/的inode,得知root具有对该目录的rwx权限,因此可以读取etc/的目录

4. 通过上面的inode,可以取得block号码,并找到文件passwd的inode号码(138481090)

5. 读取138481090得到inode,得知root具有rw权限,因此可以读取passwd的block

6.根据上面得到的inode,得到block号码,读取block内容

Ext2/Ext3文件的访问与日志文件系统的功能

新增一个文件或目录时文件系统的行为:

1.确定用户对于添加文件的目录是否有w和x的权限

2.根据inode bitmap找到未使用的inode,并将新文件的权限和属性写入

3.根据block bitmap找到未使用的block,并将实际数据写入,更新inode的block指向数据。

4.将刚才写入inode和block数据同步更新inode bitmap和block bitmap,并更新super block

数据的不一致性:

当上述操作过程出现故障,导致部分写入,比如第四步未完成。

日志文件系统:

在文件系统中规划一个块,专门记录写入或修订文件的步骤。

Ext2的升级版本Ext3支持日志功能。

Linux文件系统的操作:

Linux对文件的写入采用异步处理,当系统加载一个文件到内存后,如果文件未被修改,则在内存区段的文件数据会被设置为clean,如果内存中的文件被修改了,内存的数据被设为dirty,系统会不定时的将内存中设为dirty的数据写入到磁盘。可以使用sync指令手动写入

载点的意义

文件系统必须连接到目录树才能被我们使用,将文件系统与目录树结合的操作称为挂载。

挂载点一定是目录,该目录为进入该文件系统的入口。

VFS(虚拟文件系统)

用于管理所有Linux的文件系统

文件系统的简单操作

磁盘与目录的容量:df,du

df:列出文件系统的整体磁盘使用量

-a:列出所有文件系统,包括/proc等

-h:以合适的方式显示容量单位

-i:不用硬盘容量,而用inode数量显示

[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root % /
devtmpfs % /dev
tmpfs % /dev/shm
tmpfs % /run
tmpfs % /sys/fs/cgroup
/dev/mapper/centos-home % /home
/dev/sda5 % /boot
tmpfs % /run/user/0 [root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 46G .8G 41G % /
devtmpfs .9G .9G % /dev
tmpfs .9G 88K .9G % /dev/shm
tmpfs .9G 8.9M .9G % /run
tmpfs .9G .9G % /sys/fs/cgroup
/dev/mapper/centos-home 23G 92M 23G % /home
/dev/sda5 497M 213M 284M % /boot
tmpfs 373M .0K 373M % /run/user/0 [root@localhost ~]# df -ah
Filesystem Size Used Avail Use% Mounted on
rootfs - - - - /
sysfs - /sys
proc - /proc
devtmpfs .9G .9G % /dev
securityfs - /sys/kernel/security
tmpfs .9G 88K .9G % /dev/shm
devpts - /dev/pts
tmpfs .9G 8.9M .9G % /run
tmpfs .9G .9G % /sys/fs/cgroup
......省略

上述,有些使用量为0的文件系统(如/proc),都是挂在内存上的。

/dev/shm该目录是利用内存虚拟出来的磁盘空间

du:评估文件系统的磁盘使用量

du [-ahskm] 文件或目录名

-a:列出所有文件和目录容量

-h:以合适的方式显示容量

-s:列出总量而已,而不列出每个各别的目录占用容量

//直接使用du,列出当前目录目录下的目录容量(不含文件)
[root@localhost ~]# du
./.config/imsettings
./.config/gnome-session/saved-session
./.config/gnome-session
./.config/gconf
.
.
.
省略
.
.
.
./.vnc
./.pki/nssdb
./.pki
./.gnupg
./.ssh
./Desktop
./Downloads
./Templates
./Public
./Documents
./Music
./Pictures
./Videos
./桌面
. //将文件容量也列出来
[root@localhost ~]#du -a
.
.
.
省略
.
.
.
./.vnc/passwd
./.vnc/xstartup
./.vnc/localhost.localdomain:.log
./.vnc/localhost.localdomain:.pid
./.vnc/localhost.localdomain:.log
./.vnc/localhost.localdomain:.pid
./.vnc/localhost.localdomain:.log
./.vnc/localhost.localdomain:.pid
./.vnc/localhost.localdomain:.log
./.vnc
./.pki/nssdb
./.pki
./.viminfo
./.Xauthority
./.gnupg/pubring.gpg
./.gnupg/gpg.conf
./.gnupg/secring.gpg
./.gnupg/trustdb.gpg
./.gnupg
./.ssh
./Desktop
./Downloads
./Templates
./Public
./Documents
./Music
./Pictures
./Videos
./桌面
./Screenshot from -- --.png
. //查看根目录下每个目录占用量
[root@localhost ~]# du -sm /*
0 /bin
188 /boot
1 /dev
33 /etc
60 /home
0 /lib
0 /lib64
0 /media
0 /mnt
0 /opt
du: cannot access ‘/proc/15885/task/15885/fd/4’: No such file or directory
du: cannot access ‘/proc/15885/task/15885/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/15885/fd/4’: No such file or directory
du: cannot access ‘/proc/15885/fdinfo/4’: No such file or directory
0 /proc
125 /root
9 /run
0 /sbin
0 /srv
0 /sys
1 /tmp
3950 /usr
734 /var

连接文件:ln

-s:默认硬连接,加-s表示符号连接

-f:如果目标文件存在,主动删除目标文件,再创建

hard link:硬连接或实际连接

前面学到,每个文件占用一个inode,文件内容有inode来指向。想要读取文件,必须通过目录记录的文件名来指向正确的inode号码才能读取。即文件名只与目录有关,文件内容只与inode有关。

硬连接就是在某个目录下创建一个新的文件名连接到某inode号码的关联记录。

举例:

[root@localhost Desktop]# cd /tmp
[root@localhost tmp]# mkdir link_t1
[root@localhost tmp]# mkdir link_t2 [root@localhost tmp]# touch ./link_t1/test1.txt [root@localhost tmp]# ln ./link_t1/test1.txt ./link_t2/test2.txt
[root@localhost tmp]# ls -li ./link_t1/test1.txt ./link_t2/test2.txt
-rw-r--r--. root root 6月 : ./link_t1/test1.txt
-rw-r--r--. root root 6月 : ./link_t2/test2.txt

如上,建立硬连接后,两个文件名不同的文件的inode的号码却是一模一样。说明他们所指向的文件内容是一致的。

硬连接的使用限制:

  1. 不能跨文件系统
  2. 不能连接到目录

symbolic link:符号连接,即快捷方式

创立一个独立的文件,这个文件会让数据的读取指向它连接的那个文件的文件名。但源文件被删除后,该文件也就无法打开。

举例:

[root@localhost tmp]# ln -s ./link_t1/test1.txt ./link_t2/test2.txt

[root@localhost tmp]# ls -il ./link_t1/test1.txt ./link_t2/test2.txt
-rw-r--r--. root root 6月 : ./link_t1/test1.txt
lrwxrwxrwx. root root 6月 : ./link_t2/test2.txt -> ./link_t1/test1.txt

如上,inode明显不一样了。

符号连接可以连接到目录。

目录连接数

连接到该目录的其他目录的数目,包括上层目录、本层目录和子目录,因此一般连接数至少为2,但文件连接数为1.

磁盘的分区、格式化、检验与挂载

磁盘分区:fdisk

查看根目录所在磁盘的分区信息

//查看根目录的磁盘文件名
[root@localhost ~]# df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root % / //查看该磁盘的分区表信息
[root@localhost ~]# fdisk /dev/mapper/centos-root
Welcome to fdisk (util-linux 2.23.). Changes will remain in memory only, until you decide to write them.
Be careful before using the write command. Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x784862a5. Command (m for help): p Disk /dev/mapper/centos-root: 49.1 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x784862a5 Device Boot Start End Blocks Id System //由上,可知没有分区信息

查看所有分区信息:

[root@localhost ~]# fdisk -l

Disk /dev/sda: 320.1 GB,  bytes,  sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x0008668e Device Boot Start End Blocks Id System
/dev/sda1 * HPFS/NTFS/exFAT
/dev/sda2 HPFS/NTFS/exFAT
/dev/sda3 HPFS/NTFS/exFAT
/dev/sda4 Extended
/dev/sda5 Linux
/dev/sda6 8e Linux LVM Disk /dev/mapper/centos-root: 49.1 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes Disk /dev/mapper/centos-swap: MB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes Disk /dev/mapper/centos-home: 24.0 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes

可以看到磁盘/dev/sda有六块分区。

此外,要想查询分区信息,使用fdisk /dev/sda ,而不用加数字(/dev/sda1)

  删除磁盘分区:

由上面我们知道/dev/sda有六个分区,使用fdisk /dev/sda指令进入操作,并查看分区信息:

[root@localhost ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.). Changes will remain in memory only, until you decide to write them.
Be careful before using the write command. Command (m for help): p Disk /dev/sda: 320.1 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x0008668e Device Boot Start End Blocks Id System
/dev/sda1 * HPFS/NTFS/exFAT
/dev/sda2 HPFS/NTFS/exFAT
/dev/sda3 HPFS/NTFS/exFAT
/dev/sda4 Extended
/dev/sda5 Linux
/dev/sda6 8e Linux LVM

在以上界面内,尝试删除第一个分区,即/dev/sda1:

Command (m for help): d
Partition number (-, default ):
Partition is deleted Command (m for help): p Disk /dev/sda: 320.1 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x0008668e Device Boot Start End Blocks Id System
/dev/sda2 HPFS/NTFS/exFAT
/dev/sda3 HPFS/NTFS/exFAT
/dev/sda4 Extended
/dev/sda5 Linux
/dev/sda6 8e Linux LVM

新增磁盘分区:

先删除所有分区

//新增分区
Command (m for help): n
Partition type:
p primary ( primary, extended, free)
e extended
//选择主分区
Select (default p): p
//选择分区号
Partition number (-, default ):
//选择起始柱面,直接enter
First sector (-, default ):
Using default value
//选择结束柱面,+512M表示分区大小为512M,让系统自动寻找结束柱柱面
Last sector, +sectors or +size{K,M,G} (-, default ): +512M
Partition of type Linux and of size MiB is set
//查看分区结果
Command (m for help): p Disk /dev/sda: 320.1 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x0008668e Device Boot Start End Blocks Id System
/dev/sda1 Linux

分区后,执行partprob更新分区表

磁盘的格式化

mkfs:

mkfs [-t 文件系统格式]  设备文件名

[root@localhost ~]# mkfs -t ext3 /dev/sda3
mke2fs 1.42. (-Dec-)
/dev/sda3 is mounted; will not make a filesystem here!
[root@localhost ~]# mkfs -t ext3 /dev/sda3
mke2fs 1.42. (-Dec-)
Filesystem label=
OS type: Linux
Block size= (log=)
Fragment size= (log=)
Stride= blocks, Stripe width= blocks
inodes, blocks
blocks (5.00%) reserved for the super user
First data block=
Maximum filesystem blocks=
block groups
blocks per group, fragments per group
inodes per group
Superblock backups stored on blocks:
, , , , , , , , ,
, Allocating group tables: done
Writing inode tables: done
Creating journal ( blocks): done
Writing superblocks and filesystem accounting information: done

mke2fs

mke2fs  [-b block大小]  [-i block大小]  [-L卷标]  [-cj]  设备

磁盘检查:fsck

fsck

[root@localhost ~]# fsck -C -f -t ext3 /dev/sda3
fsck from util-linux 2.23.
e2fsck 1.42. (-Dec-)
Pass : Checking inodes, blocks, and sizes
Pass : Checking directory structure
Pass : Checking directory connectivity
Pass : Checking reference counts
Pass : Checking group summary information
/dev/sda3: / files (0.0% non-contiguous), / blocks

磁盘挂载与卸载

进行挂载前,确保以下几件事:

  1. 单一文件系统不应该被重复挂载到不同的挂载点
  2. 单一目录不应该重复挂载多个文件系统
  3. 作为挂载点的目录理论上应该是空目录

mount:

举例:

创建目录/mnt/sda3,并将分区/dev/sda3挂载到/mnt/sda3下

[root@localhost ~]# mkdir /mnt/sda3
[root@localhost ~]# mount /dev/sda3 /mnt/sda3

使用df查询挂载情况

[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root % /
devtmpfs % /dev
tmpfs % /dev/shm
tmpfs % /run
tmpfs % /sys/fs/cgroup
/dev/mapper/centos-home % /home
/dev/sda5 % /boot
tmpfs % /run/user/
/dev/sda3 % /mnt/sda3

挂载U盘

先查看U盘信息

[root@localhost ~]# fdisk -l

Disk /dev/sda: 320.1 GB,  bytes,  sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x0008668e Device Boot Start End Blocks Id System
/dev/sda1 * HPFS/NTFS/exFAT
/dev/sda2 HPFS/NTFS/exFAT
/dev/sda3 Linux
/dev/sda4 Extended
/dev/sda5 Linux
/dev/sda6 8e Linux LVM Disk /dev/mapper/centos-root: 49.1 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes Disk /dev/mapper/centos-swap: MB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes Disk /dev/mapper/centos-home: 24.0 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes Disk /dev/sdb: 15.4 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x00000000 Device Boot Start End Blocks Id System
/dev/sdb1 * c W95 FAT32 (LBA)

创建挂载点,并挂载

[root@localhost ~]# mkdir /mnt/flash
[root@localhost ~]# mount /dev/sdb1 /mnt/flash

卸载

umount

举例:

[root@localhost ~]# mkdir /mnt/flash
[root@localhost ~]# mount /dev/sdb1 /mnt/flash //卸载上面挂载的U盘
[root@localhost ~]# umount /dev/sdb1

设置开机挂载

开机挂载/etc/fstab及/etc/mtab

系统挂载的一些限制:

  1. 根目录必须挂载,而且一定是第一个被挂载
  2. 其他挂载点必须是已新建的目录
  3. 所有挂载点和分区在同一时间只能挂载一次
  4. 若进行卸载,必须先将工作目录移到挂载点

查阅/etc/fstab内容:

[root@localhost Desktop]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Jun ::
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(), findfs(), mount() and/or blkid() for more info

#Device                                               Mount point   filesystem   parameters  dump  fsck
/dev/mapper/centos-root / xfs defaults    
UUID=4204a9c8-573a-4f7d-a55f-9fe81888ba34             /boot xfs defaults    
/dev/mapper/centos-home /home xfs defaults     
/dev/mapper/centos-swap swap swap   defaults    

这个文件内容共有6个字段:

第一列:磁盘设备文件名或设备的Label

第二列:挂载点

第三列:磁盘分区的文件系统

第四列:文件系统参数

第五列:能否被dump命令使用

第六列:是否以fsck检查扇区

内存交换空间(swap)的构建

当硬件内存不足时,系统将内存中暂时不用的数据放在swap中。

第8章 Linux磁盘与文件系统管理的更多相关文章

  1. Linux学习笔记—Linux磁盘与文件系统管理(转载)

    认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...

  2. Linux磁盘与文件系统管理笔记

    ### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式 ...

  3. Linux学习笔记之Linux磁盘及文件系统管理笔记

    Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...

  4. Linux磁盘与文件系统管理概要

    Linux磁盘与文件系统管理 硬盘组成与分区 硬盘组成 圆形的盘片(主要记录数据) 机械手臂与磁头(可读取盘片上的数据) 主轴马达,转动盘片,让机械手臂的磁头在盘片上读取数据 扇区(Sector)为最 ...

  5. 鸟哥的linux私房菜——第七章学习(Linux 磁盘与文件系统管理)

    1.1).文件系统特征 我们称呼一个可被挂载的数据为一个文件系统而不是一个分区! 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data ...

  6. Linux磁盘及文件系统管理

    在LINUX中我们知道一个很重要的概念,那就是"一切皆文件",这里的一切表示所有在LINUX系统的对象,自然也包括了LINUX中的硬盘设备.在LINUX中所有设备都被抽象成一个文件 ...

  7. linux 学习之九、Linux 磁盘与文件系统管理(1)

    原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem.php#filesys 查看文件系统参数命令 dumpe2fs 盘符地址 例: ...

  8. 鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

    本文总结了Linux操作系统来管理我们的硬盘和文件系统需要使用命令.当我们在系统中增加一个硬盘驱动器.什么是我们需要去通过这个硬盘就可以真正使用步骤?下面步骤: (1)对磁盘进行分区,新建能够使用的分 ...

  9. 鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)

    上一篇文章主要从理论上分析了Linux的Ext2文件系统.这一篇主要解说怎样查看Linux的文件系统的容量以及解说Linux文件系统中的连接文件. 能够通过df和du命令来查看磁盘与文件夹的容量.df ...

随机推荐

  1. T+API HTTPServer服务端

    该服务端是一个HTTP服务器,这样其他语言调用也方便. 出于某些原因,只支持Post方法,不打算支持其他方法,例如Get. API所接受的参数将以Json传送,回传的数据也是一个Json数据,一切只是 ...

  2. 今天差点被断电搞死了,幸好IDE的备份救了我

    今天早上,刚好改了几个PAS的源代码,在按CTRL+SHIFT+S(保存全部) 时,突然断电.有电后,发现这些保存的文件都变成乱码了............. DFM,PAS都是这样,幸好DELPHI ...

  3. 树莓派3B+学习笔记:4、查看GPIO

    GPIO(General Purpose I/O Ports)意思为通用输入/输出端口. 可以在终端重直接查看GPIO的定义. 查看方式1: gpio readall 查看方式2: pinout 可以 ...

  4. 苹果cms网站漏洞修复解决办法

    苹果cms系统,是目前很多电影网站都在使用的一套网站系统,开源,免费,扩展性较好,支持一键采集,伪静态化,高并发的同时承载,获得的很多站长的喜欢,于近日被网站安全检测发现,maccms存在网站漏洞,s ...

  5. 如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

    许多渗透测试人员和攻击者通常都会使用一种被称为“密码喷洒(Password Spraying)”的技术来进行测试和攻击.对密码进行喷洒式的攻击,这个叫法很形象,因为它属于自动化密码猜测的一种.这种针对 ...

  6. mysql secure_file_priv 文件读写问题

    secure_file_priv特性 使用 show global variables like '%secure%'; 查询显示 secure_file_priv的值为null,那么secure_f ...

  7. 20155316 2016-2017-2 《Java程序设计》第1周学习总结

    学习内容总结 在linux的环境下学习怎么安git.jdk.Intellj IDEA 精读教材1.2章 课前准备部分 git的学习 学习进度 系统学习学到创建版本库-廖雪峰的官方网站 git推送学到最 ...

  8. 20155327 信息安全技术 实验二 Windows口令破解

    课程:信息安全概论 班级:1553 姓名:了李百乾 学号:20155327 成绩: 指导教师: 李冬冬 实验日期及时间: 2017年10月11日 15:30-18:00 必修/选修:必修 实验序号:0 ...

  9. Storyboarding by Scripting

    Storyboarding by Scripting In the .osu file, under [Events]:Note: underscores can be replaced with s ...

  10. windows phone 8.1 让项目开启蓝牙genericAttributeProfile

    1.打开项目里面的  Package.appxmanifest 文件 找到<Capabilities>节点,添加代码如下,其中 serviceId:6006 可以自己修改值 <m2: ...