第四周学习笔记

sed的高级用法 和 包管理器(rpm , yum )

sed高级编辑命令
P:打印模式空间开端至\n内容,并追加到默认输出之前

h: 把模式空间中的内容覆盖至保持空间中

H:把模式空间中的内容追加至保持空间中 

g: 从保持空间取出数据覆盖至模式空间 

G:从保持空间取出内容追加至模式空间 

x: 把模式空间中的内容与保持空间中的内容进行互换 

n: 读取匹配到的行的下一行覆盖至模式空间 

N:读取匹配到的行的下一行追加至模式空间 

d: 删除模式空间中的行 

D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本, 并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间 不包含换行符,则会像发出d命令那样启动正常的新循环

例题:

sed -n ‘n;p’ FILE (打印偶数行)

sed ‘1!G;h;$!d’ FILE (倒序显示文件内容

sed ‘N;D‘ FILE (只留最后一行

sed ‘$!N;$!D’ FILE  (留下倒数两行

sed ‘$!d’ FILE       (取最后一行

sed ‘G’ FILE (行于行之间增加空格

sed ‘g’ FILE 

sed ‘/^$/d;G’ FILE 

sed ‘n;d’ FILE (取奇数行

sed -n ‘1!G;h;$p’ FILE  (倒序排列

2 .库文件
查看二进制程序所依赖的库文件 ldd /PATH/TO/BINARY_FILE 

管理及查看本机装载的库文件 ldconfig 加载库文件 /sbin/ldconfig

-p: 显示本机已经缓存的所有可用库文件名及文件路径 映射关系

配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

缓存文件:/etc/ld.so.cache

rpm包管理
CentOS系统上使用rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护

安装:

rpm {-i|–install} [install-options] PACKAGE_FILE…

-v: verbose

-vv:

-h: 以#显示程序包管理执行进度

rpm -ivh PACKAGE_FILE …

rpm包安装
[install-options]

–test: 测试安装,但不真正执行安装,即dry run模式

–nodeps:忽略依赖关系

–replacepkgs | replacefiles

–nosignature: 不检查来源合法性

–nodigest:不检查包完整性

–noscripts:不执行程序包脚本

%pre: 安装前脚本;–nopre

%post: 安装后脚本;–nopost

%preun: 卸载前脚本;–nopreun

%postun: 卸载后脚本; –nopostun

rpm包升级
升级: 

rpm {-U|–upgrade} [install-options] PACKAGE_FILE… 

rpm {-F|–freshen} [install-options] PACKAGE_FILE…

upgrade:

安装有旧版程序包,则“升级”

如果不存在旧版程序包,则“安装”

freshen:安装有旧版程序包,则“升级”

如果不存在旧版程序包,则不执行升级操作

rpm -Uvh PACKAGE_FILE …

rpm -Fvh PACKAGE_FILE …

–oldpackage:降级

–force: 强制安装

升级注意项
注意:

(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版 本内核

(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配 置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名 (FILENAME.rpmnew)后保留

安装包的查询

-qa: 所有包

-qf: 查看指定的文件由哪个程序包安装生成

-qp rpmfile:针对尚未安装的程序包文件做查询操作

–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

–whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖 

rpm2cpio 包文件|cpio –itv 预览包内文件 

rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件 (如果包里却那个文件可以用rpm2cpio 包文件路径全名|cpio –idv  .usr/bin/tree 既将tree下的usr/bin/tree文件解到当前的目录下)

–changelog:查询rpm包的changelog

-qc: 查询程序的配置文件

-qd: 查询程序的文档 -i: information

-ql: 查看指定的程序包安装后生成的所有文件

–scripts:程序包自带的脚本

–provides: 列出指定程序包所提供的CAPABILITY

-R: 查询指定的程序包所依赖的CAPABILITY

包的卸载:

rpm -e +包名

yum 仓库的搭建

1.在/etc/yum.repos.d/下新建以.repo为后缀的文件例如:vim /etc/yum.repos.d/base.repo

2.编辑文件base.repo

 

[base]

name=base

baseurl=file:///misc/cd (本机光盘路径)

gpgcheck=0(不检查合法性=1时检查合法性需要导入公钥gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-6)

enabled=1 (禁用此yum源=0为启用此yum源)

其中baseurl=可加网路地址加到repodata的父目录即可

如果需要自己配置仓库共享到其他机器使用yum仓库的数据,将yum的数据放到ftp或httpd下的网络访问文件夹下即可

ftp 的网络访问页面文件夹在/var/htp/pu下面 用命令rmp -ql vsftpd查看可以看到最后一个文件。

http的网络访问页面文件夹在/var/www/html下面 用命令rpm -ql httpd查看可以看到最后一个文件。

关闭防火墙

centos6
service iptables stop
chkconfig iptables off

centos7
systemctl stop firewalld
systemctl disable firewalld

开启http和ftp服务  (systemctl start htttpd或systemctl star vsftpd)

yum命令的用法

yum install +包名 (安装软件包)

yum remove +包名 (卸载软件包)

yum repolist    (查看已搭建的yum仓库里的软件包的详情)

yum   list (显示已安装的包)

yum list all (显示所有的包包括没有安装的)

yum reinstall (重新安装包)

yum update  (升级包)

yum downgrade  (降级包)

yum info +包名 (查看包的信息)

yum clean all (清除yum缓存)  缓存文件放在/var/cache/yum

查看yum安装历史

yum history  (查看历史安装信息)

yum  history undo 5 (撤销历史中第五条命令)

yum history redo 5 (重新执行次序列号的操作)

yum的命令行选项:

–nogpgcheck:禁止进行gpg check

-y: 自动回答为“yes

-q:静默模式

–disablerepo=repoidglob:临时禁用此处指定的repo

–enablerepo=repoidglob:临时启用此处指定的repo

–noplugins:禁用所有插件

用yum安装单个rpm包

例如在/data/目录里有一个单独的 rpm (tree包)包  使用命令 createrepo +包所在的路径 (createrepo /data)就会在/data目录下生成一个仓库的源个数据目录repodata

然后将yum仓库里的路径改为baseurl=file:///data 即可

包组管理的相关命令:

yum groupinstall group1 [group2] […]  (包组安装)

yum groupupdate group1 [group2] […] (包组升级)

yum grouplist [hidden] [groupwildcard] […]  (查看包组列表)

yum groupremove group1 [group2] […]      (包组删除)

yum groupinfo group1 […]        (查看包组信息)

3. 源码的编译安装

准备工作:
1 关闭firwalld
centos6: service iptables stop; chkconfig iptables off
centos7: systemctl stop firewalld; systemctl disable firewalld

2 关闭SElinux
setenforce 0
vim /etc/selinux/config
SELINUX=disabled

1 yum groupinstall “development tools” (安装包组文件)
yum install openssl-devel (安装缺失的包)

2 download (下载源码文件)
tar xvf httpd-2.4.33.tar.bz2 (新建目录解压源码文件)

3 cd httpd-2.2.34 (进入到解压后的源码文件的文件夹)
cat README  (查看帮助)
cat INSTALL

4 ./configure –help     (编译安装查看帮助)
./configure –prefix=/app –sysconfdir=/etc/httpd22 –enable-ssl

5 make -j 4 && make install

6 vim /etc/profile.d/env.sh   (更改PATH变量的地址既新加/app的变量地址)
PATH=/app/bin:$PATH

. /etc/profile.d/env.sh  (更改后的变量地址source 一下)

7 apachectl start   (运行apachectl 服务)

编译安装完成

3.磁盘管理以及文件系统

磁盘的分区方式: BMR分区和GPT分区

MBR分区:最大分区为2T 分区方式为按柱面分区  (磁盘主要信息存储在前512个字节中其中主引导程序占446个字节 ;主分区列表占64个字节结束标志占用两个字节aa55 为防止磁盘信息破坏需要备份前512个字节保存到网络上 如果磁盘信息损坏需要在救援模式下将磁盘的主要信息回复即可。)

方法:hexdump -C /dev/sda -n 512 (用二进制方法查看sda磁盘下的前512个字节信息)
备份前512个字节 :dd if=/dev/sda of=/data/mr_brk  bs=1 count=512 (bs不加指全部内容此处指的是一个字节共512次)          还原:dd if=/data/mr_brk of=/dev/sda (后面的】不加指的是将全部内容写到原本的/dev/sda里面就完成了还原)如果是备份到其他机器上只要将其远程拷贝下来到当前目录再恢复就行了用scp +其他机器IP+文件路径    到本机路径 

GPT分区: 最大分区为64Z    分区方式为按扇区分区

管理分区
列出块设备

• lsblk 

创建分区使用:

• fdisk创建MBR分区

• gdisk创建GPT分区

• parted高级分区操作 

分区工具fdisk 和pgdisk

pgdisk /dev/sdb 类fdisk 的GPT分区工具

fdisk -l [-u] [device…] 查看分区

fdisk /dev/sdb 管理分区

子命令: 

p 分区列表 

t 更改分区类型 

n 创建新分区 

d 删除分区 

v 校验分区 

u 转换单位 

w 保存并退出 

q 不保存并退出

artprobe-重新设置内存中的内核分区表版本

同步分区表
查看内核是否已经识别新的分区: (如果没有更新识别用以下操作来同步更新

cat /proc/partations 

centos6通知内核重新读取硬盘分区表

新增分区后同步用的

partx -a /dev/DEVICE

kpartx -a /dev/DEVICE -f: force

删除分区后同步用的

partx -d –nr M-N /dev/DEVICE 

CentOS 5,7: 使用partprobe partprobe [/dev/DEVICE]

文件系统创建

根据其是否支持”journal”功能:

日志型文件系统: ext3, ext4, xfs, …

非日志型文件系统: ext2, vfat 

文件系统的组成部分:

内核中的模块:ext4, xfs, vfat

用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat 

Linux的虚拟文件系统:VFS 

查前支持的文件系统:cat /proc/filesystems

cent0s6创建ext4文件系统:mkfs   -t  ext4   /dev/sdb1

查看创建文件系统的信息: tune2fs  -l /dev/sdb1  (此命令只支持ext文件系统查询)需要更改和添加ACL权限 装操作系统是分区则自动带,手动添加的文件系统则没有ACL权限需要用此命令来更改。在centos7中无论是后加的文件系统还是先前有的都有ACL权限。

centos7创建xfs文件系统 :mkfs   -t  xfs  /dev/sdb2

 

tune2fs  (只能管理ext类型的文件)
tune2fs:重新设定ext系列文件系统可调整参数的值

-l:查看指定文件系统超级块信息;( tune2fs -l /dev/sdb2 只能看ext系统的文件)

super block -L ‘LABEL’:修改卷标

-m #:修预留给管理员的空间百分比  ( 默认为95%,如果硬盘过大需要修改值来利用磁盘空间不要浪费更改方式:tune2fs  /dev/sdb2   -m 1 及修改为1%的比例。支持小数点)

-j: 将ext2升级为ext3

-O: 文件系统属性启用或禁用,–O ^has_journal

-o: 调整文件系统的默认挂载选项,–o ^acl

-U UUID: 修改UUID号 

dumpe2fs: (查看超级块的详细信息)

块分组管理,32768块

-h:查看超级块信息,不显示分组信息

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96569

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班