☞卸载kernel玩一玩

卸载kernel玩一玩

废话不多说,下面开始卸载内核这一惊险之旅,特别提醒在开始之前做好虚拟机的快照,也许会造成系统无法启动,也许会出现各种错误,也许会笑着删数据库跑路,也许会从入门到放弃,,请系好安全带。 

f-0.jpgf-1.jpgf-2.jpgf-3.jpgf-4.jpgf-5.jpgf-7.jpgf-8.jpgf-9.jpgf-10.jpgf-11.jpg

练习

冒泡排序法

#!/bin/bash
#
#Author:jasonmc
#Date:2016-08-24
#Description:buble sort.
#

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

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

(0)
hellochelloc
上一篇 2016-08-26
下一篇 2016-08-26

相关推荐

  • rsync+inotify实现数据同步——单向传输

    实验环境:<从A主机推送数据到B主机[B主机可以有多个]> A主机:10.1.43.102 B主机:10.1.43.103 配置流程: —rsyncserver—- <B主机上配置> 1.vim /etc/rsyncd.conf(用户,目录,模块,虚拟用户及密码文件) vim /etc/rsyncd.…

    Linux干货 2016-10-27
  • 权限管理

    权限 权限就是用户或者组对文件或者目录所拥有的能力,所能执行的操作。 权限的分配: 通过ls -l file这个命令可以查看文件或者目录的详细信息:     [root@localhost home]# ls -l /root/   &nb…

    Linux干货 2016-08-05
  • Linux文件系统

    Linux:glibc 程序编译方式: 动态链接 静态编译 进程的类型: 终端:硬件设备,关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 操作系统的组成: 静态:kernel, application 文件系统:层级结构 FHS: Filesystem Hierarchy Standard /bin:所有用户可用的基本命…

    Linux干货 2016-11-10
  • bash脚本编程之select语句、函数

    概述     承接上篇,继续介绍一下另一个循环语句select,还有脚本中函数的相关内容,分为三个部分:         1、select语句的介绍和效果演示       &nbs…

    Linux干货 2016-08-21
  • ansible原理及简单应用

    一、基础介绍 1、简介 ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供…

    Linux干货 2016-01-13
  • 批量创建用户(8月1日作业)

    1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution" 2、创建下面的用户、组和组成员关系 名字为admins的组;  用户natasha,使用admins作为附属组;  用户harry,也使用admins作为附属组 &nbs…

    Linux干货 2016-08-04