find、sed命令使用、yum配置及使用、源码编译过程

find命令使用

语法为:
find 目录 选项

常用参数及实例:

-name 查找指定名字的文件或包含指定字符串的文件

查找etc下conf后缀的文件
find /etc -name *.conf

查找etc下名为yum.conf的文件
find /etc -name yum.conf

查找etc下包含yum的文件
find /etc -name *yum*

-iname 忽略大小写

-perm 根据权限查找文件
匹配权限可在前面加上 “-” 或者 “+” CentOS7中 “+” 改为了 “/”
例如-644 /644 不加则是完全匹配如是0则不检查

查找etc目录下权限为644的文件
find /etc -perm 644
此时文件完全匹配644权限,不多也不少

find /etc -perm -644
此时文件只要满足644以上至777都会匹配

find /etc -perm /644
此时文件只要所属匹配6和以上的权限,或者所组4以上的权限,或者其他人4以上的权限则匹配

-user 文件所属为指定用户

查找etc下属于root的文件
find /etc -user root

-group 文件属组是指定组

查找etc下属于root组的文件
find /etc -group root

-mtime 按照修改时间距离现在有几天查找,天数加 - 或 + 代表多少天内和多少天以上

查找etc目录下修改时间距离今日为5天内的
find /etc -mtime -5

5天以上则是
find /etc -mtime +5

-atime 按照文件最后一次被访问的时间
-ctime 按照修改文件属性的时间,例如修改所属,属组,权限
-nogroup 查找无效组的文件,属组在组文件中不存在的
-nouser 查找无效属主的文件,属主在用户文件中不存在的
-type 按文件类型查找类型分为:

b:块设备
c:字符设备
d:目录
p:管道
l:链接
f:普通文件

-size 按照文件大小查找,常用单位k M G c(byte),范围可增加+或者-不加默认范围是-1
实例:

find /var -size 5k
此时因为没加符号,默认-1,匹配范围则是大于4k小于5k之间大小的文件

find /var -size -5k
此时加了 - 则匹配大于0k小于5k的文件

find /var -size +5k
此时加了 + 则匹配大于5k以上的文件

-depth 设置搜索顺序为搜索完本目录再进入子目录
-not 取反,可用!表示

find查找后可加处理动作

-print 在屏幕上打印,也是默认的动作
-ls 显示查找到的文件属性,类似于 ls -l
-exec 命令 {} ; 对查找到的文件执行指定命令,例如:

查找etc目录下.conf后缀的文件并且cat
find /etc -name *.conf -exec cat {} \;
{} 表示匹配到的文件名列表 \;表示结束注意{}和\;之间要有空格

find传递的是列表,如果匹配文件过多会造成列表过长,此时需要使用xargs

sed命令使用

sed 选项 命令 文本内容或文件路径

常用选项:
-n 取消默认打印功能
-e 执行多项命令
-r 使用扩展正则表达式
-i 直接保存文件
-ibak 修改时备份原文件并在原文件后面加上bak后缀,bak可自定义

常用命令:
a 把a后面的字符串加在匹配行的后面一行
c 把c后面的字符串用来替代匹配行
d 删除匹配行
i 把i后面的字符串在匹配行前面插入
p 打印
s 替换

匹配方式:
直接输入行数匹配,例如:

seq 10 |sed -n '2p' 
输出1-10的数字行,交给sed 并且只打印第二行

seq 10 |sed -n '2,4p'
只打印2至4行

seq 10 |sed -n '2,+4p'
只打印从第2行开始往后加4行

正则表达式匹配:

sed -n '/root/p' /etc/passwd
/root/为表达式,表示匹配包含root的行,结果为
[root@localhost /etc]#sed -n '/root/p' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

sed -n '/^root/p' passwd
匹配root开头的行,结果为:
[root@localhost /etc]#sed -n '/^root/p' passwd
root:x:0:0:root:/root:/bin/bash

1.查找/var目录下不属于root、lp、gdm的所有文件
find /var ! -user root ! -user lp ! -user gdm
2、统计/etc/init.d/functions文件中每个单词出现的次数,并排序(用grep和sed两种方法分别实现)

grep方法:

cat /etc/init.d/functions|grep -Eo '[a-zA-Z]{2,}'|sort|uniq -c|sort -n

sed方法

sed -nr -e 's#[^a-zA-Z]#\n#gp' /etc/init.d/functions|sort|uniq -c|sort -n
3、利用sed取出ifconfig命令中本机的IPv4地址
ifconfig |sed -nr '2s#^(.*inet )(.*)( net.*)#\2#p'
4、总结yum的配置和使用,包括yum仓库的创建
yum配置:

/etc/yum.conf 文件中main配置段定义了yum仓库的默认设置

/etc/yum.repos.d/目录中以.repo为后缀的文件文件定义了yum仓库设置
一般配置内容如下:

[base] 节点名字
name=mybase 描述名字
baseurl=file:///misc/cd 仓库源的位置,此处使用了光盘源,还可支持ftp,http,https
gpgcheck=0 是否检查包
enabled=0 仓库是否启用
#gpgkey= 钥匙文件

yum的配置中可以使用变量,具体为:

$releasever: 程序的版本,对Yum而言指的是redhat-release版本;只替换为主版本号,如RedHat 7.4,则替换为7; 
$arch: 系统架构
$basearch: 系统基本架构,如i686,i586等的基本架构为i386;
$YUM0-9: 在系统中定义的环境变量,可以在yum中使用;

yum仓库有缓存数据,修改仓库配置后可使用yum clean all清除全部缓存以免继续读取缓存中的数据

yum仓库创建:
先创建一个文件夹,例如/yumbase,然后将rpm文件复制到/yumbase中
执行
createrepo /yumbase
将仓库配置文件里是baseurl指向/yumbese即可
yum的使用:

1.安装

yum install autofs 安装名为autofs的包
yum groupinstall "development Tools" 安装development Tools包组

2.查找

yum repolist 列出所有仓库源
yum list 列出仓库中所有rpm包
yum info autofs 显示autofs包的信息
yum grouplist 列出所有组包
yum grouplist "development Tools" 列出development Tools组包的信息
yum provides autofs 查找autofs是哪个包提供的

3.删除

yum remove autofs 卸载名为autofs的包
yum groupmove "development Tools" 卸载development Tools组包
5、编写系统初始化脚本 reset .sh,包括别名,提示符颜色,yum仓库配置文件
#!/bin/bash
#************************************************
#Author:        Zero
#Date:          2019-05-27
#File name:     reset.sh
#************************************************
grep -E 'PS1=.*' ~/.bashrc &>/dev/nell &&sed -ir '/PS1=.*/d' ~/.bashrc
echo 'PS1="[\e[1;32m\u\e[0m@\e[1;36m\t\e[0m \e[1;33m\w\e[0m]\e[1;32m\\$\e[0m"' >>~/.bashrc
echo "alias vi='vim'" >>~/.bashrc
dir="/etc/yum.repos.d"
cat $dir/bak &>/dev/null || mkdir $dir/bak &>/dev/null
mv $dir/*.repo $dir/bak/
cat > $dir/myBase.repo <<EOF
[base]
name=myBase
baseurl=file:///misc/cd/
gpgcheck=0
EOF
yum clean all &>/dev/null
6、安装tree,ftp,lftp,telnet等包
cat > ins.sh <<EOF
yum install tree -y
yum install ftp -y
yum install lftp -y
yum install telnet -y
EOF
chmod +x ins.sh
./ins.sh
7、在CentOs7上编译安装apache2.4源码包,并启用此服务
如果没装过开发包组先执行
yum groupinstall "development Tools" 
如果缺失包可能是这几个
yum install apr-devel apr-util-devel pcre-devel openssl-devel

解压源码
tar xf httpd-2.4.39.tar.bz2 

切换到解压后的目录
cd httpd-2.4.39 

看说明文档INSTALL和README

执行configure生成Makefile文件
./configure --help可以查看帮助
./configure --prefix=/server/httpd --enable-ssl --disable-status 

执行make生成应用程序
make

添加环境变量脚本并执行
echo 'PATH=/server/httpd/bin:$PATH' > /etc/profile.d/httpd.sh
. /etc/profile.d/httpd.sh

创建一个用户并修改安装目录中的配置文件httpd.conf中的用户

在/etc/man_db.conf中添加man帮助路径

启动服务
apachectl start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值