我的另一篇 LVM 博客,可供参考
我的另一篇 LVM 博客,可供参考
我的另一篇 LVM 博客,可供参考
0X00 LVM是什么,有什么用
LVM的全称是Logical Volume Manager(逻辑卷管理)。是Linux下的一种磁盘分区管理机制,方便给分区(逻辑分区)扩容和压缩。最简单的可以理解成原始的磁盘分区管理是单纯的给每个独立的磁盘进行分区,然后对每个分区进行管理,这样的话每次扩容和压缩空间都会很麻烦。LVM就相当于把所有磁盘的分区都揉到一起,揉成一个大磁盘或者说是大分区,然后从大的中分出小的,这样的话扩容和压缩都会变得方便。
版权声明:图片来自Linux.cn
0X01 基础术语解释
PV 是 _Physical Volume_ 物理卷 \也就是真实的磁盘分区
VG 是 _Volume Group_ 卷组 \也就是好多PV组成的一个组
LV 是 _Logical Volume_ 逻辑卷 \就是从VG中分出来的分区
PE 是 _Physical Extent_ 物理区域 \是PV中最小的存储单元
LE 是 _Logical Extent_ 逻辑区域…
DHCP介绍
功能简介
DHCP是一个基于UDP的工作在应用层的协议,用来自动分配IP地址。
应用实例:一个办公室有十个人,每个人每天上下班都要带着自己的笔记本,所以每次都要手动配置IP地址,这样简直就不是计算机该干的事情是吧。。所以DHCP应运而生,它能够根据服务端的配置给连接到网络的客户机自动分配IP地址。
提供的服务
1.提供IP地址和子网掩码
2.提供IP地址对应的网络地址和广播地址
3.默认网关地址
4.DNS服务器地址
通俗的解释
你们寝室里有六个人(对应到客户机),每个人都需要用床(对应到IP地址)睡觉,所以每个人回到寝室都会需要一张床。这样的话每个人每次回到寝室的时候都需要宿管(对应到网络管理员)都需要给他分配一个床位,这样就很麻烦。
现在有一个“动态床位分配系统”(对应到DHCP服务器),你们每个人回到寝室的时候都会收到一张纸条,纸条上写了你可以使用哪个床位,这就简单多了。…
0X00 什么是链接文件
Linux中的链接文件就相当于是Windows中的快捷方式,通过链接文件可以访问到链接指向的源文件。但是Linux下的链接文件和Windows中的快捷方式还是有一定的区别。Linux中有两种链接文件硬链接 和软连接 也称为符号链接
在介绍链接文件之前先要介绍一下Linux文件系统中的inode
inode是Linux文件系统中文件的唯一定位器,每一个文件都有一个inode,也是唯一的,每一个inode唯一对应一个文件。
还要熟悉一下指针的问题,如果学习过C/C++的话理解起来会很轻松
计算机中所有的数据都是保存在磁盘里的,使用的时候会读取到内存中,而磁盘和内存都是一块一块的地方,我们用地址来找到数据的具体存放位置。保存了文件或者数据存放地址的物体(通常是变量)就称为指针。
我们在Linux的操作界面看到的文件,都是一个指针,他们指向磁盘的某个具体位置。这样我们每次点开文件的时候,系统就可以在磁盘对应的位置打开我们需要的文件。
0X01 硬链接…
如果我们只有一台服务器,应该怎么实现让这台服务器同时处理PHP和JSP的请求?
这里的解决方案是通过Apache的虚拟主机(vhost)来进行端口转发。
Apache会通过访问服务器的域名将请求转发至不同的端口或者不同的服务器。
0X00 前提&目的
前提:
拥有一个域名,并有两个A解析,同时解析到这台服务器的IP
分别拥有一个JSP和PHP的页面(网站)
目的:
使用php.test.com访问的时候解析到PHP的网站上
使用jsp.test.com访问的时候解析到JSP的网站上
操作系统:
Centos 7.x 如果是之前的版本或是其他系统可能出现不同的情况
0X01 安装httpd (Apache)
安装并启动服务
0X02 安装PHP
0X03 安装JDK用来配合JSP
0X04 安装tomcat用于解析JSP页面
0X05 配置httpd用于同时支持PHP和JSP
打开配置文件
在配置文件的最前端添加如下内容
0X06 最后
现在就可以使用php.test.com 和 jsp.test.com分别访问到PHP和JSP的页面了
首先需要安装好MySQL/Mariadb的服务端和客户端,并且能连接到服务端
命令中的大写字母是SQL的关键字,小写字母是自己的相关属性和数据
0X00 连接到数据库
0X01 创建数据库
0X02 建立一个表
建立一个名为student的表
索引:
10个字符长度的name 不能为空
11个字符长度的number 不能为空
int类型的age 不能为空
0X03 查询数据库和表
0X04 插入数据
0X05 查询数据
0X06 更新数据
0X07 删除数据
0X00抽象类&接口简介
抽象类
1. abstract 抽象修饰符——抽象就是为了让子类集成的,并不能直接实现一个对象
2. 抽象类中所有抽象方法都要在子类中实现
3. 拥有抽象方法的类必须声明为抽象类
4. 抽象类可以有非抽象的方法
接口
1. interface 接口修饰符——接口是为了让类实现的
2. 变量默认是public static final并且不能改变
3. 方法默认是public abstract并且不能改变
4. 接口不实现方法
0X01抽象类和接口的区别
1. 抽象类可以实现方法细节,接口不能
2. 抽象类的变量可以是各种类型的,接口不能
3. 抽象类可以有静态代码块和静态方法,接口不能
4. 一个类可以实现多个接口,而只能继承自一个抽象类
5. 继承可以理解成“是不是”,接口可以理解成“有没有”
0X02举个例子
有一个接口CanFly
有一个抽象类Bird
有一个Sparrow类继承自Bird
有一个抽象类Airplane
有一个Jian_10类继承自Airplane
有一个包含主方法的类来测试…
0X00 编译环境
Ubuntu 14.04 + GNU/gcc
如果要在Windows下编译的话, 可能 需要注释掉16-18的编译预处理,还 可能 要注释掉getch()的函数声明及定义,最后在加上conio.h的头文件。
0X01 遇到的问题
Windows中能使用getch()函数,这个函数是以输入流的方式输入。(简单地说就是按下去一个按键就能有反应,而不用点击回车)。但是在Linux环境下没有这个函数也没有connio.h的头文件。但是每次按一下还要按回车还是挺逆天的。不过我在网上找到了替代品(感谢 _幽鬼_ )
<http://my.oschina.net/yougui/blog/111345>
0X02 代码实现
实现简单日历
读取当前时间并显示本月日历
输出格式化
0X00 Linux文件目录结构
我们在Windows环境下的文件目录结构大概是几个盘符,C盘D盘E盘...但是在Linux下是树状图(其实Windows内部也是树状图)。Linux下一个主要目录是/根目录,其他所有目录都在根目录下,其他的磁盘或者分区也都挂载在根目录下。
挂载:比如我的/media/shawn/new_disk是一个空的目录,那我就可以把一个分区挂载到这个目录下,就相当于你挂了一个瓶子在某个树杈上,这样你在瓶子(分区)装的文件就只占用你的瓶子(分区)空间,并不会占据树上的空间。
| bin 是binary的简写,保存可执行文件,此处的都二进制文件所有用户都有执行权限
| boot 引导目录,负责引导启动系统。目录中的vmlinux是内核文件
| dev 是Device的简写,保存设备文件。Uinux哲学中“一切皆文件”,设备被抽象成文件
| home…
最近在网上看到有的说法里是没有bool类型的,不过以前在书上好像看到过相关的介绍,就特意找出来了那本书《C Primer Plus》,确定了C语言里确实存在bool类型。C语言是在C99标准中添加的bool类型。
bool类型是以英国数学家 George Boole 命名的,是他开发了用线性代数表示并解决逻辑问题的系统。
在C语言中我们使用 _Bool 来定义bool类型的变量
下面定义了一个_Bool类型的变量,并把(1 == 3)的计算值赋值给test
下面能证明bool类型变量的特点
只有0和1两个值
只有0赋值给bool类型时,bool才为0
最后我们证明一下bool类型比int类型占的内存要少