|
@@ -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
|
|
|
+}
|