类似switchhost 的简单host切换工具

本文介绍了一个在Ubuntu20.04环境下,由于switchhosts工具出现bug,作者自行编写的一个bash脚本来实现快速切换不同环境的hosts文件。此脚本通过在~/bin/hostlist目录下创建多个特定格式的hosts文件,实现在不同环境间的快速切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人的Ubuntu20.04 环境switchhosts 切换不了,可能是程序bug,又着急用,于是写了个脚本

# 安装到 ~/bin 下
mkdir -p ~/bin/hostlist
echo "export PATH=$PATH:$HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
touch ~/bin/chhost
chmod +x ~/bin/chhost
# 备份系统hosts
cat /etc/hosts > ~/bin/hostlist/system.hosts.txt
vim ~/bin/chhost

#!/usr/bin/bash
#
function changeHost()
{
    scriptDir=$(cd $(dirname $0); pwd)
    echo "Switch to $1 hosts ..."
    pathhost=$scriptDir"/hostlist"
    file=$pathhost"/"$1".hosts.txt"
    if [ ! -f "$file" ]; then
      echo  "file not exits!: $file "
      echo ""
      echo "Include this hosts:"
      hosts=`/usr/bin/ls $pathhost | /usr/bin/sed 's/.hosts.txt//g' | /usr/bin/sed 's/tmp//g'`
      echo $hosts
      ls $pathhost
      echo ""
      exit
    fi
    systemfile=$pathhost"/system.hosts.txt"
    tmpfile=$pathhost"tmp.hosts.txt"
    /usr/bin/cp $systemfile $tmpfile
    /usr/bin/cat $file >> $tmpfile
    /usr/bin/sudo /usr/bin/cp $tmpfile /etc/hosts
    echo "Switch to $1 hosts success!"
}
changeHost $1

在 ~/bin/hostlist 目录下创建 一系列 xxx.hosts.txt 命名的文件
就可以切换到 xxx.hosts.txt 的环境

xxx.hosts.txt 文件格式与 /etc/hosts 文件格式相同

使用例子my 编辑my.hosts.txt :
~/bin/hostslist/my.hosts.txt

# start my hosts
199.232.68.133 raw.githubusercontent.com
151.101.76.133 raw.githubusercontent.com
# end my hosts
chhost my
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值