1、文件系统简介
Linux文件系统是不断发展不断演进的,大致分为以下几个阶段
基础的Linux文件系统
主要代表: ext文件系统、ext2文件系统
日志文件系统
主要代表:ext3文件系统、ext4文件系统、Reiser文件系统、JFS文件系统、XFS文件系统
写时复制文件系统
主要代表:ZFS文件系统、Btrf文件系统
具体的介绍自行百度
2、操作文件系统
我们可以安装自己想要的文件操作系统,通过命令行就可以,但是安装之前,要对存储设备进行分区,有一个fdisk工具可以帮助完成设备的分区
可以通过命令fdisk
查看该工具用法
例:
[root@jdu4e00u53f7 ~]# fdisk
用法:
fdisk [选项] <磁盘> 更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区> 给出分区大小(块数)
选项:
-b <大小> 扇区大小(512、1024、2048或4096)
-c[=<模式>] 兼容模式:“dos”或“nondos”(默认)
-h 打印此帮助文本
-u[=<单位>] 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
-v 打印程序版本
-C <数字> 指定柱面数
-H <数字> 指定磁头数
-S <数字> 指定每个磁道的扇区数
分区后,每个区块有自己固定的大小,然后就可以在这个区块上安装文件系统
Linux系统自带可很多安装文件系统的工具,这些工具分别对应安装不同的文件系统
工具 | 用途 |
---|---|
mkefs | 创建一个ext文件系统 |
mke2fs | 创建一个ext2文件系统 |
mkfs.ext3 | 创建一个ext3文件系统 |
mkfs.ext4 | 创建一个ext4文件系统 |
mkreiserfs | 创建一个ReiserFS文件系统 |
jfs_mkfs | 创建一个JFS文件系统 |
mkfs.xfs | 创建一个XFS文件系统 |
mkfs.zfs | 创建一个ZFS文件系统 |
mkfs.btrfs | 创建一个BtrFS文件系统 |
这些工具在/sbin目录下,可以通过ls /sbin/
查看有哪些可用的工具
也可以用type
命令查看某个工具是否可用
例:
[root@jdu4e00u53f7 ~]# type mkfs.ext4
mkfs.ext4 是 /usr/sbin/mkfs.ext4
[root@jdu4e00u53f7 ~]# type mkfs.zfs
-bash: type: mkfs.zfs: 未找到
*注意 这些工具都是可以安装的,后面会介绍
大部分工具通过简单的命令就可以在分区上创建文件系统
至于具体的怎么查看磁盘名称->创建分区->在分区上创建文件系统->挂载到虚拟目录下,这里不详细介绍,这里有一个阿里云的文档,大家可以看看,很详细Linux 格式化和挂载数据盘
文件系统的检查与修复 fsck
fsck
命令能够检查大部分的Linux文件系统,文件系统可以通过设备名、在虚拟目中的挂载点以及分配给文件系统的唯一UUID来引用,fsck
有许多参数,具体的不做过多介绍,百度一下
*注意 挂载的文件系统是不能运行fsck
命令的,对于大多数文件系统需要先卸载文件系统在检查,检查完在从新挂载上去
3、逻辑卷管理
首先说一下逻辑卷的作用,当我们辛辛苦苦的对硬盘进行了分区,并在分区上创建了文件系统,用着用着发现,分区的大小不够用了,这时如果再创建大分区、再在分区上创建文件系统,是很痛苦的事情,逻辑卷的存在可以决绝这个问题,逻辑卷可以为已有的文件系统添加分区,这样就可以节省很多问题
简单说下逻辑卷的工作原理,以下图为例
从图中可以看出,所有的物理硬盘在分区后会被组合成一个卷组,卷组可以分成不同的逻辑卷,每一个逻辑卷可以格式化成想要的文件系统,然后挂载到虚拟目录中的某个位置
用Linux中的LVM工具可以帮助完成这一套结构的搭建,具体的详细搭建环节这里不介绍,大家自行学习
4、安装软件
大部分Linux发行版都采用某种包管理系统过来控制软件和库的安装
Linux系统上有一个PMS工具,里面记录了Linux中刚已经安装了什么软件包、每个包安装了什么文件、每个已安装软件包的版本
不同的发行版Linux基于PMS有自己的软件管理工具,主流的管理软件包有aptitude(基于Debian的系统)、yum(基于Red Hat的系统)、urpm(基于Red Hat的系统)、zypper(基于Red Hat的系统),下面简单介绍一下yum的用法
首先你的系统上要已经安装了yum工具,才能做下面的操作
yum list installed
列出系统上已经安装的包
yum list xterm
查看xterm包的信息(该包不一定安装在系统上)
例:
[root@jdu4e00u53f7 ~]# yum list xterm
Loading mirror speeds from cached hostfile
* epel: mirror01.idc.hinet.net
可安装的软件包
xterm.x86_64
yum list installed xterm
该命令可显示出包xterm是否已安装
例:
[root@jdu4e00u53f7 ~]# yum list installed xterm
Loading mirror speeds from cached hostfile
* epel: mirror01.idc.hinet.net
错误:没有匹配的软件包可以列出
yum provides /etc/yum.conf
查看某个文件属于哪个包
例:
[root@jdu4e00u53f7 ~]# yum provides /etc/yum.conf
Loading mirror speeds from cached hostfile
* epel: mirror01.idc.hinet.net
yum-3.4.3-150.el7.centos.noarch : RPM package installer/updater/manager
源 :base
匹配来源:
文件名 :/etc/yum.conf
yum-3.4.3-150.el7.centos.noarch : RPM package installer/updater/manager
源 :@base
匹配来源:
文件名 :/etc/yum.conf
yum install xterm
安装xterm包
*注意 由于信息过多这里就不复制例子了,自行安装一下,看看都展示了那些信息
*注意 yum在安装的包的同事,会将包的依赖都一并安装好,非常好用
也可手动下载安装文件到本地,然后在本地安装
yum localinstall xterm.rpm
下载xterm安装文件
yum list updates
列出已安装包的可用更新
例:
[root@jdu4e00u53f7 ~]# yum list updates
Loading mirror speeds from cached hostfile
* epel: mirrors.ustc.edu.cn
更新的软件包
centos-release.x86_64 7-3.1611.el7.centos base
kernel.x86_64 3.10.0-514.26.2.el7 updates
kernel-tools.x86_64 3.10.0-514.26.2.el7 updates
kernel-tools-libs.x86_64 3.10.0-514.26.2.el7 updates
yum update
对更新列表中的所有包进行更新
yum remove xterm
删除xterm软件
*注意 该命令只删除软件,而不删除配置文件和数据文件
yum rease xterm
同时删除软件和他的所有文件
当系统中安装很多软件时,某个包的依赖关系可能被其他包的安装覆盖,叫做损坏的包依赖关系,用下面的命令可做一些损坏修复
yum clean all
系统出现问题,可试下这个命令
yum deplist xterm
该命令可查看xterm包的所有库依赖关系,以及什么软件可以提供这些库以来关系,然后有针对性的修复
yum有自己的软件仓库,通过yum repolist
命令查看正从那些仓库中获取软件
例:
[root@jdu4e00u53f7 ~]# yum repolist
Loading mirror speeds from cached hostfile
* epel: mirrors.ustc.edu.cn
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base - mirrors.jcloudcs.com 9,363
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 11,809
extras/7/x86_64 CentOS-7 - Extras - mirrors.jcloudcs.com 450
updates/7/x86_64 CentOS-7 - Updates - mirrors.jcloudcs.com 2,146
repolist: 23,768
[root@jdu4e00u53f7 ~]#
如果没有自己想要的软件,可以编辑配置/etc/yum.repos.d
文件,更改仓库
*注意 需要添加正确的UPL,并获得必要的加密秘钥
*注意 一般的仓库网站都会提供一个可下载的rpm文件,可以用上面介绍过的命令yum localinstall
下载安装
除此之外,还可以从源码安装包,但是不常用,这里不过多介绍
这里有一个连接,上面有更详细的包管理介绍Linux包管理
5、使用编辑器
对于习惯了图形交互操作的我们,命令行中做各种文件的操作是一件很酷炫的事情,在写shell脚本之前我们要知道至少一种文本编辑器的用法,Linux中有很多编辑器,例如vim编辑器、nano编辑器、emacs编辑器、GHOME编辑器等,这里推荐使用最常用的vim编辑器(当然看个人爱好选择)
*注意 至于编辑的的用法,自行百度吧,刚接触的同学可能会有点懵,慢慢习惯学习就好
基本的东西介绍的差不多了,从下一篇开始就要学习怎么编写正式的shell脚本了