文件系统

 1.什么是文件系统?
文件系统是一种存储和组织计算机中数据文件的机制或方法,他使得对计算机内的数据的存储.访问和查找变得更容易,简单.
文件系统落到计算机里其实就是一个应用软件
ext2 ext3(C5.x) ext4(C6.x) xfs(CentOS7.x) zfs和Reiserfs或FAT,NTFS等都是常见文件系统.
2.为什么磁盘分区后需要格式化?
磁盘分区在没有格式化之前,操作系统无法识别系统上磁盘分区格式的,也就无法存取文件目录属性和权限等内容,把分区格式化成操作系统支持的某个文件
系统后,在存放数据,系统就会根据这个文件系统的格式进行存取文件了.
创建一个文件,inode,block (格式化生成文件系统时候产生的)

常见的文件系统

不同的系统采用的文件系统:

SUSE Linux的默认文件系统ReiserFS文件系统。
IBM的AIX使用的jfs日志文件系统。
Sun OS所用的文件系统ufs。
CentOS7采用XFS文件系统。
CentOS6采用ext4文件系统。
CentOS5采用ext3文件系统。

生产文件系统选型

1.SAS/SATA磁盘对应文件系统的选择:
a.业务应用是[大量小文件]可选reiserfs(100K以内)。
 大量小文件访问,衡量指标是IOPS,文件系统性能瓶颈在于文件元数据操作、目录操作、数据寻址。reiserfs对小文件作了优化,并使用B+ tree组织
 数据,加速了数据寻址,大大降低了open/create/delete/close等系统调用开销。mount时指定noatime, nodiratime, notail,减少不必要的inode操
 作,notail关闭tail package功能,以空间换取更高性能。因此,对于随机的小I/O读写,reiserfs是很好的选择。ext4文件系统也是适合的,IO调度算
 法选择deadline,block size = 4096, ext4关闭日志功能。
reiserfs mount参数:-o defaults, async, noatime, nodiratime, notail, data=writeback
ext4 mount参数:-o defaults, async, noatime, nodiratime, data=writeback, barrier=0
关闭ext4日志:tune2fs -O^has_journal /dev/sdb1
CDN公司,ext2 b.高并发的数据库业务可选xfs,例如:有门户网站MySQL业务选择xfs。
c.视频下载、流媒体、数据库选择ext4、xfs、小文件业务ext4也是OK的,通用文件系统。 d.有些CDN公司的cache业务服务器,曾经还选择了ext2文件系统,因为它没有日志功能,速度快,CDN是做网站加速服务的,对数据完整性要求不高,对速
度要求高。
常规的服务应用建议,系统默认是什么就选择什么就好,简单方便

RPM

RPM全称 Redhat Package Manager 由红帽开发用于软件包的安装升级卸载与查询

RPM包命名以-将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm

eI7表示rhel7

3.如何获取rpm包

1.使用本地CentOS7的镜像(ISO),挂载 mount /dev/cdrom /mnt,此时你会在/mnt/Packages目录下看到很多rpm的包文件。(版本过低  数量少)
2.通过联网的方式获取rpm包。
3.特定的软件官方获取软件包

其他安装软件方式?

分类 安装 版本
rpm包 预先编译打包,安装简单 软件版本偏低
源码包 手动编译打包,安装繁琐 软件版本随意
二进制包(绿色包) 解压即可使用, 安装简单 不能修改源码,软件包大

二.RPM使用示例

1.rpm包如何安装

选项描述
-i安装rpm
-v显示安装详细信息
-h显示安装rpm进度
--force强制重新安装
--nodeps忽略依赖关系 rpm -ivh 包名
cd /usr/src/
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm
rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
---------------------------------------------------
如果软件包存在, 强制再次安装
rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装
rpm -ivh --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

2.RPM包升级

rpm -U  包名
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
rpm -Uvh nginx-1.20.0-1.el7.ngx.x86_64.rpm

3.如何查询已安装好的rpm包

rpm -q	   查看指定软件包是否安装
rpm -qa 查看系统中已安装的所有RPM软件包列表*****
rpm -qi 查看指定软件的详细信息
rpm -ql 查询指定软件包所安装的目录、文件列表***
rpm -qc 查询指定软件包的【配置文件】
rpm -qf 查询文件或目录属于哪个RPM软件*****
rpm -qip 查询未安装的rpm包详细信息
rpm -qlp 查询未安装的软件包会产生哪些文件
------------------------------------------
查看系统中已安装的所有RPM软件包列表
rpm -qa tree
查询指定软件包所安装的目录、文件列表
rpm -ql vsftpd
查看指定软件的详细信息
rpm -qi vsftpd
查询指定软件包的【配置文件】
rpm -qc vsftpd
查询文件(命令)或目录属于哪个RPM软件
rpm -qf /etc/vsftpd/vsftpd.conf
查询未安装的软件包会产生哪些文件
rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
查询未安装的rpm包详细信息
rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
---------------------------------------------------
5.rpm包练习
1)查询arp命令是由哪个RPM软件包安装的?
rpm -qf `which arp`
2)查询/etc/ssh/sshd_config属于哪个软件包。
rpm -qf /etc/ssh/sshd_config
3)查询tree软件包都有哪些文件。
rpm -ql tree

4.RPM包卸载

先查询, 然后卸载
rpm -qa nginx
rpm -e 包名
--force强制重新安装
--nodeps忽略依赖关系
强制卸载,忽略依赖关系
rpm -e --force --nodeps 包名
解决依赖 yum
yum remove 卸载依赖
删除有关,都要谨慎
rm mv find +xargs
rpm -e --nodeps 永远不用.
yum remove 卸载依赖,永远不用 rpm工具用途查询,尽量不安装
yum软件自动解决依赖,并安装 rpm软件包安装软件痛点
1)软件包依赖问题。
错误:依赖检测失败:
2)需要肉眼去寻找。
rpm工具常用用途是查询,尽量不用其安装。
yum软件自动帮管理员解决依赖,并安装。 5.RPM包校验(扩展了解)
软件相关的数据库存放于/var/lib/rpm目录
参数描述
S 文件的容量大小是否被改变
M 文件的类型或者文件的属性是否被修改
5 MD5 这一种指纹加密的内容已经不同
L 路径已经被改变
U 文件的所属主已被修改
G 文件的所属组已被修改
T 文件的创建时间已被改变

三.yum基本介绍

1.什么是YUM

yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。

2.YUM源是什么

要成功的使用yum工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 yum 源。(可以
是本地源、网络源)
1)互联网yum源 (阿里 网易)
2)局域网yum源(自己做一个yum源,http/ftp)(1.速度快,2制作的rpm放到yum源)
3)服务器本地yum源(上不了网,把光盘iso作为yum源) 3.常见互联网yum源
官方yum源:很多软件集合的在线仓库,也称为base基础源
epel源:也称为拓展源,拥有很多base源没有的软件
第三方源:比如nginx,zabbix,Docker等软件开发方开源软件的官方仓库
PS.yum源默认都放在/etc/yum.repos.d/目录下,以*.repo结尾
常见互联网yum源地址:
http://mirrors.aliyun.com/repo/ https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
https://mirrors.tuna.tsinghua.edu.cn/help/epel/ 4.Linux系统本地yum源配置
1)互联网阿里云yum源配置
默认系统是国外源,需要替换为国内的源
方法1:
wget -q -O /etc/yum.repos.d/CentOS-Base.repo \ http://mirrors.aliyun.com/repo/Centos-7.repo
方法2:
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2)互联网epel源配置
扩展源,有很多软件在基本源中没有
方法1:
wget -q -O /etc/yum.repos.d/epel.repo \
http://mirrors.aliyun.com/repo/epel-7.repo
方法2:
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
方法3:
yum install epel-release
3)互联网特定软件官方源配置
Nginx web软件官方源,有最新的nginx版本,查找方法:
1)进入nginx.org,进入download页面。
2)页面结尾进入“Linux packages for stable and mainline versions.”即可。
3)配置如下
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1 PS. http://nginx.org/en/linux_packages.html

3.YUM源配置实例

配置仓库
1.vim 手动编写.repo文件
2.wget下载已编写好的.repo文件
3.安装 zabbix-release软件. 会释放一个.repo文件至/etc/yum.repos.d/目录
如果在安装软件时,提示没有该软件
1)软件名写错了
2)当前系统仓库中搜索不到该软件

4.yum的基本使用、安装、卸载、升级、查询等操作?

安装
yum install vim wget unzip sl tree lrzsz -y 可以对软件进行重新安装
yum reinstall vsftpd
升级
yum check-updates 查看系统中哪些软件包可以更新
yum update openssl 升级已安装的软件包
yum update 适合刚装完系统使用
卸载(不要随便用)
yum remove XXXX -y
查询
yum list 列出所有的已安装和未安装的软件包
yum info ftp 看软件包的详细信息
yum list installed 列出系统中已成功安装的软件包
---------------------------------------------
cowsay 牛说 sl 小火车
注意事项:
1)生产线慎用,最好不用。
2)安装系统之后,上线前。
3)测试环境,模拟正式环境。然后上正式。

gzip(仅对文件有效)

yum -y install gzip
gzip file 对文件进行压缩(打包)
zcat file.gz 查看gz压缩后的文件(查看)
gzip -d file.gz 解压gzip的压缩包(解包)
让某个文件不生效时
gzip CentOS-Vault.repo --> CentOS-Vault.repo.gz
zcat CentOS-Vault.repo.gz --> 查看不想解压的压缩包文件内容

zip

使用zip命令可以对文件进行压缩打包,解压则需要使用unzip命令
默认情况下没有zip和unzip工具,需要进行安装 yum -y install zip unzip
压缩文件为zip包
zip filename.zip filename
压缩目录为zip包
zip -r dir.zip dir/
查看zip压缩包是否是完整的
zip -T filename.zip
结果 test of filename.zip OK
不解压查看压缩包中的内容
unzip -l filename.zip
unzip -t filename.zip(检查是否完整)
解压zip文件包, 默认解压至当前目录
unzip filename.zip
解压zip内容至/opt目录
unzip filename.zip -d /opt/

linux 文件系统和包管理工具rpm,yum的更多相关文章

  1. Linux下程序包管理工具RPM

    实验环境: CentOS release 6.6 (Final)  一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...

  2. Linux之centos包管理【rpm】、【yum】、【tar】

    rpm包是二进制格式,无需编译安装便可使用,tar包是源码格式,需要编译安装才可使用 rpm包管理: rpm:redhat package manager,红帽的包管理器,其主要的操作参数有如下: - ...

  3. Linux 入门记录:十九、Linux 包管理工具 RPM

    一.源代码管理 绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为 tar.gz 的归档压缩文件.程序源代码需要编译为二进制可执行文件后才能够运行使用.源代码的基本编译流程为: ./confi ...

  4. Linux常用命令-软件包管理工具-rpm

    命令简介 rpm(RPM Package Manager)是一个强大的命令行驱动的软件包管理工具,用来安装.卸载.校验.查询和更新 Linux 系统上的软件包. 语法格式 rpm [OPTION... ...

  5. Linux之包管理工具总结[RPM/DPKG]-[YUM/APT]

    0.关键词解释 RPM:Red Hat Package Manager(原名),RPM Package Manager(现名,递归缩写,类似于GNU的命名); 解释:RPM软件包管理器 YUM:Yel ...

  6. Linux RPM、YUM、APT包管理工具

    ⒈rpm包的管理 1)介绍 rpm是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件,RPM是RedHat Package Manager(RedH ...

  7. Linux rpm包管理工具

    1.什么是rpm包 是一种编译好的二进制软件包,安装速度快. 2.rpm包命名 el6:软件包用于在Red Hat 6.x, CentOS 6.x, and CloudLinux 6.x进行安装 el ...

  8. Linux包管理工具分析

    转自:http://blog.csdn.net/carolzhang8406/article/details/14198219 在正式进入讨论之前,先贴几条非常有用的link: linux 发行版比较 ...

  9. rpm环境安装dpkg包管理工具

    rpm环境安装dpkg包管理工具 索引:dpkg-scanpackages.dpkg.dpkg-query.dpkg-source.dpkg-scansource 在centos.redhat.麒麟服 ...

  10. Linux服务器中安装python包管理工具pip

    pip是python的包管理工具,python的强大之处除了在于语法的简练,还有就是对众多的库支持了. 1.下载pip包管理工具 链接地址:https://pypi.python.org/pypi/p ...

随机推荐

  1. pip3 install

    python3 -m venv tutorial-env source tutorial-env/bin/activatepip3 install *deactivate 

  2. Java8函数式编程(A)

    将行为作为数据传递 函数编程的最直接的表现,莫过于将函数作为数据自由传递,结合泛型推导能力,使代码表达能力获得飞一般的提升. Java8怎么支持函数式编程? 主要有三个核心概念: 函数接口(Funct ...

  3. 【Anaconda】Jupyter 中添加 Anaconda 环境

    两种方法: 1. 安装 nb_conda_kernels,将所有 conda 环境同步至 Jupyter Notebook,参考『Jupyter notebook选择conda环境 - 简书』. 2. ...

  4. centos7 启动报错 Failed to mount /sysroot

    centos7 启动报错 Failed to mount /sysroot   场景: centos7系统异常关闭后,启动后进入不了图形化界面 解决方法: 1. 定位报错原因 进入单用户模式后执行下面 ...

  5. sdp安装及实例

    环境: sdpserver:192.168.1.160 sdpclient:192.168.1.161 安装 yum install gcc gcc-c++ libpcap* libtool* wge ...

  6. Qt中的线程编程

    在基于操作系统的程序设计中,在处理多任务时,可以有多种方法,但效率较高的当属线程方式,下面就来讨论一下在Qt中如何实现线程编程. 先来说一下什么是线程.线程(thread)是操作系统能够进行运算调度的 ...

  7. jmeter的阶梯式加压性能测试 jp@gc - Stepping Thread Group (deprecated)

    当测试需求要求是阶梯型的压力测试场景时,使用该线程组. 比如测试场景是    从100并发开始,每60s加压50并发,直至达到目的并发数(中途发现问题随时停掉),之后保持每60s停止50并发的速率关闭 ...

  8. maven概述,maven依赖管理的概念,maven一键构建概念

    maven概述 Maven在美国是一个口语化的词语,代表专家,内行的意思 一个对Maven比较正式的定义是这么说的,Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project  O ...

  9. NifytGUI——ListBox控件

    ListBox控件的用法,创建一个xml,代码如下: <?xml version="1.0" encoding="UTF-8" standalone=&q ...

  10. JS中split、slice、splice区别

    splite 定义:该方法是切割字符串的一种方法,该方法主要用于把一个字符串分割成字符串数组并且返回新生成的数组.用于字符串对象   语法:str.split(separator,howmany) 返 ...