shell编程数组及源码安装作业

写一个脚本,定一个数组,数组中的元素是/var/log目录下所有以.log结尾的文件,要统计其下标为偶数的文件中的行数之和

[root@localhost sh.log]# cat declaresum.sh 
#!/bin/bash
#author:DYW
#写一个脚本,定一个数组,数组中的元素是/var/log目录下所有以.log结尾的文件,要统计其下标为偶数的文件中的行数之和
declare -a file
file=(/var/log/*.log)
declare -i h=0

for i in $(seq 0 $[${#file[*]}-1]); do
	if [ $[$i%2] -eq 0 ];then
	let h+=$(wc -l ${file[$i]} | cut -d' ' -f1)
	fi
done
	echo "Line: $h"
[root@localhost sh.log]# bash declaresum.sh 
Line: 273


生成10个随机数,采用冒泡算法进行升序或降序排序

[root@localhost sh.log]# cat random.txt 
13913
16102
7027
18130
9241
6103
19511
28631
22837
22430
[root@localhost sh.log]# cat maopao.sh 
#!/bin/bash
#author:DYW
#生成10个随机数,采用冒泡的算法进行升序或降序排序

NUM_FILE=./random.txt   #get number from file
#########################################################
swap_element(){
      local tmp=0
      tmp=${NUM_SEQUENCE[$1]}
      NUM_SEQUENCE[$1]=${NUM_SEQUENCE[$2]}
      NUM_SEQUENCE[$2]=$tmp
}
show_element(){
      echo "${NUM_SEQUENCE[*]},swap $swap_count times"
}
#########################################################
#
#The original bubble sort.
bubble_sort_orgi(){
      for ((i=0;i<${#NUM_SEQUENCE[*]}-1;i++))
      do
        for ((j=0;j<${#NUM_SEQUENCE[@]}-i-1;j++))
        do
          if [ ${NUM_SEQUENCE[$j]} $1 ${NUM_SEQUENCE[$[j+1]]} ]
          then
              swap_element $j $[j+1]
              let swap_count++
          fi
        done
      done
}
#Use the original bubble sort,by increase
NUM_SEQUENCE=(`cat $NUM_FILE`)
  bubble_sort_orgi -gt
  show_element
#Use the original bubble sort,by decrease
NUM_SEQUENCE=(`cat $NUM_FILE`)
swap_count=0
  bubble_sort_orgi -lt
  show_element
#
#With a flag to mark the sequence,if the sequence has been order,stop
bubble_sort_flag(){
     flag=0
     for ((i=0;i<${#NUM_SEQUENCE[@]}-1,!flag;i++))
     do
      flag=1
      for ((j=0;j<${#NUM_SEQUENCE[*]}-i-1;j++))
      do
           if [ ${NUM_SEQUENCE[$j]} $1 ${NUM_SEQUENCE[$[j+1]]} ]
           then
         swap_element $j $[j+1]
         flag=0
         let swap_count++
           fi
      done
     done
}
#bubble with flag.
NUM_SEQUENCE=(`cat $NUM_FILE`)
swap_count=0
   bubble_sort_flag -gt
   show_element
#
NUM_SEQUENCE=(`cat $NUM_FILE`)
swap_count=0
   bubble_sort_flag -lt
   show_element
#
#Record the last position of bubble sort
bubble_sort_last(){
   current=0
   last=$[${#NUM_SEQUENCE[*]}-1]
   while [ $last -gt 0 ]
   do
      for ((i=current=0;i<last;i++))
      do
     if [ ${NUM_SEQUENCE[$i]} $1 ${NUM_SEQUENCE[$[i+1]]} ]
     then
        swap_element $i $[i+1]
        current=$i
       let swap_count++
    fi
     done
     last=$current
  done
}
#
#Record last order position.
NUM_SEQUENCE=(`cat $NUM_FILE`)
swap_count=0
   bubble_sort_last -gt
   show_element
#
NUM_SEQUENCE=(`cat $NUM_FILE`)
swap_count=0
   bubble_sort_last -lt
   show_element
#
#Bidirectional bubble sort
bubble_sort_bid(){
   head=0
   tail=$[${#NUM_SEQUENCE[*]}-1]
   while [ $head -lt $tail ]
   do
      for ((i=head;i<tail;i++))
      do
     if [ ${NUM_SEQUENCE[$i]} $1 ${NUM_SEQUENCE[$[i+1]]} ]
     then
        swap_element $i $[i+1]
        index=$i
       let swap_count++
    fi
      done 
      tail=$index
      for ((i=tail;i>head;i--))
      do
     if [ ! ${NUM_SEQUENCE[$i]} $1 ${NUM_SEQUENCE[$[i-1]]} ]
     then
        swap_element $i $[i-1]
        index=$i
        let swap_count++
    fi
     done
     head=$index
  done
}
#
#increase
NUM_SEQUENCE=(`cat $NUM_FILE`)
swap_count=0
bubble_sort_bid -gt
show_element
#
#decrease
NUM_SEQUENCE=(`cat $NUM_FILE`)
swap_count=0
bubble_sort_bid -lt
show_element
#
unset i j index head tail NUM_FILE NUM_SEQUENCE swap_count last tmp flag 
[root@localhost sh.log]# bash maopao.sh 
6103 7027 9241 13913 16102 18130 19511 22430 22837 28631,swap 13 times
28631 22837 22430 19511 18130 16102 13913 9241 7027 6103,swap 32 times
6103 7027 9241 13913 16102 18130 19511 22430 22837 28631,swap 13 times
28631 22837 22430 19511 18130 16102 13913 9241 7027 6103,swap 32 times
6103 7027 9241 13913 16102 18130 19511 22430 22837 28631,swap 13 times
28631 22837 22430 19511 18130 16102 13913 9241 7027 6103,swap 32 times
6103 7027 9241 13913 16102 18130 19511 22430 22837 28631,swap 13 times
28631 22837 22430 19511 18130 16102 13913 9241 7027 6103,swap 32 times

删除rpm包如何恢复

    1.删除rpm包

    1.png

    2.重启选择光盘引导,Rescue救援模式。

    2.png

    3.png

    4.png

    3.此时硬盘的/是/mnt/sysimage,所以安装时要指向/是/mnt/sysimage

    5.png

    6.png


源码安装apache

     1.首先下载一个apache的包,解压。

    1.png

    解压后会生成一个目录

    2.png

    2.目录里有configure,执行生成makefile

    3.png

    –prefix指定安装在哪个目录下,默认在/usr/local/apache2下,

    –sysconfdir指定配置文件放在哪个目录下。默认在prefix指定目录下/etc下

    3.make

    4.make install 创建

    4.png

    5.安装后的配置

        1)二进制程序目录导入至PATH环境变量中

            文件方式实现

[root@localhost http2.2.29]# vim /etc/profile.d/http2.2.29 

PATH=$PATH:/usr/local/http2.2.29/bin
[root@localhost http2.2.29]# . /etc/profile.d/http2.2.29 
[root@localhost http2.2.29]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/http2.2.29/bin

        2)导入库文件

            链接方式实现

[root@localhost ld.so.conf.d]# vim /etc/ld.so.conf.d/http2.2.29.conf

/usr/local/http2.2.29/lib
[root@localhost ld.so.conf.d]# ldcofig -v

        3)导入头文件

[root@localhost ld.so.conf.d]# ln -sv /usr/local/http2.2.29/include/ /usr/include/http2.2.29
‘/usr/include/http2.2.29’ -> ‘/usr/local/http2.2.29/include/’

        4)导入帮助文档

[root@localhost ld.so.conf.d]# vim /etc/man_db.conf
MANDATORY_MANPATH           /usr/local/http2.2.29/man
[root@localhost ld.so.conf.d]# . /etc/man_db.conf

    6.启动服务

     apachetc start

     blob.png

原创文章,作者:DYW,如若转载,请注明出处:http://www.178linux.com/39690

(0)
DYWDYW
上一篇 2016-08-29 08:52
下一篇 2016-08-29 08:52

相关推荐

  • 关于 磁盘、文件系统管理

                   磁盘、文件系统管理               1  设备识别2  设备分区3 …

    系统运维 2016-08-30
  • 链接分析算法之:SALSA算法

      SALSA算法的初衷希望能够结合PageRank和HITS算法两者的主要特点,既可以利用HITS算法与查询相关的特点,也可以采纳PageRank的“随机游走模型”,这是SALSA算法提出的背景。由此可见,SALSA算法融合了PageRank和HITS算法的基本思想,从实际效果来说,很多实验数据表明,SALSA的搜索效果也都优于前两个算…

    大数据运维 2015-07-21
  • vi编辑器

       vim编辑器是众多文件编辑软件中比较好的一个,也是使用最多 ,功能最强大的,提供了图形化界面。    Vi:类unix系统中默认的文本编辑器    Vim:vi编辑器的增强版本,习惯上也称vi。    作用:创建或修改文本文件,维护linux系统的各种配置文件 vim的使用…

    Linux干货 2016-08-15
  • btrfs文件系统

                                                      &nbsp…

    Linux干货 2015-08-21
  • 用户组管理系列(二):权限设置

    1、权限简介    操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可…

    Linux干货 2016-08-05
  • 马哥linux0726课程内容

    课堂内容笔记   使用几个符号可以使用原始命令 \,’’,绝对路径运行 这三种方法都可以使用到原始命令,不使用别名   别名-内部命令-缓存-外部命令 使用命令的优先级   man帮助具体用法 makewhatis老版本安装whatis mandb新版本安装whatis man的具体路径在/usr/share/man whati…

    Linux干货 2016-08-04