第四周作业

1、查找/var目录下不属于root、lp、gdm的所有文件

find /var ! \( -user root -o -user lp -o -user gdm \)

 

2、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)

思路:除了字母的(不止一个)的字符替换成换行符,进行排序并且寻找出现次数

(1)cat /etc/init.d/functions | sed -r 's@[^[:alpha:]]+@\n@g' | sort | uniq -c | sort -n

(2)grep -Eo "[[:alpha:]]+" /etc/init.d/functions | sort | uniq -c

 

3、利用sed 取出ifconfig命令中本机的IPv4地址总结

思路:取出inet对应的行——>替换中间的IP地址来后向引用来替换

ifconfig ens33 | sed -n '/inet\b/p'|sed -r 's@.*inet\>(.*)\<netmask.*$@\1@'

 

4、总结yum的配置和使用,包括yum仓库的创建

yum (Yellowdog Update Modifier)  程序包管理器的前端工具

    是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包.

yum客户端安装软件等操作实现原理:
            1、配置文件:指定各可用的yum仓库;
            2、缓存元数据:yum会到各可用yum仓库获取元数据,并缓存至本地;
            3、分析元数据:根据具体操作请求完成元数据分析, 可能包括检查依赖关系、文件列表等信息;
            4、执行具体操作:

客户端配置文件指定对应服务器访问方式如下几种:
            ftp   ftp://server/path/to/repo
            http  http://server/path/to/repo
            nfs   nfs://server/nfs_path
            file  file:///path/to/repository

要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中:
   主配置 /etc/yum.conf
   仓库配置 /etc/yum.repos.d/*.repo

配置文件格式:由两段组成,类似windows的ini配置文件
        [main] :主配置段
        [repo] :仓库配置段

配置文件格式,文件 存放于/etc/yum.repos.d/ 并以repo结尾的文件

    [repo_id]

    name=repo_name   显示的名称,可以是任意的字符串

    baseurl=url             软件路径可以是网络上的,也可以是本地的

    gpgcheck={0|1}       是否启用包来源合法性验证

    enabled={0|1}          是否启用仓库

    gpgkey=公钥文件(可以在本地,也可是服务器端路径)

    cost=1000 仓库开销,用来做优先级,默认不指定就是1000 数值越小,优先级越大

 

示例以光盘为rpm源配置仓库

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
vim /etc/yum.repos.d/cdrom.repo
[base-cdrom]
name=cdrom_repo
baseurl=file:///mnt/cdrom/                       # 一般为repodata所在的目录,这里面有rpm包的元数据 
gpgcheck=1
enabled=1
gpgkey=file://mnt/cdrom/RPM-GPG-KEY-CentOS-6


保存退出,yum repolist 可以查看是否配置成功

yum 命令使用:

格式:

    

yum的各命令:

 

    安装

        install package_name ...: 安装指定的程序包
        reinstall package_name ...: 重新安装指定的程序包   
        groupinstall "group_name":安装指定的包组

                # yum install httpd
   查找

        repolist [all|enabled|disabled]: 列出所有可用yum repo
        list [all|installed|available]: 列出rpm包
        info package_name: 列出包的描述信息
        grouplist: 列出所有包组
        groupinfo "package_group_name":显示包组信息       


    升级
            check-update: 检查可升级的包
            update package_name ...: 升级指定的程序包

                如现在的版本:x-1.2.1, x-1.2.2, x-1.2.3
                    要升级到指定版本需指定版本号:yum update x-1.2.2 
    降级   downgrade package_name:

 

    删除
            erase|remove  package_name ...:  删除己安装的包,会连依赖的包一起删除  
            groupremove "group_name": 卸载指定的包组

    查询
            whatprovides|provides /path/to/somefile: 查询某文件是由哪个包安装生成的 

  #  yum provides */ifcofnig   # 这样可以查询ifconfig这个命令由哪个包提供的
    清除元仓库数据

            clean [all|packages|metadata|expire-cache|rpmdb|plugins]: 清理缓存

 

    安装本地包:(yum 安装本地的rpm包依旧会检查软件来源合法性的,无法通过的不予安装。需要安装则要禁止检查。)
        install /path/to/package_file
            手动禁止检查来源及完整性:--nogpgcheck
                yum install /tmp/zsh-2.3.1-2.el6.x86_64.rpm --nogpgcheck

 

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

获取当前系统相应宏替换结果的办法:
        # python
        Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)
        [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
        Type "help", "copyright", "credits" or "license" for more information.
        >>> import yum,pprint
        >>> yb = yum.YumBase()
        >>> pprint.pprint(yb.conf.yumvar,width=1)
        Loaded plugins: fastestmirror, refresh-packagekit
        {'arch': 'ia32e',
         'basearch': 'x86_64',
         'releasever': '6',
         'uuid': 'ea249181-2f82-4c40-8c42-d51b3fce319a'}
        >>> quit()

 

     三个跟开发相关的包组:
            Desktop Platform Development:有图形程序时需安装此组;
            Server Platform Development
            Development Tools

5、编写系统初始化脚本reset.sh。包括别名,提示符颜色,yum仓库配置文件

 1 [root@localhost data]# bash resert.sh 
 2 [root@localhost data]# cat resert.sh 
 3 #!/bin/bash
 4 #
 5 # 初始化系统脚本
 6 echo "alias net='cd /etc/sysconfig/network-scripts/'" >> /root/.bashrc
 7 echo "PS1='\[\e[31m\][\u\]\e[0m\]\[\e[1;33m\]@\[\e[0m\]\e[36m\]\W\t\]]\e[0m\]'" >>/etc/profile.d/env.sh
 8 touch /etc/yum.repos.d/base.repo
 9 echo "[base]">>/etc/yum.repos.d/base.repo
10 echo "name=base">>/etc/yum.repos.d/base.repo
11 echo "baseurl=https://mirrors.aliyun.com/centos/$releasever/os/x86_64/">>/etc/yum.repos.d/base.repo
12 echo "gpgcheck=0">>/etc/yum.repos.d/base.repo
13 [root@localhost data]# 
14 [root@localhost data]# reboot 
15 Connection closing...Socket close.
16 
17 Connection closed by foreign host.
18 
19 Disconnected from remote host(Centos 7-CN-ZH root - 副本) at 00:49:00.
20 
21 Type `help' to learn how to use Xshell prompt.
22 [C:\~]$ 
23 
24 Connecting to 192.168.47.128:22...
25 Connection established.
26 To escape to local shell, press 'Ctrl+Alt+]'.
27 
28 Last login: Sat Apr 13 23:04:24 2019 from 192.168.47.1
29 [root@~00:49:54] 

 

6、安装tree,ftp,lftp,telnet等包

 [root@yum.repos.d01:04:09]yum -y install tree ftp lftp telnet

 

7、在CentOS7上编译安装apache2.4源码包,并启动此服务

1) 安装一些依赖包

yum install wget gcc pcre-devel openssl-devel

2) 下载apache,apr和apr-util

apache 2.4版本使用apache 2.4.12,apr-1.5.2和 apr-util-1.5.4

cd ~
mkdir sources
cd sources
wget http://ftp.piotrkosoft.net/pub/mirrors/ftp.apache.org//httpd/httpd-2.4.12.tar.bz2
wget http://ftp.ps.pl/pub/apache//apr/apr-1.5.2.tar.bz2
wget http://ftp.ps.pl/pub/apache//apr/apr-util-1.5.4.tar.bz2
tar -xvf httpd-2.4.12.tar.bz2
tar -xvf apr-1.5.2.tar.bz2
tar -xvf apr-util-1.5.4.tar.bz2
cp -r apr-1.5.2 httpd-2.4.12/srclib/apr
cp -r apr-util-1.5.4 httpd-2.4.12/srclib/apr-util
cd httpd-2.4.12
./configure --prefix=/etc/apache2 --enable-ssl --enable-so --with-included-apr --with-mpm=event
make
make install

需要注意的是由于./configure中的–prefix=/etc/apache2,apache将安装在/etc/apache2,同样的会启用ssl支持,so(动态模块支持),包括apr和event mpm。

3) 启动前一些基本的配置

需要确保/etc/apache2的所有者为apache用户:

chown -R apache.root /etc/apache2

需要对httpd.conf作一些更改

cd /etc/apache2/conf
cp httpd.conf httpd.conf.bak
vi httpd.conf

在文件内,设置用户和用户组为apache

User apache
Group apache

设置一个ServerName,这可以避免apache启动时的warning

ServerName example.com

取消Server-pool管理的注释

Include conf/extra/httpd-mpm.conf

在上面的行添加如下行:

Include conf/vhosts/*.conf

也取消server默认配置的注释

Include conf/extra/httpd-default.conf

4) 启动apache

检查启用的模板

/etc/apache2/bin/apachectl -M

检查配置文件是否有错误

/etc/apache2/bin/apachectl -t

重启apache server

/etc/apache2/bin/apachectl -k graceful

确保apache开机启动

echo '/etc/apache2/bin/apachectl start' >> /etc/rc.local

在centos 7开机80 443端口

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --reload

 

posted @ 2019-04-15 22:53  N37_shiguoqing  阅读(180)  评论(0)    收藏  举报