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
下一篇 2016-08-29

相关推荐

  • 文件管理命令及通配符练习

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例 按增删改查的思路来 增: touch filename:这个命令本身不是用来新建文件的,它是用来修改文件的时间属性,不过默认情况时当filename不存在时,它会默认建立一个空文件 mkdir: 常用参数 -p:相当于递归创建目录 -v:显示出创建过程中的信息 cp : 常用参数 -r:…

    Linux干货 2016-11-06
  • ansible的入门使用手册

    ansible1

    2018-01-15
  • btrfs文件系统及管理

      什么是btrfs? Btrfs(B-tree文件系统,通常念成Butter FS,Better FS或B-tree FS),linux文件系统,具有写时复制COW(copy-on-write),改善ext3文件系统单文件大小限制,并加入其他特性,如可写快照,快照的快照,内建RAID,子卷(subvloume),专注于容错,修复和易于管理。单文件…

    系统运维 2016-05-13
  • 每日一练 —8.4 文本处理工具,正则表达式

    练习 1 、找出ifconfig 命令结果中本机的所有IPv4 地址 2 、查出分区空间使用率的最大百分比值 3 、查出用户UID 最大值的用户名、UID 及shell 类型 4 、查出/tmp 的权限,以数字方式显示 5 、统计当前连接本机的每个远程主机IP 的连接数,并按从大到小排序   6,显示/proc/meminfo文件中以大写或小写s开…

    Linux干货 2016-08-15
  • 命令,Linux的独特魅力

    转眼又学了一个星期,那就来分享一下这个星期所学的知识吧! 这个星期学的都是各种命令,而这些命令就如同windoes里面画面上的各种选项,没有这些命令,那么你对它将无从下手。那下面就来看看这些命令的强大功能 help   man help(内部命令帮助),等同于man(外部命令帮助)。当你对一个命令不熟悉时,这两个命令将是你的救命符 选定一个命令,先…

    2017-07-22
  • 练习-vim的使用

    vi编辑器是linux上最常用的编辑器,vim是vi增强版, 一、vim的几种模式     编辑模式、插入模式、命令行模式     编辑模式:可以进行光标移动,字符删除,行的增删复制粘贴等操作  插入模式:对字符进行编辑,  命令行模式:通过各种命令进行保存,查找,替换,环境设置等操作 &…

    Linux干货 2016-07-04