Преглед изворни кода

refactor(sh_config.sh): 重构脚本并添加新功能

- 重新组织代码结构,提高可读性和可维护性
- 添加 sync_config_file 函数,用于同步配置文件
- 更新 install_mcfly 和 install_monitor_user_command 函数
- 修复 gobuildwinexe、gobuildlinuxexe 和 gobuildmacexe 函数的参数问题
- 改进 killport 和 ps-mem-top6 函数,增加参数检查
- 优化 generate_file、band_linux、vim_micro_linux 和 disk_speed_test 函数
- 删除未使用的 gobuild 函数
tianyun пре 5 месеци
родитељ
комит
3dc5110696
1 измењених фајлова са 163 додато и 147 уклоњено
  1. 163 147
      sh_config.sh

+ 163 - 147
sh_config.sh

@@ -6,9 +6,12 @@ function targz() {
 	ll -h ${1}.tgz
 }
 function untar() {
-  tar -zxvf "$1"
+	tar -zxvf "$1"
+}
+function sync_config_file() {
+	mkdir -p ~/.config/my_config
+	wget https://git.tianyunperfect.cn/tianyunperfect/sync/raw/master/sh_config.sh -O ~/.config/my_config/sh_config.sh && source ~/.config/my_config/sh_config.sh
 }
-alias sync_config_file='wget https://git.tianyunperfect.cn/tianyunperfect/sync/raw/master/sh_config.sh -O ~/.sh_config.sh && source ~/.sh_config.sh'
 # 快捷命令
 ## 未分类
 alias ll='ls -alh --time-style="+%Y-%m-%d %H:%I:%S"'
@@ -44,53 +47,41 @@ function reloadrc() {
 	fi
 }
 
-function install_mcfly(){
-    # 用户目录是否存在 mcfly 文件
-    if [ ! -f ~/mcfly ]; then
-    	wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/12/mcfly-v0.9.2-x86_64-unknown-linux-musl.tar.gz
-    	tar -zxvf mcfly-v0.9.2-x86_64-unknown-linux-musl.tar.gz
-    	rm -rf mcfly-v0.9.2-x86_64-unknown-linux-musl.tar.gz
-
-        if [ -n "$ZSH_VERSION" ]; then
-            echo "正在使用zsh"
-            cat >> ~/.zshrc << \EOF
-eval "$(mcfly init zsh)"
-EOF
-
-        elif [ -n "$BASH_VERSION" ]; then
-            echo "正在使用bash"
-            cat >> ~/.bashrc << \EOF
-eval "$(mcfly init bash)"
-EOF
-        else
-            echo "无法确定当前 Shell 类型"
-        fi
-    fi
+function install_mcfly() {
+	# 用户目录是否存在 mcfly 文件
+	if [ ! -f ~/mcfly ]; then
+		wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/12/mcfly-v0.9.2-x86_64-unknown-linux-musl.tar.gz
+		tar -zxvf mcfly-v0.9.2-x86_64-unknown-linux-musl.tar.gz
+		rm -rf mcfly-v0.9.2-x86_64-unknown-linux-musl.tar.gz
 
+		if [ -n "$ZSH_VERSION" ]; then
+			echo "正在使用zsh"
+			echo 'eval "$(mcfly init zsh)"' >>~/.zshrc
 
+		elif [ -n "$BASH_VERSION" ]; then
+			echo "正在使用bash"
+			echo 'eval "$(mcfly init bash)"' >>~/.bashrc
+		else
+			echo "无法确定当前 Shell 类型"
+		fi
+	fi
 }
 
 # 安装监控用户命令
-function install_monitor_user_command(){
-        if [ -n "$ZSH_VERSION" ]; then
-            curl -SL https://git.tianyunperfect.cn/tianyunperfect/note_pub/raw/master/install_monitor_user_command_zsh.sh | sh
-        elif [ -n "$BASH_VERSION" ]; then
-            curl -SL https://git.tianyunperfect.cn/tianyunperfect/note_pub/raw/master/install_monitor_user_command_bash.sh | sh
-        else
-            echo "无法确定当前 Shell 类型"
-        fi
-}
-function install_vimrc(){
-  wget -O ~/.vimrc https://git.tianyunperfect.cn/tianyunperfect/note_pub/raw/master/.vimrc
+function install_monitor_user_command() {
+	if [ -n "$ZSH_VERSION" ]; then
+		curl -SL https://git.tianyunperfect.cn/tianyunperfect/note_pub/raw/master/install_monitor_user_command_zsh.sh | sh
+	elif [ -n "$BASH_VERSION" ]; then
+		curl -SL https://git.tianyunperfect.cn/tianyunperfect/note_pub/raw/master/install_monitor_user_command_bash.sh | sh
+	else
+		echo "无法确定当前 Shell 类型"
+	fi
 }
-
-function install_yy(){
-    eval "$(curl https://get.x-cmd.com)"    # 安装 x-cmd
-    x env use yazi                          # 安装 yazi
+function install_vimrc() {
+	wget -O ~/.vimrc https://git.tianyunperfect.cn/tianyunperfect/note_pub/raw/master/.vimrc
 }
 
-
-function k8s-get-all-namespace(){
+function k8s-get-all-namespace() {
 	kubectl get namespace
 }
 ## k8s
@@ -120,16 +111,18 @@ function k8s-getlogbase() {
 	podName=$(kubectl get pods -o wide | grep "${1}" | awk '{print $1}')
 	kubectl logs -c base-jre --tail=300 -f "${podName}"
 }
-alias k8s-delpod='kubectl delete pod ${1} --force'
+function k8s-delpod() {
+	kubectl delete pod "$1" --force
+}
 function k8s-inpod() {
 	k8s-get-default-namespace
 	podName=$(kubectl get pods -o wide | grep "${1}" | awk '{print $1}')
 	kubectl exec -it "${podName}" -- /bin/bash
 }
 
-alias k8s-topnodes='kubectl top node ${1}'
+alias k8s-topnodes='kubectl top node'
 
-alias k8s-toppods='kubectl top pod ${1}'
+alias k8s-toppods='kubectl top pod'
 
 alias k8s-getsvc='kubectl get svc'
 alias k8s-descsvc='kubectl describe svc'
@@ -151,24 +144,47 @@ alias docker-image-prune='docker image prune -a'
 alias dkstats='docker stats'
 alias dkps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"'
 alias dkpsa='docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"'
-alias dkrm='docker rm -f $1'
-alias dkrmi='docker rmi -f $1'
+alias dkrm='docker rm -f'
+alias dkrmi='docker rmi -f'
 alias dkimage='docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"'
 alias dkip='docker inspect --format="{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" $(docker ps -aq)'
 function dkin() {
 	docker exec -it "$1" bash
 }
 function dkinsh() {
-	docker exec -it $1 sh
+	docker exec -it "$1" sh
+}
+function dklog() {
+	docker logs -n 300 -f "$1"
+}
+function dkinspect() {
+	docker inspect "$1"
 }
-alias dklog='docker logs -n 300 -f $1'
-alias dkinspect='docker inspect $1'
 alias dkstart_all_exit='docker start $(docker ps -a -q -f status=exited)'
 
 ## go
-alias gobuildwinexe='GOOS=windows GOARCH=amd64 go build -o $1.exe $1.go'
-alias gobuildlinuxexe='GOOS=linux GOARCH=amd64 go build -o $1 $1.go'
-alias gobuildmacexe='GOOS=darwin GOARCH=amd64 go build -o $1 $1.go'
+# 定义 gobuildwinexe 函数
+function gobuildwinexe() {
+    if [ $# -ne 2 ]; then
+        echo "用法: gobuildwinexe <源文件> <输出文件名>"
+        return 1
+    fi
+    GOOS=windows GOARCH=amd64 go build -o "${2}.exe" "$1.go"
+}
+function gobuildlinuxexe() {
+    if [ $# -ne 2 ]; then
+        echo "用法: gobuildlinuxexe <源文件> <输出文件名>"
+        return 1
+    fi
+    GOOS=linux GOARCH=amd64 go build -o "$2" "$1.go"
+}
+function gobuildmacexe() {
+    if [ $# -ne 2 ]; then
+        echo "用法: gobuildmacexe <源文件> <输出文件名>"
+        return 1
+    fi
+    GOOS=darwin GOARCH=amd64 go build -o "$2" "$1.go"
+}
 
 ## version
 alias pythonversion='python --version'
@@ -191,14 +207,29 @@ function iplocal() {
 
 ## 进程相关
 alias psgrep='ps aux | grep -v grep | grep'
-alias killport='kill -9 $(lsof -t -i:$1)'
-alias ps-mem-top6='ps aux --sort=-%mem | awk '\''{print $2, $11, $4, $6/1024 "MB"}'\'' | head -n 6'
+function killport() {
+    if [ -z "$1" ]; then
+        echo "需要一个端口号作为参数"
+        return 1
+    fi
+    kill -9 $(lsof -t -i:"$1")
+}
+function ps-mem-top6() {
+    ps aux --sort=-%mem | awk '{print $2, $11, $4, $6/1024 "MB"}' | head -n 6
+}
 
 # node
 alias npminstall='npm install -g --registry=https://registry.npmmirror.com '
 
 # python
-alias pipinstall='pip install $1 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com'
+# 定义 pipinstall 函数
+function pipinstall() {
+    if [ -z "$1" ]; then
+        echo "需要一个包名作为参数"
+        return 1
+    fi
+    pip install "$1" -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
+}
 
 # 文件查找相关
 function findByName() {
@@ -445,120 +476,105 @@ function docker_compose_down() {
 alias pt="ts '[%Y-%m-%d %H:%M:%S]'"
 alias rcp='rsync -a --delete '
 
-
 # 函数:生成指定大小的文件 generate_file 2 M "logfile.log"
 generate_file() {
-    local size=$1
-    local unit=$2
-    local filename=${3:-"generated_file.bin"}  # 默认文件名为generated_file.bin
-
-    # 检查单位是否正确
-    case $unit in
-        "B"|"b")
-            bs=1
-            ;;
-        "K"|"k")
-            bs=1K
-            ;;
-        "M"|"m")
-            bs=1M
-            ;;
-        "G"|"g")
-            bs=1G
-            ;;
-        *)
-            echo "错误:不支持的单位。请使用 B, K, M, 或 G。"
-            return 1
-            ;;
-    esac
-
-    # 使用dd命令生成文件
-    dd if=/dev/urandom of="$filename" bs=$bs count=$size status=none
+	local size=$1
+	local unit=$2
+	local filename=${3:-"generated_file.bin"} # 默认文件名为generated_file.bin
+
+	# 检查单位是否正确
+	case $unit in
+	"B" | "b")
+		bs=1
+		;;
+	"K" | "k")
+		bs=1K
+		;;
+	"M" | "m")
+		bs=1M
+		;;
+	"G" | "g")
+		bs=1G
+		;;
+	*)
+		echo "错误:不支持的单位。请使用 B, K, M, 或 G。"
+		return 1
+		;;
+	esac
+
+	# 使用dd命令生成文件
+	dd if=/dev/urandom of="$filename" bs=$bs count=$size status=none
 }
 
 # 函数:显示当前网速
 function band_linux() {
-    # 检查 bandwhich 是否已经下载
-    if [ ! -f "$HOME/bandwhich" ]; then
-        cd ~
-
-        # 检查 glibc 版本
-        GLIBC_VERSION=$(ldd --version | head -n 1 | awk '{print $NF}')
-        REQUIRED_VERSION="2.29"
-
-        # 比较版本号
-        if printf '%s\n%s' "$REQUIRED_VERSION" "$GLIBC_VERSION" | sort -V | head -n 1 | grep -qx "$REQUIRED_VERSION"; then
-            echo "Glibc version $GLIBC_VERSION meets requirements, downloading GNU version..."
-            wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/11/bandwhich-v0.23.1-x86_64-unknown-linux-gnu.tar.gz
-            tar -zxvf bandwhich-v0.23.1-x86_64-unknown-linux-gnu.tar.gz
-            rm -rf {bandwhich-v0.23.1-x86_64-unknown-linux-gnu.tar.gz,assets}
-        else
-            echo "Glibc version $GLIBC_VERSION does not meet requirements, downloading musl version..."
-            wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/11/bandwhich-v0.23.1-x86_64-unknown-linux-musl.tar.gz
-            tar -zxvf bandwhich-v0.23.1-x86_64-unknown-linux-musl.tar.gz
-            rm -rf {bandwhich-v0.23.1-x86_64-unknown-linux-musl.tar.gz,assets}
-        fi
-
-        cd -
-    fi
+	# 检查 bandwhich 是否已经下载
+	if [ ! -f "$HOME/bandwhich" ]; then
+		cd ~
+
+		# 检查 glibc 版本
+		GLIBC_VERSION=$(ldd --version | head -n 1 | awk '{print $NF}')
+		REQUIRED_VERSION="2.29"
+
+		# 比较版本号
+		if printf '%s\n%s' "$REQUIRED_VERSION" "$GLIBC_VERSION" | sort -V | head -n 1 | grep -qx "$REQUIRED_VERSION"; then
+			echo "Glibc version $GLIBC_VERSION meets requirements, downloading GNU version..."
+			wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/11/bandwhich-v0.23.1-x86_64-unknown-linux-gnu.tar.gz
+			tar -zxvf bandwhich-v0.23.1-x86_64-unknown-linux-gnu.tar.gz
+			rm -rf {bandwhich-v0.23.1-x86_64-unknown-linux-gnu.tar.gz,assets}
+		else
+			echo "Glibc version $GLIBC_VERSION does not meet requirements, downloading musl version..."
+			wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/11/bandwhich-v0.23.1-x86_64-unknown-linux-musl.tar.gz
+			tar -zxvf bandwhich-v0.23.1-x86_64-unknown-linux-musl.tar.gz
+			rm -rf {bandwhich-v0.23.1-x86_64-unknown-linux-musl.tar.gz,assets}
+		fi
+
+		cd -
+	fi
 
-    # 运行 bandwhich
-    sudo ~/bandwhich
+	# 运行 bandwhich
+	sudo ~/bandwhich
 }
 
 alias reload_docker_config='sudo systemctl daemon-reload && sudo systemctl restart docker'
 
 # 函数 vim 替代终端
 function vim_micro_linux() {
-    if [ ! -f "$HOME/micro" ]; then
-        cd ~
-        wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/11/micro-2.0.14-linux64-static.tgz
-        tar -zxvf micro-2.0.14-linux64-static.tgz
-        mv micro-2.0.14/micro ~
-        chmod +x ~/micro
-        rm -rf {micro-2.0.14,micro-2.0.14-linux64-static.tgz}
-
-        echo "vim_micro_linux 安装完成, 开始写入配置文件"
-        mkdir -p ~/.config/micro
-        cat << EOF > ~/.config/micro/bindings.json
+	if [ ! -f "$HOME/micro" ]; then
+		cd ~
+		wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/file/2024/11/micro-2.0.14-linux64-static.tgz
+		tar -zxvf micro-2.0.14-linux64-static.tgz
+		mv micro-2.0.14/micro ~
+		chmod +x ~/micro
+		rm -rf {micro-2.0.14,micro-2.0.14-linux64-static.tgz}
+
+		echo "vim_micro_linux 安装完成, 开始写入配置文件"
+		mkdir -p ~/.config/micro
+		cat <<EOF >~/.config/micro/bindings.json
 {
     "Alt-q": "Quit"
 }
 EOF
-        cd -
-    fi
+		cd -
+	fi
 
-    ~/micro "$@"
+	~/micro "$@"
 }
 
 # 磁盘读写速度测试
 function disk_speed_test() {
-    # 首先同步缓存,确保测试准确
-    sync; echo 3 > /proc/sys/vm/drop_caches
-
-    echo "测试写入"
-    # 测试写入速度 (写入1GB数据)
-    dd if=/dev/zero of=./testfile bs=1M count=1024 conv=fdatasync
+	# 首先同步缓存,确保测试准确
+	sync
+	echo 3 >/proc/sys/vm/drop_caches
 
-    echo "测试读取"
-    # 测试读取速度
-    dd if=./testfile of=/dev/null bs=1M count=1024
+	echo "测试写入"
+	# 测试写入速度 (写入1GB数据)
+	dd if=/dev/zero of=./testfile bs=1M count=1024 conv=fdatasync
 
-    # 测试完成后删除测试文件
-    rm ./testfile
-}
+	echo "测试读取"
+	# 测试读取速度
+	dd if=./testfile of=/dev/null bs=1M count=1024
 
-# 自定义 go build 命令
-function gobuild() {
-    if [ $# -ne 2 ]; then
-        echo "用法: gobuild <源文件> <输出文件名>"
-        return 1
-    fi
-    
-    go build -o "$2" "$1"
-    if [ $? -eq 0 ]; then
-        echo "成功编译: $2"
-    else
-        echo "编译失败"
-    fi
-}
+	# 测试完成后删除测试文件
+	rm ./testfile
+}