首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

linux上修改 /etc/hosts 文件的小脚本

2012-09-20 
linux下修改 /etc/hosts文件的小脚本一直是通过firefox的插件来管理HOSTS,但是最近FF的最近版本老是将一些

linux下修改 /etc/hosts 文件的小脚本

一直是通过firefox的插件来管理HOSTS,但是最近FF的最近版本老是将一些很多用的插件不可用了! 换了很多其他的插件还是不好用,干脆自己动手写个小脚本来做HOST管理!?

?

#!/bin/bash ## use for change /etc/hosts file # author          :zhaoming.xuezm# date            :2011-12-5# last modify     :2011-12-6# version         :1.0.0#------------------------------------------------------ param check  --------------------------------------------------if [ $# -ne 1 ];then    echo 'Type 'hc help' for usage.'   exit 1 fi#------------------------------------------------------ init --------------------------------------------------#check has the privilege to change hosts user_name=`id -nu`group_name=`id -ng`if [ $group_name = "root" ];then   echo 'please input adminstrator passwd :'  sudo gpasswd -a $user_name $group_name
ficd `dirname $0`bin_path=`pwd`# hostdir is used to store host file which add by operator if [ ! -d hostdir ];then   mkdir hostdir ficd $bin_path/hostdir host_suffix="_host"current_hostfile=""action=$1declare -a host_array;#error_code  && error message none_files=4none_files_message="you should add a file first !"#------------------------------------------------------ list all host file --------------------------------------------------list_host(){  local index=1  file_num=`ls *host >> /dev/null 2>&1`  if [ $? -ne 0 ];then      printf "%s\n" "none files" return $none_files  else     for i in `ls *host`        do           #should cut the "_host"  suffix           temp=$i    real_length=`expr length $temp`   suffix_length=`expr length $host_suffix`   need_length=`expr $real_length - $suffix_length`   real_name=`expr substr $temp 1 $need_length`       echo "$index : $real_name"                     host_array[$index]=$i       index=$(($index+1))        done    fi}#judge parameter 1 is equal system default  check_is_default_hostfile(){  if [ $# -ne 1 ];then      echo 'param error ! ' return 2  fi    if [ -z $current_hostfile ] || [ $current_hostfile = $1 ];then     return 0  fi}switch_host(){  echo '------welcome to use host switch-------'  list_host  if [ $? -eq $none_files ];then     echo "$none_files_message" exit  fi  read selection   cat ${host_array[$selection]} > /etc/hosts  current_hostfile=${host_array[$selection]}  echo "------switch to " ${host_array[$selection]} "------"}add_host(){  echo '------input file name ------'  read filename  vim $filename  mv $filename $filename$host_suffix}del_host(){  echo '------del host:choose the file  -----'  list_host  if [ $? -eq $none_files ];then     echo "$none_files_message" exit  fi  read selection   rm -f  ${host_array[$selection]}  if [ $? -eq 0 ];then       echo "del host file ${host_array[$selection]} success"  else       echo "del host file ${host_array[$selection]} failed"  fi}edit_host(){  echo '------eidt host:choose the file  -----'  list_host  if [ $? -eq $none_files ];then     echo "$none_files_message" exit  fi  read selection   vim   ${host_array[$selection]}   check_is_default_hostfile ${host_array[$selection]}  if [ $? -eq 0 ];then      cat ${host_array[$selection]} > /etc/hosts  fi    }show_file_content(){   list_host   if [ $? -eq $none_files ];then      echo "$none_files_message"  exit   fi   read selection    cat ${host_array[$selection]}}show_version(){ printf "\n"  printf "%s\n" 'hc :host change , version 1.0.0 ' printf "\n"  printf "%s\n"  "Copyright (C) 2011-2011 inter12." printf "\n" }show_help(){ printf "\n" printf "%s\n" "most subcommand take action ! If not allow  no arguments  supplied to such a command!" printf "\n" printf "%s\n" "Available subcommands:" printf "%s\n" "    add                 : add a new host file and saved as name which you input ! it locate in the path: path/hostdir  " printf "%s\n" "    del                 : del the host file ! if this file is current used as system hosts .will still valid ! " printf "%s\n" "    edit                : edit the host file  and if the file you edit is current syste, hosts ,it will take effect immediately !" printf "%s\n" "    sw                  : change the file which you choose as a system default hosts "  printf "%s\n" "    list                : list all host file !" printf "%s\n" "    version | --version : show hc version " printf "%s\n" "    help | --help       : show hc command format !" printf "\n" printf "\n" printf "%s\n" "hc is a tool for host change !" printf "%s\n" "For additional infomation. you can mail to godspeed712@gmail.com | zhaoming.xuezm@alibaba-inc.com"}#------------------------------------------------------ main entrance --------------------------------------------------case "$action" in   sw)     switch_host  ;;  add)     add_host  ;;  del)     del_host  ;;  edit)     edit_host  ;;  list)     show_file_content  ;;  --help | help)     show_help  ;;  --version | version)     show_version  ;;  *)    echo 'Type 'hc help' for usage.'  ;;esac
1 楼 aliahhqcheng 2012-03-11   学习shell的入门书籍是什么呀?这个看不懂.... 2 楼 inter12 2012-03-12   aliahhqcheng 写道学习shell的入门书籍是什么呀?这个看不懂....
看鸟哥私房菜的基础篇中关于shell脚本的几章看完就可以,然后多去论坛帮人解决问题,锻炼自己刚学的知识。

热点排行