☞卸载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 09:11
下一篇 2016-08-26 09:11

相关推荐

  • Windows和Linux关于一块网卡绑定多个网络地址的解决之道

    Windows和Linux关于一块网卡绑定多个网络地址的问题解决之道   在不同场合用不同ip地址访问网络,而且都是固定ip。是一件很头疼的问题。不过,Windows和Linux系统都提供了解决方法。接下来我们先谈Windows系统下操作,再说Linux如何操作。 一、Windows设置   1. 我以Windows7为例,首先鼠标左键点击你电脑左下角有网络…

    Linux干货 2016-09-07
  • Sed简介

    Sed简介    一、简介   sed全称是:Stream EDitor。sed命令的功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。  sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern s…

    Linux干货 2015-05-11
  • Linux进程管理和计划任务

    进程管理篇 进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合     进程ID(Process ID,PID)号码被用来标记各个进程     UID、GID、和SELinux语…

    Linux干货 2016-09-17
  • N21_第10周_作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 系统启动流程:POST -> BootSequence(BIOS)-> BootLoader(MBR)-> Kernel(ramdisk)-> rootfs(readonly)-> /sbin/init() 1>,加电自检:POST  &…

    Linux干货 2016-12-05
  • yum用法第一篇-简介及常见用法使用总结

    一、简介     yum( 全称为:Yellow dog Updater, Modified),是红帽(RedHat)家族(RedHat、Fedora、CentOS)中的前端shell的软件包管理器,主要基于对RPM包的管理,能够根据配置文件(类似于svn资源库配置文件)从指定的服务器自动下载RPM包进行安装,其最大的优势就是可…

    Linux干货 2015-09-22
  • 一次完整的HTTP事务是怎样一个过程?

    声明:本文章中的说法仅是个人理解总结,不一定完全正确,但是可以有助于理解。 关于HTTP协议可以参考以下: HTTP协议漫谈 http://kb.cnblogs.com/page/140611/ HTTP协议概览 http://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html 了解HTTP Heade…

    Linux干货 2015-03-10