1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Linux文件查找与tar包管理 企业级sed应用 软件包管理与编译安装httpd

Linux文件查找与tar包管理 企业级sed应用 软件包管理与编译安装httpd

时间:2022-03-06 23:35:29

相关推荐

Linux文件查找与tar包管理 企业级sed应用 软件包管理与编译安装httpd

总结

第7节 Linux文件查找与tar包管理、企业级sed应用

使用locate命令使用find命令压缩和解压缩工具

01-文件搜索

locate (00:02:30)

locate test.shupdatedb # 更新locate数据库 对应/var/lib/mlocate/mlocate.db文件locate "*.sh" # 不加"" 只搜索当前目录下locate -n 3 -i "*.sh" #忽略大小写,显示前3个locate -r "\.sh$" #支持标准正则表达式

find命令(00:11:00)

实时查找工具,通过遍历指定路径完成文件查找工作特点:• 查找速度略慢• 精确查找• 实时查找• 可能只搜索用户具备读取和执行权限的目录

find /data # data下所有文件包括子目录下文件find /data -maxdepth 1 #搜索目录最大深度find /data -maxdepth 2 -mindepth 2find -depth # 先显示文件.再处理目录find /data -name "*test*" # find /data -iname "*.SH"find /data -inum 68 # 按inode查找-samefile name 相同inode号的文件find /data -samefile /data/bin/f1.sh-links n 链接数为n的文件find /data -links 2-regex “PATTERN”:以PATTERN匹配整个文件路径,而非文件名称find /data -regex '.*\.sh$'-user USERNAME:查找属主为指定用户(UID)的文件find /data -user wang -ls-nouser:查找没有属主的文件-nogroup:查找没有属组的文件find /data -type d #根据文件类型查找find -empty #查找空文件或目录find -type d -emptyfind -name "*.sh" -o -user root # -o 或find \( -name "*.sh" -o -user root\) -lsfind ! -name "*.sh"

德·摩根定律:(00:37:00)

(非 A) 或 (非 B) = 非(A 且 B)(非 A) 且 (非 B) = 非(A 或 B)find ! \( -user wang -name "*.txt"\) # 等价于find ! -user wang -o ! -name "*.txt"查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件find /etc -path "/etc/sane.d" -a -prune -o -name "*.conf"查找/etc/下,除/etc/sane.d和/etc/fonts两个目录的所有.conf后缀的文件find /etc \( -path "/etc/sane.d" -o -path "/etc/fonts" \) -a -prune -o -name "*.conf"

02-文件搜索和压缩工具1

根据文件大小来查找

find / -size 10M #在根目录下搜索10M文件 10M 是一个范围9-10M不包括9M (#-1,#]-#UNIT:[0,#-1]+#UNIT:(#,∞)find /usr -size +5M -size -10M -ls # 5M到10M不包括10M

根据时间查找

UNIX/Linux文件系统每个文件都有三种时间戳:访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。find /var/log -type f -mtime +7

根据权限查找(00:11:00)

find -perm 644 # 查找精确权限匹配644find -perm /644 # ugo满足一位即可find -perm -644 #ugo都必须同时拥有指定权限find -perm -004 # 0表示不关注,只要o位满足4权限即可

处理动作(00:30:00)

-print-ls-delete-ok -exec区别在于 -ok需要用户确认find -perm -444 ! -name "*.sh" -ok mv {} /root \;

xargs参数替换(00:41:00)

echo f{1..64288} |xargs touchfind /sbin -perm +7000 | xargs ls –l

压缩、解压缩及归档工具(1:00:00)

compress bigfile #生成.z文件,源文件删除uncompress bigfile.z #解压后压缩文件删除zcat file.z > file #不显示解压缩的前提下查看文本文件内容gzip -d file.gz #解压file.gz压缩工具解压对应的后缀名tree /etc |gzip > tree.gz #支持标准输入,输出到tree.gz 在以后数据库学习中会用到 压缩 解压缩后会丢失文件属性cp m -- -f2 #复制m为-f2gzip -- -f1 -f2 -f3 #压缩带-的文件除了zip和tar压缩文件,不能压缩文件夹cat /var/log/messages | zip messages - # - 代表前面的标准输入

03-文件压缩和打包工具2

tar (00:25:00)

tar -cpvf /PATH/FILE.tar FILE... # 创建归档-c 创建 -p保留权限属性 -v观察打包过程 -f 文件名tar cvf etc.tar /etctar -r -f /PATH/FILE.tar FILE... # 追加文件至归档: 注:不支持对压缩文件追加tar -t -f /PATH/FILE.tar # 查看归档文件中的文件列表tar -x -f /PATH/FILE.tar #展开归档tar zcvf etc.tar.gz /data/etc/ #打包压缩gz格式tar jcvf etc2.tar.bz2 /data/etc/ #压缩bz2格式tar Jcvf etc2.tar.xz /data/etc/ #压缩xz格式tar xvf file.tar.bz2 # 解包tar zcvf /root/a3.tgz --exclude=/app/host1 --exclude=/app/host2 /app-exclude 排除文件 tgz 等同tar.gztar Jcvf /root/data.tar.xz -T list.txt -X nolist.txt-T选项指定输入文件,-X选项指定包含要排除的文件列表

splist 分割一个文件为多个文件(00:54:23)

split –b Size –d tar-file-name prefix-namesplit -b 2M -d /root/data.tar.xz databakcat databaka* > databak.tar.xz #合并

cpio (00:59:50)

功能:复制文件从或到归档cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件将etc目录备份:find ./etc -print |cpio -ov >bak.cpio将/data内容追加bak.cpiofind /data | cpio -oA -F bak.cpio解包文件cpio –idv < etc.cpio

文本处理三剑客之sed

Stream EDitor, 行编辑器

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时

缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的

内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。

如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空模式空间,但不会清

空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重

定向存储输出。

功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等

用法:

用法: sed [选项]… {脚本(如果没有其他脚本)} [输入文件]…

例子:

sed -n '2p' /etc/passwd # 打印/etc/passwd 第两行sed -n '/^sa/,/^pul/p' /etc/passwd # 显示passwd文件以sa开头到以pul开头之间的行seq 10 | sed '2,6d' #显示1,7,8,9,10行把2-6删除,sed '/^#/d' /etc/fstab #把fstab中以#开头的行删除,其他显示(文件中并不删除#行,只是不显示以#开头的行)sed '/^root/iadmin line' /etc/passwd #在文件passwd中以root开头的行前加入admin line行sed -i '/^SELINUX=enforcing/cSELINUX=disabled' /etc/selinux/config #更改文件/etc/selinux/config 中以SELINUX=enforcing开头的行为SELINUX=disabledifconfig eth0 | sed -nr '2s/.*t (.*) net.*/\1/p' #取网卡ip地址ifconfig eth0 | sed -r '2!d;s/.*inet (addr:)?//;s/ .*//' #取网卡ip地址 CentOS 6 7通用echo /etc/sysconfig/network-scripts | sed -nr 's@(^.*/)([^/].*)/?$@\1@p' # 取基名或目录名sed -r 's/^[^#]/#&/' /etc/fstab # 不是#开头的行加上#ls *.rpm | rev | cut -d. -f2 | rev | sort | uniq -cls *.rpm | sed -r 's/.*\.(.*)\.rpm$/\1/' | sort | uniq -c

第8节 软件包管理与编译安装httpd

01. 软件包管理

ls *.rpm| sed -r 's/.*\.(.*)\.rpm$/\1/' |sort | uniq -cls *.rpm|rev|cut -d. -f2|rev |sort |uniq -c

02. RPM包管理

ldd 查看二进制程序所依赖的库文件(17:20)

ldd -p #系统中正在使用的库的信息ldd /bin/ls # ls所依赖的库信息ldd /bin/cat # cat所依赖的库信息

实验: 删除/lib64libc.so.6, 恢复(20:00-31:40)

ldconfig 加载配置文件中指定的库文件(32:00)

/sbin/ldconfig –p 显示本机已经缓存的所有可用库文件名及文件路径映射关系配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf缓存文件:/etc/ld.so.cache

RPM 包管理器(34:30)

包文件组成数据库(公共):/var/lib/rpm 包含系统安装好的包的数据信息 非常重要

程序包的来源(43:00)

获取程序包的途径光盘或镜像服务器项目官方站点EPEL源自己制作

rpm命令 (57:00)

使用rpm命令管理程序包(安装、卸载、升级、查询、校验、数据库维护)rpm -ivh PACKAGE_FILE... # -i(--install) -v:verbose -h:以#显示程序包执行进度rpm -q 包名 # -q(query查询) rpm -e 包名 # 卸载配合安装的选项 -ivh --test 测试不安装--nodeps 忽略依赖 --replacepkgs | replacefiles 覆盖 (删除后不完全,强行覆盖安装) 1:10:00--nosignature:不检查来源合法性--nodigest:不检查包完整性--noscripts:不执行程序包脚本rpm -q --scripts bash # 查询bash包安装脚本(1:18:00)rpm包升级 慎用(1:20:00)-U rpm -Uvh upgrad-F rpm -Fvh --oldpackage:降级--force:强制安装

03. RPM包管理

cat /etc/centos-release # 版本rpm -q kernel #内核版本 等同uname -r

内核升级(00:02:00)

lsb_release -a #rpm -ivh 可多版本并存 升级会覆盖旧包不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版本内核如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

rpm -q 包查询

rpm -qa |grep tree # -a all (00:22:00)rpm -qa "*tre*"rpm -ql tree # -l list 查询列表rpm -q --scripts httpd #查询包脚本rpm -qf /usr/bin/tree # 查询某个文件来自哪个包rpm2cpio tree-1.6.0-10.e17.x86_64.rpm | cpio -tv #预览解包rpm文件(00:33:30)rpm2cpio tree-1.6.0-10.e17.x86_64.rpm | cpio -id ./usr/bin/tree #释放包内文件,有可能带来属性丢失rpm -qp /data/tree-1.6.0-10.e17.x86_64.rpm # 安装前查询rpm包里包含的文件rpm -q --whatprovides rpm -qc bash #包查询程序的配置文件 -d: 查询程序的文档rpm -qi bash #查询包描述信息 -i: information rpm -qpi httpd #安装前查询包描述信息常用选项 -qi -qpi -qa

卸载内核并恢复(00:56:00)

rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-754.e16.x86_64.rpm --root=/mnt/sysimage/ #注意安装指定安装根目录

rpm -V #包校验(1:10:00)

rpm -Va #查询所有包变化

04. yum仓库实现

导入所需要公钥(00:04:00)

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7rpm -K|checksig rpmfile 检查包的完整性和签名rpm -qa “gpg-pubkey*”

删除rpm包的恢复(00:16:00)

yum (00:28:00)

rpm的前端程序,可解决软件包的依赖性client端配置文件/etc/yum.repos.d/*.repo:为仓库的指向提供配置/etc/yum.conf:为所有仓库提供公共配置

yum 服务器配置(00:46:00)

系统安装光盘作为本地yum仓库挂载光盘至某目录,例如/mnt/cdrom创建配置文件 /etc/yum.repos.d/[file].repo[base]name=cdrom repobaseurl=file:///misc/cd/#gpgcheck=0gpgkey=file:///misc/cd/RPM-GPG-KEY-Centos-6yum repolist

05.yum网络仓库实现

判断包是否安装的脚本(00:06:00)

挂载光盘systemctl enable autofssystemctl start autofs(00:20:00)用rpm -q httpd 判断是否安装 然后用yum install httpd安装

yum repolistyum list #查看yum源安装包的情况,带@符号表示安装,不带@表示没安装

/etc/yum.conf 文件 (00:24:00)

yum clean all #清空缓存 对应文件目录/var/cache/yum/

yum配置文件讲解(00:28:50)

yum EPEL源配置(00:33:00)

yum的repo配置文件中可用的变量:$releasever: 当前OS的发行版的主版本号$arch: 平台,i386,i486,i586,x86_64等$basearch:基础平台;i386, x86_64$YUM0-$YUM9:自定义变量[epel]name=EPELbaseurl=https://mirrors.tuna./epel/$releasever/$basearchgpgcheck=0enabled=0

yum命令

yum history 查看yum事务历史yum history info IDyum history undo ID 撤销事务历史的安装yum history redo ID 重做历史的安装yum remove

搭建基于HTTP协议的网络yum仓库(00:46:00)

搭建http服务yum install httpdsystemctl start httpdrpm包和源数据放到http的共享目录(可复制光盘目录)配置yum客户端

06.yum使用

yum search

CentOS7 关闭防火墙(00:11:00)

systemctl disable firewalld #关闭防火墙(开机不启动)systemctl stop firewalld #关闭防火墙(立即关闭)CentOS6 关闭防火墙chkconfig iptables offservice iptables stopSElinux关闭/etc/selinux/config文件SELINUX=disabled

卸载虚拟网卡(00:20:00)

yum remove libvirt-daemon

包组列表(00:31:00)

yum grouplistyum groupinstall "development tools"

创建yum仓库(00:37:00)

createrepo [options] <directory>

总结yum常用选项(00:43:00)

yum install remove list info search groupinstall grouplist groupremove historyyum clean all

编译源码(00:44:00)

gcc hello.c -o hi./hifind linux-4.18.13/ -name "*.c" -exec cat {} \; |grep -v "^$"|wc -l # 统计文件多少行cat `find linux-4.18.13/ -name "*.c" `|wc -l

07-源码编译安装httpd

C、C++ make 项目管理器(00:06:00)

configure脚本 --> Makefile.in --> MakefileC语言源代码编译安装三步骤1、./configure2、make3、make install

编译安装httpd (00:16:00)

ss -ntl #查看当前是否有同类服务以免冲突./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable -ssl --disable-statusyum install arp-devel

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。