Shell简单工具

1.修改某文件里的指定字段(修改配置文件里的IP)

思路:

# 新建一个IP.txt
ip addr:
192.168.0.112 netmask:255.255.255.0

编写脚本:

#!/bin/bash
  
path=/home/yoyo/Documents/mytest
cd $path
localIP=`hostname -I|cut -d " " -f 1`
echo "本机IP: $localIP"
oldIP=`sudo find /home/yoyo/Documents/mytest/IP.txt | xargs grep 'ip addr:' | cut -d : -f 2`
echo "文件中的IP:$oldIP"
change=`sudo find /home/yoyo/Documents/mytest/IP.txt |xargs sed -i 's/'$oldIP'/'$localIP'/g'`
echo "修改后的IP: $change"


cat IP.txt

执行效果如下:

 

♥真实项目例子♥

#!/bin/bash

path=$(cd `dirname $0`; pwd)
cd $path
localIP=`hostname -I|cut -d " " -f 1`
echo "本机IP: $localIP"
MATT_HOST_SERVER=`sudo find $path/api.env | xargs grep 'MATT_HOST_SERVER='| cut -d = -f 2`
MATT_HOST=`sudo find $path/api.env | xargs grep 'MATT_HOST='| cut -d = -f 2`
FLV_HOST=`sudo find $path/api.env | xargs grep 'FLV_HOST=ws://'| cut -d : -f 2`
echo "文件中的IP:$MATT_HOST_SERVER $MATT_HOST $FLV_HOST"

# 修改api.env的IP

change_1=`sudo find $path/api.env |xargs sed -i 's/'$MATT_HOST_SERVER'/'$localIP'/g'`
change_2=`sudo find $path/api.env |xargs sed -i 's/'$MATT_HOST'/'$localIP'/g'`
change_3=`sudo find $path/api.env |xargs sed -i 's/'$FLV_HOST'/'$localIP'/g'`

echo "配置文件api.env修改后的IP: $change_1 $change_2 $change_3"

cat api.env

echo "<<<<<<<<<<<<<<<<<<<<<================================================>>>>>>>><<<<<<<<=========================================================>>>>>>>>>>>>>>>>>>>>"

# 修改.env的IP
IP_args=`sudo find $path/.env | xargs grep 'IP'| cut -d = -f 2`
result=`sudo find $path/.env |xargs sed -i 's/'$IP_args'/'$localIP'/g'`

echo "配置文件.env修改后的IP:$IP_args"
cat .env

 

 

2.倒计时脚本

# 倒计时3s开始执行脚本

var1=3
while [ $var1 -gt 0 ]
do 
       echo -ne $var1
          (( var1-- ))
             sleep 1
            echo -ne "\r   \r" 
        done

 3.连ping IP地址的脚本

 

#!/bin/bash
for ((i=1;i<256;i++))
do
        ping -c 3 192.168.0.$i>/dev/null
         #ping -c 192.168.0.1 ~192.168.0.255
                if [[ $? -eq 0 ]] #if up $?==0
                        then echo "192.168.0.$i is alive"
                else
                        echo "192.168.0.$i isn't up"
                fi
done

 

 

4.获取进程的所有信息

#! /bin/bash
# Function: 根据用户输入的PID,过滤出该PID所有的信息
read -p "请输入要查询的PID: " P
n=`ps -aux| awk '$2~/^'$P'$/{print $11}'|wc -l`
if [ $n -eq 0 ];then
 echo "该PID不存在!!"
 exit
fi
echo "--------------------------------"
echo "进程PID: $P"
echo "进程命令:`ps -aux| awk '$2~/^'$P'$/{print $11}'`"
echo "进程所属用户: `ps -aux| awk '$2~/^'$P'$/{print $1}'`"
echo "CPU占用率:`ps -aux| awk '$2~/^'$P'$/{print $3}'`%"
echo "内存占用率:`ps -aux| awk '$2~/^'$P'$/{print $4}'`%"
echo "进程开始运行的时刻:`ps -aux| awk '$2~/^'$P'$/{print $9}'`"
echo "进程运行的时间:`ps -aux| awk '$2~/^'$P'$/{print $10}'`"
echo "进程状态:`ps -aux| awk '$2~/^'$P'$/{print $8}'`"
echo "进程虚拟内存:`ps -aux| awk '$2~/^'$P'$/{print $5}'`"
echo "进程共享内存:`ps -aux| awk '$2~/^'$P'$/{print $6}'`"
echo "--------------------------------"

 

posted @ 2020-12-06 19:21  弹弹大魔王  阅读(56)  评论(0)    收藏  举报