六、Linux文件系统和软件安装

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文件系统和软件安装_第1张图片
逻辑卷构成

从图中可以看出,所有的物理硬盘在分区后会被组合成一个卷组,卷组可以分成不同的逻辑卷,每一个逻辑卷可以格式化成想要的文件系统,然后挂载到虚拟目录中的某个位置

用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脚本了

你可能感兴趣的:(六、Linux文件系统和软件安装)