给小linux添加功能,咱们写一个脚本吧


$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

重大知识点:FILE=/etc/local/src

           从左往右

                 echo ${FILE#/}  一个#代表将第一个/向左的内容都去掉 执行结果为etc/local/src      

             echo ${FILE##/} 代表从左往右找,找到最后一个/ 并将向左的内容全部去掉 执行结果为/src    (用于取文件名)

         从右向左 

            echo ${FILE%/*} 从右向左寻找/ 找到第一个 将/和向右的内容全部删除 执行结果为 /etc/local   (用于取文件的目录)

            echo ${FILE%%/*} 从右往左寻找到最后一个/  并将其向右的内容全部去掉 

*******************************************************************    

#!/bin/bash

#

##复制生成路径

DEST=/mnt/sysroot

libcp() {

   LIBPATH=${1%/*}

   [ ! -d $DEST$LIBPATH ] && mkdir -p $DEST$LIBPATH

   [ ! -e $DEST${1} ] && cp $1 $DEST$LIBPATH && echo "copy $1 finished."

}


##复制命令

 bincp() {

   CMDPATH=${1%/*}

   [ ! -d $DEST$CMDPATH ] && mkdir -p $DEST$CMDPATH

   [ ! -e $DEST${1} ] && cp $1 $DEST$CMDPATH


   for LIB in `ldd $1 | grep -o "/.*lib\(64\)\{0,1\}/[^[:space:]]\{1,\}"`; do

    libcp $LIB

   done

}

read -p "Your command:" CMD

until [ $CMD == 'q' ]; do

    ! which $CMD   && echo "wrong command" && read -p "Input again" CMD && continue

    COMMAND=` which $CMD | grep -v "^alias" | grep -o "[^[:space:]]\{1,\}"`

    bincp $COMMAND

    echo "copy $COMMAND finished"

    read -p "Continue: " CMD

done



###########################################

最后

Mkdir /mnt/sysroot/lib/modules

Modinfo mii 的执行结果有路径然后复制路径

Cp /lib/modules/2.6.18….mii.ko  /mnt/sysroot/lib/modules/

Modeinfo pcnet32  的执行结果有路径 然后复制

Cp /lib/modules/2.6.18….net.pcnet32.ko

sync

我们期待开机的时候自动装载这两个模块儿

Vim /mnt/sysroot/etc/rc.d/rc.sysinit

Insmod /lib/modules/mii.ko

Insmod /lib/modules/pcnet32.ko

Ifconfig eth0 192.168.9.224/16

Ifconfig lo 192.0.0.0/8

Sync