반응형
# 1. tmux d 명령어를 위한 함수 정의 (강력한 버전)
# 'tmux d'라고만 쳐도 'tmux detach-client'가 실행되도록 가로챕니다.
tmux() {
if [ "$1" = "d" ]; then
command tmux detach-client
else
command tmux "$@"
fi
}
# 2. SSH 접속 시 tmux 매니저 실행 (번호 표시 및 지능형 접속)
if [ -n "$SSH_CONNECTION" ] && [ -z "$TMUX" ]; then
echo "===================================="
echo " TERMUX TMUX MANAGER"
echo "===================================="
# 세션 목록 가져오기
SESSION_LIST=$(command tmux ls 2>/dev/null)
if [ -n "$SESSION_LIST" ]; then
echo " [ 현재 실행 중인 세션 ]"
# 각 줄 앞에 [번호]를 붙여서 출력 (0부터 시작)
echo "$SESSION_LIST" | awk '{print " ["NR-1"] "$0}'
else
echo " (실행 중인 세션이 없습니다)"
fi
echo "------------------------------------"
echo " [ 선택 옵션 ]"
echo " - 숫자(번호) 또는 이름 : 세션 접속"
echo " - n : 새 세션 생성"
echo " - Enter : 일반 쉘(Bash) 진입"
echo "------------------------------------"
read -p "입력 선택 > " input
case $input in
"")
echo "일반 쉘로 진입합니다."
;;
n)
read -p "새 세션 이름 입력 (기본: main): " s_name
s_name=${s_name:-main}
command tmux new-session -s "$s_name"
;;
*)
# 입력값이 숫자인 경우 목록에서 해당 순서의 이름을 따옴
if [[ "$input" =~ ^[0-9]+$ ]]; then
TARGET_INDEX=$((input + 1))
TARGET_NAME=$(echo "$SESSION_LIST" | sed -n "${TARGET_INDEX}p" | cut -d: -f1)
if [ -n "$TARGET_NAME" ]; then
command tmux attach-session -t "$TARGET_NAME"
else
echo "에러: [$input] 번 세션이 존재하지 않습니다."
fi
# 숫자가 아닌 경우 이름으로 직접 접속
else
command tmux attach-session -t "$input" || echo "에러: '$input' 세션을 찾을 수 없습니다."
fi
;;
esac
fi
# 3. TMUX 내에서 EXIT 입력 시 확인 절차
function exit_tmux() {
if [ -n "$TMUX" ]; then
echo -n "tmux 가상창이 완전히 종료됩니다. 종료하시겠습니까? [y/n] "
read -r answer
if [ "$answer" = "y" ]; then
command exit
else
echo -e "\n종료가 취소되었습니다."
fi
else
command exit
fi
}
# exit 명령어를 위 함수로 연결
alias exit='exit_tmux'
~/.bashrc 파일에 넣으면 끝
반응형
'IT 전자기기' 카테고리의 다른 글
| futu api 설치 및 termux 설정 (0) | 2026.02.05 |
|---|---|
| 갤럭시 폴드 1 F907N LGU 루팅 (0) | 2026.02.01 |
| 미홈 IOT 직접 프로그래밍 할 수 있는 python 환경 만들기. (1) | 2026.01.30 |
| termux 에 python 깔고 미홈 기기 직접 콘트롤 하기. (0) | 2026.01.30 |
| tmux 마우스 클릭 외계어 입력 되는 문제 (0) | 2026.01.30 |
댓글