mkdir ~/.apps
# rz 上传文件
mv OpenJDK25U-jdk_x64_linux_hotspot_25.0.2_10.tar.gz .apps/
mv maven-mvnd-1.0.3-linux-amd64.tar.gz .apps/
cd .apps/
tar zxf OpenJDK25U-jdk_x64_linux_hotspot_25.0.2_10.tar.gz
tar zxf maven-mvnd-1.0.3-linux-amd64.tar.gz

mv jdk-25.0.2+10/ jdk-25.0.2

tee -a ~/.bashrc > /dev/null <<'EOF'

# Java Configuration
export JAVA_HOME=/home/josh/.apps/jdk-25.0.2
export MVND_HOME=/home/josh/.apps/maven-mvnd-1.0.3-linux-amd64
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$MVND_HOME/bin:$MVND_HOME/mvn/bin
EOF

source ~/.bashrc


mkdir -p ~/.m2
cp ~/.m2/settings.xml ~/.m2/settings.xml.bak.$(date +%Y%m%d_%H%M%S) 2>/dev/null || true

tee ~/.m2/settings.xml > /dev/null <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings
    xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- <localRepository>D:/ws/maven-repo</localRepository> -->
    <pluginGroups></pluginGroups>
    <proxies></proxies>
    <servers></servers>
    <mirrors>
        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus aliyun</name>
            <url>https://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    <profiles></profiles>
    <activeProfiles></activeProfiles>
</settings>
EOF
BASHRC_FILE="$HOME/.bashrc"
MARKER_BEGIN="# >>> josh custom aliases and functions >>>"
MARKER_END="# <<< josh custom aliases and functions <<<"

if grep -qF "$MARKER_BEGIN" "$BASHRC_FILE"; then
  echo "已存在配置,跳过追加:$BASHRC_FILE"
else
  tee -a "$BASHRC_FILE" > /dev/null <<'EOF'

# >>> josh custom aliases and functions >>>
# ===============================
# Docker 快速操作
# ===============================
alias dps='docker ps'
alias dpa='docker ps -a'
alias dlogs='docker logs -f'
alias dexec='docker exec -it'

# kubectl alias begin
alias k='kubectl'
alias ka='kubectl apply -f'
alias kdel='kubectl delete -f'
alias kd='kubectl describe'
alias ke='kubectl explain'
alias kgp='kubectl get pod'
alias kgpa='kubectl get pods --all-namespaces'
alias kgs='kubectl get service'
alias kgps='kubectl get pod,service'
alias kgsa='kubectl get services --all-namespaces'
alias kds='kubectl describe services'
alias kdp='kubectl describe pod'
# kubectl alias end

alias gp='git pull'
alias g='git'
alias gti='git'
alias gpl='git pull'
alias mcp='mvn clean package'
alias mci='mvn clean install'

# can use me to call the function me()
function me() {
    echo "I'm billy"
}

export COLOR_RED='\e[1;31m'
export COLOR_GREEN='\e[1;32m'
export COLOR_YELOW='\e[1;33m'
export COLOR_BLUE='\e[1;34m'
export COLOR_PINK='\e[1;35m'
export COLOR_NONE='\e[0m'

echo -e " ${COLOR_PINK}===================${COLOR_NONE}"
echo -e " ${COLOR_PINK}  welcome by .bashrc  ${COLOR_NONE}"
echo -e " ${COLOR_PINK}===================${COLOR_NONE}"

function cpu_count() {
  grep -c ^processor /proc/cpuinfo
}

##############################
# usage: check_ssl_expire eblog.valuetodays.cn
##############################
function check_ssl_expire() {
    local domain=$1
    local port=${2:-443}
    local warn_days=${3:-10}

    if [ -z "$domain" ]; then
        echo "usage: check_ssl_expire <domain> [port] [warn_days]"
        return 1
    fi

    # 获取当前日期的 Unix 时间戳(秒)
    local current_timestamp
    current_timestamp=$(date +%s)

    # 获取证书到期时间
    local expires
    expires=$(echo | openssl s_client -connect "${domain}:${port}" -servername "${domain}" 2>/dev/null \
        | openssl x509 -noout -enddate 2>/dev/null \
        | cut -d'=' -f2)

    if [ -z "$expires" ]; then
        echo "can not get SSL cert info, please check domain (${domain}) or internet"
        return 1
    fi

    # 将到期日期转换为 Unix 时间戳
    local expires_timestamp
    expires_timestamp=$(date -d "$expires" +%s)

    # 计算剩余天数
    local remaining_days
    remaining_days=$(( (expires_timestamp - current_timestamp) / 86400 ))

    if [ "$remaining_days" -le "$warn_days" ]; then
        local payload
        payload=$(jq -n \
           --arg c "ssl cert for ${domain} is valid for ${remaining_days} days, do not forget to refresh it." \
           --arg r "ssl-cert"  '{content: $c, repo: $r}')

        curl -X POST "http://go.valuetodays.cn/api/public/notify/anon/cdci.do" \
          -H "Content-Type: application/json; charset=utf-8" \
          -d "$payload"

    elif [ "$remaining_days" -le 15 ]; then
        echo do nothing
    else
        echo "$domain ssl cert is valid for $remaining_days days."
    fi
}
# <<< josh custom aliases and functions <<<
EOF

  echo "已追加配置到:$BASHRC_FILE"
fi

source ~/.bashrc
作者:张三  创建时间:2026-06-07 09:23
最后编辑:张三  更新时间:2026-06-07 09:23