吐槽一下简书居然不支持[TOC]...
Linux概述
Unix | Linux |
---|---|
商业付费软件 | 免费公开源代码 |
多数是与硬件配套的 | 可运行在多种硬件平台上 |
对硬件的要求更为苛刻 | 对硬件要求没有Unix高 |
安装复杂 | 安装相对简易 |
使用比较复杂 | 使用相比Unix要简单 |
最稳定 | 稳定性次之 |
Linux结构
- 硬件
- 内核kernel
- 操作系统的核心
- 指挥调度linux机器的运行,直接控制计算机的资源
- 保护用户程序不受错综复杂的硬件世界的影响
- 外壳shell
- 是Linux的一个特殊程序,是用户与内核之间的命令解释器
- 应用程序
Linux特点
- 多任务,多用户:CPU时间分片,分给不同的进程;允许多个用户同时登陆使用。
- 管道,功能强大的shell: 管道-前一个程序的输出作为后一个程序的输入,shell是一种解释型高级语言。
- 安全保护机制,稳定性好:防止系统及其数据未经许可而被非法访问,稳定性Unix好于Linux,Linux好于Windows。
- 用户界面,强大的网络支持:常用命令行的方式,同时提供图形界面;TCP/IP协议就是Linux的缺省网络协议。
- 移植性好:源代码用C语言写成,便于移植到其它计算机上。
Linux文件和目录管理
树型结构
/bin:存放的是构建最小系统所需要的命令
/sbin:即为System bin,是与操作系统有关的命令
/boot:内核与启动文件
/dev:存放的是各种设备文件
/etc:存放的是系统软件的启动和配置文件
/home:用户的主目录
/root:超级用户root的家目录
/usr:非系统的程序和命令
/var:系统专用的数据和配置文件
/opt:可选的应用软件包
/tmp:临时文件存放点
文件和目录的基本操作
- 显示当前的工作目录:pwd
- 变更工作目录:cd cd后面不跟任何路径,则是回到当前目录的家目录。
- 新增目录:mkdir -m指定存取模式 -p建立目录时建立其所有不存在的父目录。
- 删除目录:rmdir 删除空目录,如果删除非空目录,rm即可, –p删除目录及父目录
- 复制文件或目录 :cp+源文件或目录+目的文件或目录
- 移动文件或目录:mv +源文件或目录+目的文件或目录
- 删除文件或目录:rm+文件或目录
- 查找文件或目录:find +路径+参数 -name以指定字符串开头的文件名 -user 查找指定用户所拥有的文件
查看文件内容
- cat:直接查阅文件内容,不能翻页
- more:翻页查看文件内容
- less:翻页阅读,和more类似。但操作按键比more更加弹性。
- head:查看文档的前面几行内容,默认为10行
- tail:查看文件的后面几行内容,默认为10行
Linux 文件系统管理
存储在介质中数据的三个因素
- 文件名:定位存储的位置
- 数据:文件的具体内容
- 元数据:文件有关的信息,例如文件的权限、所有者、文件的修改时间等
Linux支持的文件系统类型可查看/proc/filesystems
文件系统的分类
是否有日志
- 传统型文件系统:写入文件内容的时候,先写数据,再写元数据。例如 ext2
- 日志型文件系统:写入文件内容的时候,先写日志记录文件(更安全)。 ext3=ext2+日志 ReiserFS基于平衡树,搜索快
如何查找数据 - 索引式文件系统:文件属性数据和实际内容放在不同的区块,例如Linux中默认的ext2中,文件属性数据存放在inode,实际内容放在block
- 非索引式文件系统:只有block,数据需要一个block接一个block读取(下一个block位置存放在上一个block中),效率低。 FAT
碎片整理:就是写入的数据的block太过分散,此时读取的效率会很低。磁盘整理的目的 就是将这些分散的block尽量的集中起来。
配置文件系统分区
创建分区:fdisk+设备名,输入完该命令之后,可以通过参数m查看按键操作说明,通过参数p可以得到本磁盘的相关信息,输入n命令可以新建一个分区。使用完n之后,新建分区的步骤如下:
- 选择分区类型
- 选择分区开始的磁柱
- 决定分区的大小
- 保存新建的分区
- 通过重启服务器或使用partprobe命令通知内核
创建文件系统:mkfs 参数 设备名,-t指定文件系统类型 -b指定block大小,单位bytes,ext2和ext3仅支持1024/2048/4096三种
挂载文件系统:挂载的过程就是将文件系统和目录树上的某一个目录结合。mount+设备名+挂载点 -t -b同上
管理Linux文件系统
查看分区使用情况:
- df:查看文件系统的磁盘空间占用情况 –h以容易理解的格式打印出文件系统大小 –i显示inode信息而非块使用量。
- du:查看文件或目录的磁盘使用空间 –a显示目录下的每个文件所占的磁盘空间 –s只显示大小的总和 -h以容易理解的格式输出文件大小值
查看系统打开的文件:lsof
- Isof filename显示打开指定文件的所有进程
- Isof –c string显示以指定字符开头的进程所有打开的文件
- Isof –u username显示所属user相关进程打开的文件
修复文件系统:
- fsck检查文件系统并尝试修复错误。执行fsck时,必须将要修复的设备进行 umount后,再执行fsck命令。
- e2fsck:检查和修复ext2和ext3文件系统
Linux用户和用户组管理
- 用户ID信息文件 /etc/passwd
- /etc/passwd的文件记录的是单个用户的登录信息
- 里面有两条记录:root和smc
- 每一条记录被冒号分割称7个字段
- 分别是 用户名:密码:UID:GID:用户的描述:用户加目录:用户的shell类型
- 组ID信息文件 /etc/group
- /etc/group记录的是GID和用户组组名的一个对应关系
用户管理常用命令
- 用户查询常用命令:id(查询当前登录用户的GID、UID)、finger(查询当前用户属性信息,如家目录和用户类型)
- 新增用户
linux: ~ # useradd -d /home/ipcc -m -u 2000 -g mms -s /bin/csh ipcc
说明:useradd[参数] [用户名] -d: 设置用户的家目录 -m: 设置的家目录不存在时自动创建 -u: 设置用户的UID -g: 设置初始GID或者组名 -s: 指定用户的shell
如果没有设定参数,系统会自动读取/etc/default/useradd配置文件,指定相关用户组、shell等参数。
如果要查询,可以输入linux:~ # useradd -D读取基本配置。
- 删除用户
linux:~ # userdel ipcc //删除ipcc用户
linux:~ # userdel -r iptv //删除iptv用户及其家目录
- 设置用户密码
linux:~ # passwd ipcc
- 修改用户属性
usedmod [用户名] -d: 修改用户家目录 -g: 修改初始用户组
用户组管理常用命令
- 新增用户组
linux:~ # groupadd ipcc //不指定GID
linux:~ # groupadd -g 2000 iptv //GID为2000
- 删除用户组
linux:~ # groupdel iptv
- 修改用户组
linux:~ # groupmod -g 2500 -n ipcc1 ipcc //修改GID为2500,组名为ipcc1
Linux LVM配置
- Logical Volume Manager
- 建立在硬盘和分区之间的逻辑层
- 提高磁盘分区管理的灵活性
- 在传统的存储模型中,文件系统是直接构建在物理分区之上的,物理分区的大小决定了其上文件系统的存储容量,调整文件系统的存储容量变得比较繁琐
- LVM设计的主要目标是实现文件系统存储容量可扩展性,使对容量的调整更简易
架构
物理分区:pp-physical partition,可以是硬盘的分区或者是RAID分区
物理卷:PV-physical volume,是pp的LVM抽象,维护了pp的结构信息,是组成VG的基本逻辑单元,一般一个PV对应一个PP
物理扩展单元:PE-physical extends,每个PV都会以pe为基本单元划分,是lvm的最小存储单元
卷组:vg-volume group,由一个或者数个PV组成,可以看做LVM组合起来的大磁盘
逻辑扩展单元:LE-logical extends,组成LV的基本单元,一个LE对应一个PE
逻辑卷:LV-logical volume,建立在VG之上,文件系统之下,由若干个LE组成,文件系统是基于逻辑卷的
LVM是通过交换PE的方式来达到弹性变更文件系统的大小
想扩增VG的容量则可以通过增加PV的方式
一般LVM默认的pe的大小是4M,最多有65534个PE,所以LVM的VG最大为256G
LV和磁盘的dev/sda2分区类似,是用来格式化的单位。当对LV进行写入操作时LVM定位相应的LE,通过PV头部的映射表将数据写入到相应的PE上
LV实现的关键在于PE和LE之间建立的映射关系,不同的映射规则决定了不同的LVM存储模型
优势
- 文件系统可以跨多个磁盘
- 动态地扩展文件系统大小
- 增加新磁盘到LVM的存储池中
注意要点
- 按需分配文件系统的大小,多余的空间放在存储池中
- 把不同的数据放在不同的卷组中,在系统升级或者数据迁移的时候较为方便
LVM的配置流程
- 物理分区阶段
- 通过fdisk将systernID修改为LVM标记
- PV阶段
- 通过pvcreate将Linux分区处理成物理卷PV
- VG阶段(含有多个PE)
- 通过vgcreate将创建好的物理卷处理成卷组vg
- LV阶段(可用于格式化)
- 通过lvcreate将卷组分成若干个逻辑卷LV
- 操作系统使用阶段
- 通过mkfs工具将LV格式化
- 最后挂载格式化后的LV到文件系统 mount
物理卷管理
- pvcreate创建物理卷
- 将普通的分区加上pv属性
- 例如将分区/dev/sda6创建为物理卷:pvcreate /dev/sda6
- pvremove删除物理卷(语法和pvcreate一致)
- pvscan查看物理卷信息
- pvdisplay查看各个物理卷的详细参数
卷组管理命令
- vgcreate 创建卷组
- vgscan 查看卷组信息
- vgdisplay 查看卷组的详细参数
- vgreduce 缩小卷组,把物理卷从卷组中删除
- vgextend 扩展卷组,把某个物理卷添加到卷组中
- vgremove 删除卷组
逻辑卷管理
- lvcreate 创建逻辑卷
- lvscan 查看逻辑卷的信息
- lvdisplay查看逻辑卷的具体参数
- lvextend增大逻辑卷的大小
- lvreduce减小逻辑卷的大小
- lvremove 删除逻辑卷
管理文件系统空间
- 增大文件系统空间
- 先卸载逻辑卷
- 然后通过vgentend,lvextend等命令增大lv的空间
- 再使用resize2fs将逻辑卷容量增加
- 最后将逻辑卷挂载到目录树
- 缩小文件系统空间
- 先卸载逻辑卷
- 使用resize2fs将逻辑卷容量减小
- 然后通过vgreduce,lvreduce等命令减小lv的空间
- 最后将逻辑卷挂载到目录树