Commit 8de5e743 authored by platyhouse's avatar platyhouse

.

parent 78ee9560
#!/bin/bash #!/bin/bash
####################################### #######################################
# pty_centos 설치 스크립트 # ptyUtils 설치 스크립트
# #
# 사용법: # 사용법:
# curl -sSL https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash # curl -sSL https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash
...@@ -20,21 +20,15 @@ RED='\033[0;31m' ...@@ -20,21 +20,15 @@ RED='\033[0;31m'
NC='\033[0m' # No Color NC='\033[0m' # No Color
# 설치 경로 # 설치 경로
INSTALL_DIR="/var/lib/pty_centos.git" INSTALL_DIR="$HOME/ptyUtils.git"
GIT_URL="https://gitlab.platyhouse.com/platyhouse/centos.git" GIT_URL="https://gitlab.platyhouse.com/platyhouse/centos.git"
echo "" echo ""
echo -e "${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}" echo -e "${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}║ pty_centos 설치 스크립트${NC}" echo -e "${CYAN}║ ptyUtils 설치 스크립트 ${NC}"
echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}" echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo "" echo ""
# root 권한 확인
if [[ $EUID -ne 0 ]]; then
echo -e "${YELLOW}[INFO]${NC} root 권한이 필요합니다. sudo로 재실행합니다..."
exec sudo bash "$0" "$@"
fi
# git 설치 확인 # git 설치 확인
if ! command -v git &> /dev/null; then if ! command -v git &> /dev/null; then
echo -e "${YELLOW}[INFO]${NC} git이 설치되어 있지 않습니다. 설치 중..." echo -e "${YELLOW}[INFO]${NC} git이 설치되어 있지 않습니다. 설치 중..."
...@@ -96,7 +90,7 @@ bash ./ptySetBash ...@@ -96,7 +90,7 @@ bash ./ptySetBash
echo "" echo ""
echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}설치가 완료되었습니다! ${NC}" echo -e "${GREEN}ptyUtils 설치가 완료되었습니다!${NC}"
echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}" echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo "" echo ""
echo -e "설치 경로: ${CYAN}$INSTALL_DIR${NC}" echo -e "설치 경로: ${CYAN}$INSTALL_DIR${NC}"
......
#!/bin/bash
#######################################
# ptyUtils 전역 설치 스크립트
#
# 설치 경로: /var/lib/ptyUtils.git
# 설정 파일: /etc/bashrc
#
# 사용법:
# curl -sSL https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstallGlobal.sh | bash
#
# 또는:
# wget -qO- https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstallGlobal.sh | bash
#
#######################################
set -e # 에러 발생 시 스크립트 중단
# 색상 정의
CYAN='\033[0;36m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 설치 경로
INSTALL_DIR="/var/lib/ptyUtils.git"
GIT_URL="https://gitlab.platyhouse.com/platyhouse/centos.git"
echo ""
echo -e "${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}║ ptyUtils 전역 설치 스크립트 (Global) ║${NC}"
echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""
# root 권한 확인
if [[ $EUID -ne 0 ]]; then
echo -e "${YELLOW}[INFO]${NC} root 권한이 필요합니다. sudo로 재실행합니다..."
exec sudo bash "$0" "$@"
fi
# git 설치 확인
if ! command -v git &> /dev/null; then
echo -e "${YELLOW}[INFO]${NC} git이 설치되어 있지 않습니다. 설치 중..."
# OS 감지 및 git 설치
if command -v yum &> /dev/null; then
yum install -y git
elif command -v dnf &> /dev/null; then
dnf install -y git
elif command -v apt-get &> /dev/null; then
apt-get update && apt-get install -y git
else
echo -e "${RED}[ERROR]${NC} git을 자동 설치할 수 없습니다. 수동으로 설치해주세요."
exit 1
fi
echo -e "${GREEN}[OK]${NC} git 설치 완료"
fi
# 기존 설치 확인
if [[ -d "$INSTALL_DIR" ]]; then
echo -e "${YELLOW}[INFO]${NC} 기존 설치가 발견되었습니다: $INSTALL_DIR"
echo -e "${YELLOW}[INFO]${NC} git pull로 업데이트합니다..."
cd "$INSTALL_DIR"
git pull origin master
echo -e "${GREEN}[OK]${NC} 업데이트 완료"
else
echo -e "${YELLOW}[INFO]${NC} 신규 설치를 진행합니다..."
echo -e "${YELLOW}[INFO]${NC} 경로: $INSTALL_DIR"
# 부모 디렉토리 생성
mkdir -p "$(dirname "$INSTALL_DIR")"
# git clone
git clone "$GIT_URL" "$INSTALL_DIR"
echo -e "${GREEN}[OK]${NC} 설치 완료"
fi
# 실행 권한 부여
echo -e "${YELLOW}[INFO]${NC} 실행 권한 설정 중..."
chmod +x "$INSTALL_DIR"/pty*
echo -e "${GREEN}[OK]${NC} 실행 권한 설정 완료"
# ptySetBash 실행 (--install-global 옵션)
echo ""
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
echo -e "${CYAN} ptySetBash --install-global 실행${NC}"
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
echo ""
cd "$INSTALL_DIR"
bash ./ptySetBash --install-global
echo ""
echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ ptyUtils 전역 설치가 완료되었습니다! ║${NC}"
echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "설치 경로: ${CYAN}$INSTALL_DIR${NC}"
echo -e "설정 파일: ${CYAN}/etc/bashrc${NC}"
echo -e "변경사항 적용: ${YELLOW}source /etc/bashrc${NC} 또는 새 터미널 열기"
echo ""
#!/bin/bash #!/bin/bash
####################################### #######################################
# CentOS 초기 설정 스크립트 # Bash/Zsh 설정 스크립트
# 사용법: ./setup_centos.sh # 사용법: ./ptySetBash [--install-global]
#
# 옵션:
# --install-global /etc/bashrc에 설치 (Linux 전용, root 필요)
# (기본) ~/.bashrc 또는 ~/.zshrc에 설치
####################################### #######################################
set -e # 에러 발생 시 스크립트 중단 set -e # 에러 발생 시 스크립트 중단
# 색상 정의 # 색상 정의
CYAN='\033[0;36m' CYAN='\033[0;36m'
BLUE='\033[1;94m' # 밝은 파란색
PURPLE='\033[0;35m'
GREEN='\033[0;32m' GREEN='\033[0;32m'
YELLOW='\033[1;33m' YELLOW='\033[1;33m'
RED='\033[0;31m' RED='\033[0;31m'
NC='\033[0m' # No Color NC='\033[0m' # No Color
# 로고 출력 # 옵션 파싱
echo -e "${CYAN}" INSTALL_GLOBAL=false
for arg in "$@"; do
case $arg in
--install-global)
INSTALL_GLOBAL=true
;;
esac
done
# OS 감지 # OS 감지
OS_TYPE=$(uname -s) OS_TYPE=$(uname -s)
if [[ "$OS_TYPE" == "Darwin" ]]; then
# --install-global 옵션 처리
if [[ "$INSTALL_GLOBAL" == true ]]; then
if [[ "$OS_TYPE" != "Linux" ]]; then
echo -e "${RED}[ERROR]${NC} --install-global 옵션은 Linux에서만 사용 가능합니다."
exit 1
fi
RC_FILE="/etc/bashrc"
RC_NAME="/etc/bashrc"
SHELL_TYPE="bash"
elif [[ "$OS_TYPE" == "Darwin" ]]; then
# macOS # macOS
RC_FILE="$HOME/.zshrc" RC_FILE="$HOME/.zshrc"
RC_NAME="~/.zshrc" RC_NAME="~/.zshrc"
SHELL_TYPE="zsh" SHELL_TYPE="zsh"
elif [[ "$OS_TYPE" == "Linux" ]]; then elif [[ "$OS_TYPE" == "Linux" ]]; then
# Linux (CentOS) # Linux
RC_FILE="$HOME/.bashrc" RC_FILE="$HOME/.bashrc"
RC_NAME="~/.bashrc" RC_NAME="~/.bashrc"
SHELL_TYPE="bash" SHELL_TYPE="bash"
...@@ -36,48 +55,101 @@ else ...@@ -36,48 +55,101 @@ else
exit 1 exit 1
fi fi
echo -e "$RC_NAME 설정 추가" # 현재 스크립트 실행 경로 저장
echo -e "${YELLOW}$RC_NAME 에 커스텀 설정을 추가하시겠습니까? (y/N):${NC} \c" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
read -n 1 -r REPLY_BASHRC
echo
# n 또는 다른 입력인 경우 CentOS에서는 /etc/bashrc 물어보기
if [[ ! $REPLY_BASHRC =~ ^[Yy]$ ]]; then
# CentOS인 경우 /etc/bashrc 수정 여부 확인
if [[ "$OS_TYPE" == "Linux" ]]; then
echo -e "${YELLOW}/etc/bashrc 에 커스텀 설정을 추가하시겠습니까? (y/N):${NC} \c"
read -n 1 -r REPLY_ETC_BASHRC
echo
# /etc/bashrc도 아니면 종료
if [[ ! $REPLY_ETC_BASHRC =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}${NC} 설정을 건너뜁니다."
echo ""
exit 0
fi
# /etc/bashrc만 수정하고 종료 echo -e "${YELLOW}[INFO]${NC} $RC_NAME 에 설정을 추가합니다..."
SKIP_USER_BASHRC=true
else
# macOS는 그냥 종료
echo -e "${YELLOW}${NC} 설정을 건너뜁니다."
echo ""
exit 0
fi
fi
# --install-global: /etc/bashrc에 설치
if [[ "$INSTALL_GLOBAL" == true ]]; then
# 백업 생성
sudo cp /etc/bashrc /etc/bashrc.backup.$(date +%Y%m%d_%H%M%S)
# y인 경우 설정 진행 # /etc/bashrc 추가할 내용
sudo tee -a /etc/bashrc > /dev/null << 'EOF'
# Linux인 경우이고 ~/.bashrc를 수정하기로 했다면 /etc/bashrc 질문 추가 #######################################
if [[ "$OS_TYPE" == "Linux" ]] && [[ ! $SKIP_USER_BASHRC == true ]]; then # ptySetBash 에 의한 /etc/bashrc 추가 시작
echo -e "${YELLOW}/etc/bashrc 에도 커스텀 설정을 추가하시겠습니까? (y/N):${NC} \c" #######################################
read -n 1 -r REPLY_ETC_BASHRC
echo
fi
# 현재 스크립트 실행 경로 저장 # 프롬프트 색상 설정
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # SERVER_WARNING="⚠️ WARNING: REAL SERVER - BE CAREFUL!"
# WARNING_COLOR="01;31" # 빨간색
ptyParseGitBranch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ [\1]/'
}
export PS1='\[\033[01;36m\][\D{%Y-%m-%d %H:%M:%S}]\[\033[00m\] \[\033['"${WARNING_COLOR:-00;37}"'m\]'"${SERVER_WARNING}"'\[\033[00m\] \[\033[01;32m\]\u@\H\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;33m\]$(ptyParseGitBranch)\[\033[00m\]\$ '
# 히스토리 설정
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
# 기본 에디터 설정
export EDITOR=vi
# 유용한 alias
alias ll='ls -alF --time-style="+%Y-%m-%d %H:%M:%S"'
alias la='ls -A'
alias l='ls -CF'
alias grep='grep --color=auto'
alias df='df -h'
alias du='du -h'
# git 관련 명령
alias gs="git status"
alias gd="git diff --word-diff"
alias ga="git add"
alias gb="git branch"
alias gc="git checkout"
alias gl="git log --date=format:'%Y-%m-%d %H:%M:%S'"
# 2025-09-25 깃 add, commit 처리. gac "커밋내용"
gac() {
git add -A
git commit -m "$*"
}
## git show 에서 파일명 깨짐 방지
git config --global core.quotepath false
## git 자소 분리시 해결
git config --global core.precomposeunicode true
## git color
git config --global color.ui true
git config --global color.status.changed "#ff0000 normal bold"
git config --global color.status.untracked "#dd99dd normal bold"
git config --global color.status.header "#ffffff normal bold"
## user 설정
git config --global user.name "KwangHee Yoo"
git config --global user.email "cpueblo@platyhouse.com"
## git 인증 정보 저장
# git config credential.helper store
# . 명령.sh 실행을 위함
PATH=$PATH:.
#######################################
EOF
# 스크립트 실행 경로를 PATH 에 추가
echo "" | sudo tee -a /etc/bashrc > /dev/null
echo "# 스크립트 실행 경로 추가" | sudo tee -a /etc/bashrc > /dev/null
echo "PATH=\$PATH:$SCRIPT_DIR" | sudo tee -a /etc/bashrc > /dev/null
echo "alias cd_pty=\"cd $SCRIPT_DIR\"" | sudo tee -a /etc/bashrc > /dev/null
echo -e "${GREEN}${NC} /etc/bashrc 설정이 완료되었습니다."
echo ""
exit 0
fi
# 맥 설정 # 맥 설정
if [[ "$OS_TYPE" == "Darwin" ]]; then if [[ "$OS_TYPE" == "Darwin" ]]; then
...@@ -153,17 +225,25 @@ PATH=$PATH:. ...@@ -153,17 +225,25 @@ PATH=$PATH:.
####################################### #######################################
EOF EOF
# 스크립트 실행 경로를 PATH 에 추가 # 스크립트 실행 경로를 PATH 에 추가
echo "" >> ~/.zshrc echo "" >> ~/.zshrc
echo "# 스크립트 실행 경로 추가" >> ~/.zshrc echo "# 스크립트 실행 경로 추가" >> ~/.zshrc
echo "PATH=\$PATH:$SCRIPT_DIR" >> ~/.zshrc echo "PATH=\$PATH:$SCRIPT_DIR" >> ~/.zshrc
echo "alias cd_pty=\"cd $SCRIPT_DIR\"" >> ~/.zshrc echo "alias cd_pty=\"cd $SCRIPT_DIR\"" >> ~/.zshrc
# centos 에 설정 # Linux 설정
elif [[ "$OS_TYPE" == "Linux" ]]; then elif [[ "$OS_TYPE" == "Linux" ]]; then
# CentOS 공통 설정 내용을 변수로 정의 # 백업 생성
read -r -d '' CENTOS_BASHRC_CONTENT << 'EOF' || true cp ~/.bashrc ~/.bashrc.backup.$(date +%Y%m%d_%H%M%S)
# ~/.bashrc 추가할 내용
cat >> ~/.bashrc << 'EOF'
#######################################
# ptySetBash 에 의한 ~/.bashrc 추가 시작
#######################################
# 프롬프트 색상 설정 # 프롬프트 색상 설정
# SERVER_WARNING="⚠️ WARNING: REAL SERVER - BE CAREFUL!" # SERVER_WARNING="⚠️ WARNING: REAL SERVER - BE CAREFUL!"
# WARNING_COLOR="01;31" # 빨간색 # WARNING_COLOR="01;31" # 빨간색
...@@ -227,21 +307,6 @@ git config --global user.email "cpueblo@platyhouse.com" ...@@ -227,21 +307,6 @@ git config --global user.email "cpueblo@platyhouse.com"
# . 명령.sh 실행을 위함 # . 명령.sh 실행을 위함
PATH=$PATH:. PATH=$PATH:.
EOF
# ~/.bashrc 수정 (SKIP_USER_BASHRC가 true가 아닐 때만)
if [[ ! $SKIP_USER_BASHRC == true ]]; then
# 백업 생성
cp ~/.bashrc ~/.bashrc.backup.$(date +%Y%m%d_%H%M%S)
# ~/.bashrc 추가할 내용
cat >> ~/.bashrc << EOF
#######################################
# ptySetBash 에 의한 ~/.bashrc 추가 시작
#######################################
$CENTOS_BASHRC_CONTENT
####################################### #######################################
EOF EOF
...@@ -251,36 +316,9 @@ EOF ...@@ -251,36 +316,9 @@ EOF
echo "# 스크립트 실행 경로 추가" >> ~/.bashrc echo "# 스크립트 실행 경로 추가" >> ~/.bashrc
echo "PATH=\$PATH:$SCRIPT_DIR" >> ~/.bashrc echo "PATH=\$PATH:$SCRIPT_DIR" >> ~/.bashrc
echo -e "${GREEN}${NC} ~/.bashrc 설정이 완료되었습니다." echo "alias cd_pty=\"cd $SCRIPT_DIR\"" >> ~/.bashrc
fi
# /etc/bashrc 처리
if [[ $REPLY_ETC_BASHRC =~ ^[Yy]$ ]]; then
# 백업 생성
sudo cp /etc/bashrc /etc/bashrc.backup.$(date +%Y%m%d_%H%M%S)
# /etc/bashrc 추가할 내용
sudo tee -a /etc/bashrc > /dev/null << EOF
#######################################
# ptySetBash 에 의한 /etc/bashrc 추가 시작
#######################################
$CENTOS_BASHRC_CONTENT
#######################################
EOF
# 스크립트 실행 경로를 PATH 에 추가
echo "" | sudo tee -a /etc/bashrc > /dev/null
echo "# 스크립트 실행 경로 추가" | sudo tee -a /etc/bashrc > /dev/null
echo "PATH=\$PATH:$SCRIPT_DIR" | sudo tee -a /etc/bashrc > /dev/null
echo -e "${GREEN}${NC} /etc/bashrc 설정이 완료되었습니다."
fi
fi fi
echo -e "${GREEN}${NC} 설정이 완료되었습니다." echo -e "${GREEN}${NC} $RC_NAME 설정이 완료되었습니다."
echo "" echo ""
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment