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

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

    find [OPTION]... [查找路径] [查找条件] [处理动作]

    查找路径:指定具体目标路径;用.来表示当前目录,用/来表示系统根目录,默认搜索为当前目录
    查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件

搜索条件
-maxdepth level 最大搜索目录深度,指定目录为第一级 -type f 查找类型为普通文件
-mindepth level 最小搜索目录深度 -type d 查找类型为目录文件
-depth 先处理目录内的文件,在处理目录 -type l 查找类型为符号链接文件
-name "filename" 支持使用glob*。?。[]。[^] -type s 查找类型为套接字文件
-iname "filename" 不区分字母大小写 -type b 查找类型为块设备文件
-user USERNAME 查找属主为指定用户的文件 -type c 查找类型为字符设备文件
-group GROUPNAME 查找属组为指定组的文件 -type p 查找类型为管道文件
-uidUserID 查找属主为指定的UID号的文件 -empty 查找空文件或目录(find /app -type d -empty)
-gidGroupID 查找属组为指定的GID号的文件 -a
-nouser 查找没有属主的文件 -o
-nogroup 查找没有属组的文件

    处理动作:对符合条件的文件做操作,默认输出至屏幕

处理动作
-ls 类似于查到的文件执行ls -l 命令 -ok COMMAND {} \ 对查找到的每个文件执行COMMAND指定的命令,在执行命令之前,会要求用户确认
-delete 删除查找到的文件 -exec COMMAND {} \ 对查到的每个文件执行COMMAND指定的命令
-fls file 查找到的所有文件的长格式信息保存到指定的文件中 {} 用于引用查找到的文件名称自身

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

 [root@localhost ~]# find /var ! \( -user root -o -user lp -o -user gdm \)
/var/tmp/abrt
/var/lib/colord
/var/lib/colord/icc
/var/spool/postfix/defer
/var/spool/postfix/deferred
.................
/var/spool/postfix/public/flush
/var/spool/postfix/public/showq
/var/spool/postfix/saved
/var/spool/postfix/trace
[root@localhost ~]#

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

常用grep命令选项
命令 说明 命令 说明
--color=auto 对匹配到的文本着色显示 -n 显示匹配的行号
-v 显示不被pattern匹配到的行 -c 统计匹配的行数
-i 忽略字符大小写 -o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息 -w 匹配整个单词
-E 使用ERE,egrep -F 相当于fgrep,不支持正则表达式
基本正则表达式元字符
字符 说明 字符 说明
. 匹配任意单个字符 [] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符 [:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符 [:lower:] 小写字母
[:blank:] 空白字符(空白和制表符) [:upper:] 大写字母
[:space:] 水平和垂直的空白字符(比[:blank:]范围广) [:cntrl:] 不可打印的控制字符(退格、删除等)
[:digit:] 十进制数字 [:xdigit:] 十六进制数字
[:graph:] 可打印的非空白字符 [:print:] 可打印字符
^ 行首 $ 行尾
* *前面字符重复不确定次数 \+ \+前面字符重复一次以上不确定次数
\? ?前面字符重复0或1次 \ 转义符
.* 任意长度字符 \{n\} 前面字符重复n次
\{n,\} 前面字符重复n次以上 \{m,n\} 前面字符重复m次以上n次以下
 [root@VM_0_3_centos ~]# egrep -o "\<[[:alpha:]]+\>" /etc/init.d/functions |sort |uniq -c |sort -n
And
Apply
  ............      #内容很多,就不全部显示了
remaining
z
local
pid
n
dev
return
echo
fi
then
if
[root@VM_0_3_centos ~]#
 [root@VM_0_3_centos ~]# sed -r 's@[^[:alpha:]]+@\n@g' /etc/init.d/functions |sort |uniq -c |sort -n
And
file
dev
return
fi
echo
pid
then
if [root@VM_0_3_centos ~]#

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

 [root@VM_0_3_centos ~]#  ifconfig eth0 |sed -n -e '2s#^.*addr:##g' -e 's# Bcas.*$##gp'
172.30.0.3
[root@VM_0_3_centos ~]# ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether ::::cd:5a brd ff:ff:ff:ff:ff:ff
inet 172.30.0.3/ brd 172.30.15.255 scope global eth0
[root@VM_0_3_centos ~]#

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

  yum:Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具
  yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
    文件服务器:
    http://
    https://
    ftp://
    file://

  yum配置:
    yum的配置文件分为两部分:main和repositoy
    · man部分定义了全局配置选项,整个yum配置文件应该只有一个main,位于 /etc/yum.conf 中;
    · repository 部分定义了每个源/服务器的具体配置,可以有一到多个。位于 /etc/yum.repo.d 目录下的各个文件中

  仓库指向的定义:
    [repositoryID]
    name=Some name for this repository
    baseurl=url://path/to/repository/
    enabled={1|0}
    gpgcheck={1|0}
    gpgkey=URL
    enablegroups={1|0}
    failovermethod={roundrobin|priority}
    roundrobin:意为随机挑选,默认值
    priority:按顺序访问
    cost= 默认为1000

yum命令
命令 说明 命令 说明
yum repolist 显示仓库列表 yum list 显示程序包
yum install package1 安装程序包package1 yum update package1 升级程序包package1
yum remove package 卸载程序包 yum downgrade package1 降级程序包package1

yum info [...]

查看程序包信息 yum clean  清理本地缓存
yum search keyword 以指定的关键字搜索程序包 yum makecache 构建缓存
--disablerepo=repoidglob 临时禁用此处指定的repo --enablerepo=repoidglob 临时启用此处指定的repo

  创建本地yum仓库(ISO)

    首先挂载CentOS 7光盘ISO

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# ls -l /dev/cdrom
lrwxrwxrwx. root root 4月 : /dev/cdrom -> sr0
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .9G 14G % /
devtmpfs 894M 894M % /dev
tmpfs 910M 910M % /dev/shm
tmpfs 910M 11M 900M % /run
tmpfs 910M 910M % /sys/fs/cgroup
/dev/sdb 20G 45M 19G % /data
/dev/sda1 1014M 232M 783M % /boot
tmpfs 182M .0K 182M % /run/user/
tmpfs 182M 36K 182M % /run/user/
/dev/sr0 11G 11G % /mnt/cdrom

  将Packages和repodata复制到/data/yum/下

  cp -rv /mnt/cdrom/reoidata /data/yum

  cp -rv /mnt/cdrom/Packages /data/yum

  安装deltarpm、python-deltarpm、createrepo

 [root@localhost Packages]# rpm -ivh deltarpm-3.6-.el7.x86_64.rpm
警告:deltarpm-3.6-.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [%]
正在升级/安装...
:deltarpm-3.6-.el7 ################################# [%]
[root@localhost Packages]# rpm -ivh python-deltarpm-3.6-.el7.x86_64.rpm
警告:python-deltarpm-3.6-.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [%]
正在升级/安装...
:python-deltarpm-3.6-.el7 ################################# [%]
[root@localhost Packages]# rpm -ivh createrepo-0.9.-.el7.noarch.rpm
警告:createrepo-0.9.-.el7.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [%]
正在升级/安装...
:createrepo-0.9.-.el7 ################################# [%]

  在Packages目录使用createrepo生成yum仓库依赖关系

 [root@localhost Packages]# createrepo -g /mnt/cdrom/repodata/aced7d22b338fdf7c0a71ffcf32614e058f4422c42476d1f4b9e9364d567702f-c7-x86_64-comps.xml /data/yum/Packages/
Spawning worker with pkgs
Spawning worker with pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost Packages]#

  编辑yum仓库配置文件

    进入配置文件目录,先备份(论备份重要性)

 [root@localhost Packages]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cp -rv CentOS-Media.repo CentOS-Media.repo.bak
"CentOS-Media.repo" -> "CentOS-Media.repo.bak"
[root@localhost yum.repos.d]# ll
总用量
-rw-r--r--. root root 4月 : CentOS-Media.repo
-rw-r--r--. root root 4月 : CentOS-Media.repo.bak
[root@localhost yum.repos.d]# cd /data/yum/
[root@localhost yum]# cp -a /mnt/cdrom/ /data/yum/
[root@localhost yum]#ll
总用量
drwxrwxr-x. root root 11月 : cdrom
[root@localhost yum]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 17G .9G 14G % /
devtmpfs devtmpfs 894M 894M % /dev
tmpfs tmpfs 910M 910M % /dev/shm
tmpfs tmpfs 910M 11M 900M % /run
tmpfs tmpfs 910M 910M % /sys/fs/cgroup
/dev/sdb ext4 20G 11G .5G % /data
/dev/sda1 xfs 1014M 232M 783M % /boot
tmpfs tmpfs 182M .0K 182M % /run/user/
tmpfs tmpfs 182M 48K 182M % /run/user/
/dev/sr0 iso9660 11G 11G % /mnt/cdrom
[root@localhost yum]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim CentOS-Media.repo
[root@localhost yum.repos.d]# cat CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///data/yum/cdrom
gpgcheck=
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: c7-media
Cleaning up list of fastest mirrors
Other repos take up M of disk space (use --verbose for details)
[root@localhost yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
c7-media | 3.6 kB ::
(/): c7-media/group_gz | kB ::
(/): c7-media/primary_db | 6.0 MB ::
(/): c7-media/other_db | 2.6 MB ::
(/): c7-media/filelists_db | 7.1 MB ::
元数据缓存已建立
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# yum install corosync
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 corosync.x86_64.0.2.4.3-.el7 将被 安装
--> 正在处理依赖关系 corosynclib = 2.4.-.el7,它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libvotequorum.so.(COROSYNC_VOTEQUORUM_1.)(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libquorum.so.(COROSYNC_QUORUM_1.)(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libcpg.so.(COROSYNC_CPG_1.)(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libcmap.so.(COROSYNC_CMAP_1.)(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libcfg.so.(COROSYNC_CFG_0.)(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libvotequorum.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libtotem_pg.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libquorum.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libqb.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libcpg.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libcorosync_common.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libcmap.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在处理依赖关系 libcfg.so.()(64bit),它被软件包 corosync-2.4.-.el7.x86_64 需要
--> 正在检查事务
---> 软件包 corosynclib.x86_64.0.2.4.3-.el7 将被 安装
---> 软件包 libqb.x86_64.0.1.0.1-.el7 将被 安装
--> 解决依赖关系完成 依赖关系解决 ========================================================================================================================================
Package 架构 版本 源 大小
========================================================================================================================================
正在安装:
corosync x86_64 2.4.-.el7 c7-media k
为依赖而安装:
corosynclib x86_64 2.4.-.el7 c7-media k
libqb x86_64 1.0.-.el7 c7-media k 事务概要
========================================================================================================================================
安装 软件包 (+ 依赖软件包) 总下载量: k
安装大小: k
Is this ok [y/d/N]: y
Downloading packages:
----------------------------------------------------------------------------------------------------------------------------------------
总计 MB/s | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : libqb-1.0.-.el7.x86_64 /
正在安装 : corosync-2.4.-.el7.x86_64 /
正在安装 : corosynclib-2.4.-.el7.x86_64 /
验证中 : corosynclib-2.4.-.el7.x86_64 /
验证中 : corosync-2.4.-.el7.x86_64 /
验证中 : libqb-1.0.-.el7.x86_64 / 已安装:
corosync.x86_64 :2.4.-.el7 作为依赖被安装:
corosynclib.x86_64 :2.4.-.el7 libqb.x86_64 :1.0.-.el7 完毕!
[root@localhost yum.repos.d]#

软件安装成功,无报错。yum配置成功

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

 [root@localhost data]# bash resert.sh
[root@localhost data]# cat resert.sh
#!/bin/bash
#
# 初始化系统脚本
echo "alias net='cd /etc/sysconfig/network-scripts/'" >> /root/.bashrc
echo "PS1='\[\e[31m\][\u\]\e[0m\]\[\e[1;33m\]@\[\e[0m\]\e[36m\]\W\t\]]\e[0m\]'" >>/etc/profile.d/env.sh
touch /etc/yum.repos.d/base.repo
echo "[base]">>/etc/yum.repos.d/base.repo
echo "name=base">>/etc/yum.repos.d/base.repo
echo "baseurl=https://mirrors.aliyun.com/centos/$releasever/os/x86_64/">>/etc/yum.repos.d/base.repo
echo "gpgcheck=0">>/etc/yum.repos.d/base.repo
[root@localhost data]#
[root@localhost data]# reboot
Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(Centos -CN-ZH root - 副本) at ::. Type `help' to learn how to use Xshell prompt.
[C:\~]$ Connecting to 192.168.47.128:...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'. Last login: Sat Apr :: from 192.168.47.1
[root@~::]

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

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

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

  安装相关依赖包

 yum -y install gcc gcc++ zlib zlib-devel

  下载Apache需要的源码包

 [root@localhost ~]#wget http://archive.apache.org/dist/apr/apr-1.7.0.tar.gz
[root@localhost ~]#wget http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz
[root@localhost ~]#wget https://newcontinuum.dl.sourceforge.net/project/pcre/pcre/8.43/pcre-8.43.tar.gz
[root@localhost ~]#wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.39.tar.gz

  将这些源码包解压

 [root@Centos7 ~]# tar -xf apr-1.7..tar.gz
[root@Centos7 ~]# tar -xf apr-util-1.6..tar.gz
[root@Centos7 ~]# tar -xf pcre-8.43.tar.gz
[root@Centos7 ~]# tar -xf httpd-2.4..tar.gz
[root@Centos7 ~]#

  安装并编译这些软件

 [root@Centos7 ~]# cd apr-1.7./    #进入解压的软件包目录里面
[root@Centos7 apr-1.7.]# ./configure --prefix=/usr/local/apr/ && make && make install    #编译安装
[root@Centos7 apr-1.7.]# cd /root/apr-util-1.6./    #进入解压的软件包目录里面
[root@Centos7 apr-util-1.6.]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/ && make && make install    #编译安装
[root@Centos7 apr-util-1.6.]# cd /root/pcre-8.43/    #进入解压的软件包目录里面
[root@Centos7 pcre-8.43]# ./configure --prefix=/usr/local/pcre/ && make && make install    #编译安装
[root@Centos7 pcre-8.43]# cd /root/httpd-2.4./    #进入解压的软件包目录里面
[root@Centos7 httpd-2.4.]# ./configure --prefix=/usr/local/apache24/ --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ && make && make install    #编译安装

  启动Apache

 [root@localhost httpd-2.4.]# cd /usr/local/apache24/bin/
[root@localhost bin]# ./apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
[root@localhost bin]# vim /usr/local/apache24/conf/httpd.conf     #修改httpd.conf文件,在#ServerName www.example.com:80下面添加一行ServerName localhost:80 重新启动apache服务即可
[root@localhost bin]# ./apachectl start
httpd (pid ) already running
[root@localhost bin]#

  关闭防火墙, 添加Apache自启动

 [root@Centos7 bin]# systemctl stop firewalld.service
[root@Centos7 bin]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@Centos7 bin]# cp /usr/local/apache24/bin/apachectl /etc/rc.d/init.d/httpd
[root@Centos7 bin]# vim /etc/rc.d/init.d/httpd #!/bin/sh
#chkconfig: 2345 70 70    #chkconfig: 2345 70 70中的2345是指脚本的运行级别,234都是文本界面,5是图形界面;70是指脚本将来的启动顺序号
#description: apache # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#

  把Apache添加到系统服务并设置自启动

 [root@Centos7 bin]# chkconfig --add httpd
[root@Centos7 bin]# chkconfig httpd on
[root@Centos7 bin]#

  配置文件路径也就是安装Apache时–prefix=xxxx所指定的目录(见编译安装时标红的那些路径)

 [root@Centos7 bin]# cat /usr/local/apache24/conf/httpd.conf
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.

  至此,Apache配置编译安装和设置自启动已全部完成。

最新文章

  1. Spring Aspectj切入点语法定义
  2. Expert 诊断优化系列------------------锁是个大角色
  3. 【网络基础编程】第三节 C/S
  4. Javascript实现Linq查询方式
  5. Swift 实现iOS Animation动画教程
  6. 使用ExpandableListView实现一个时光轴
  7. angularjs + springmvc 上传和下载
  8. php array相关函数个人小结
  9. CSS样式表之background背景
  10. hdu_5810:Balls and Boxes(期望)
  11. Golang: Cobra命令行参数库的使用
  12. JSP基础知识➣结构及生命周期(一)
  13. Python学习之旅(十八)
  14. MAC ACL、RACL和VACL
  15. SharePoint 2013 APP 开发示例 系列
  16. linux指定某非root用户执行开机启动项的方法(gogs git)
  17. action spring 注入错误,如果检查各项注入都没有错误时,考虑struts 是否配置了namespace(如果你有多个namespace=&quot;/&quot;)
  18. 如何生成SSH key
  19. js 操作数组的一些方法
  20. hive executeTask被interrupt处理

热门文章

  1. 靠谱的div引入任何外链内容
  2. PHP Primary script unknown 终极解决方法
  3. dl +rec
  4. matlab练习程序(结构张量structure tensor)
  5. patch 修改有问题的
  6. msysGit删除github文件
  7. 关于Oracle RAC节点间免密码策略
  8. March 10 2017 Week 10 Friday
  9. 【mysql案例】mysql5.6.14配置my.cnf多实例,mysql_install_db初始化不读取my.cnf配置文件
  10. 2017.9.2Java中的自定义类型的定义及使用&amp;&amp;自定义类的内存图