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.www58058.com/39690

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

相關推薦

  • gawk

    簡介     AWK是一種優良的文本處理工具。它不僅是 Linux 中也是任何環境中現有的功能最強大的數據處理引擎之一。AWK 提供了極其強大的功能:可以進行樣式裝入、流控制、數學運算符、進程控制語句甚至于內置的變量和函數。它具備了一個完整的語言所應具有的幾乎所有精美特性。實際上 AWK 的確擁有自…

    Linux干貨 2016-03-25
  • 文件權限特殊管理之ACL

    ACL:access control list 權限訪問列表 應用范圍:所屬主和所屬組和其他用戶之外的他叔用戶 ACL是Linux系統權限額外支持的一項功能,需要文件系統的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 , JFS , XFS等都支持ACL功能 centos7 中:安裝系統分區和裝完系統之后自己手動添加的分區自動支持a…

    Linux干貨 2016-08-05
  • N26-博客作業-week6

    vim:Vi IMprove 基本模式:編輯模式,命令模式輸入模式末行模式 打開文件: vim [option] [file…] +#:打開文件后,直接讓光標處于第#行的行首+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首 模式轉換:編輯模式:默認模式編輯模式 –> 輸入模式:i:insert…

    Linux干貨 2017-03-12
  • 網絡管理

                                                 網絡基礎 一.網絡的基本概念 什么是網絡…

    2017-09-02
  • 第四周作業2

    #### 1、 復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 首先,利用cp命令將/etc/skel目錄復制為/home/tuser1: “` [root@localhost ~]# cp -r /etc/skel /home/tuser1 “` 隨…

    Linux干貨 2018-03-24
  • 04用戶和組的相關配置文件總結

    1、用戶 個人理解的是,給使用者一個在系統中使用的身份,即用戶。 用戶分兩種:管理員和普通用戶。 而每一個用戶都有一些屬性,每一個屬性都是用冒號分割開來。配置文件存儲在【/etc/passwd】中。 例如,sarash:x:507:508::/home/sarash:/bin/nologin 他們分別是,用戶名,密碼,ID號,主組ID號,注釋,家目錄,默認登…

    Linux干貨 2016-10-24
欧美性久久久久