☞卸载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

相关推荐

  • LVM2学习总结

    LVM2(Logical Volume Manager 2) 原理: 将底层的物理硬盘抽象地封装起来,以逻辑卷的方式呈现给上层应用,但对于文件系统而言,对LVM的操作与对硬盘分区的操作并无差别。 实现基础: Linux内核的Device mapper机制,将一个或多个底层块设备组织成一个逻辑设备 基本元素: PP(Physical Partition):物理…

    Linux干货 2016-08-22
  • Nginx 负载均衡多个nmmp主机

    设计拓扑图 一、Memcache简介 cache(缓存系统) 高性能分布式缓存服务器,缓存所有的“可流式化”数据:livejournal旗下Danga Interacive公司 程序=指令+数据 指令:程序 数据:IO操作 文件系统: 特征:协议简单  基于libevent的事件处理  内置内存存储方式  memcached 不…

    2016-06-14
  • 推荐CentOS Linux下的分区及格式化工具

    简介 伴随着科技的飞速发展,越来越多的企业对于服务器的稳定要求越来越高,越来越多的企业开始采用linux系统来部署自己的服务,以求高效的稳定性,当然任何操作系统都需要一个最基本的基础,那就是硬盘,及硬盘分区,今天来给大家推荐几款CentOS Linux下的分区工具及如何查看分区环境,也会给大家来带一些硬盘的基本知识 一、硬盘的接口类型 分区肯定是对硬盘进行分…

    2017-03-19
  • 文件查找与压缩-2

    1、tar [OPTION]… (1) 创建归档(打包而非压缩) 其中-c是创建备份,-f是指定创建备份成的文件即是/PATH/TO/SOMEFILE.tar #tar -c -f /PATH/TO/SOMEFILE.tar  FILE… #tar cf / PATH/TO/SOMEFILE.tar FILE… …

    Linux干货 2016-08-18
  • 实战自制Linux操作系统

    实战自制Linux操作系统 自制linux系统 步骤概述: 1、新建一个硬盘2、在该新硬盘上新建两个分区,一个当boot分区,一个当/分区3、格式化并且挂载两个分区4、安装grub至目标磁盘5、为grub提供配置文件6、复制内核文件和initrd文件7、创建目标主机根文件系统8、移植bash命令和其库文件到根文件系统9、装载模块,实现网络功能10、启动测试 …

    Linux干货 2016-09-19
  • ssh基于密钥的认证及实现

    ssh登录认证方式介绍 大致有以下两种 基于口令的认证这种认证方式就是通过ssh指令以指定用户名、指定端口等信息后,待连接建立完成,需要输入用户名对应的口令来完成认证。一般形如: [root@localhost ~]# ssh -l lantian 192.168.1.201  &nbsp…

    Linux干货 2017-01-05