5P by winterjung 12시간전 | ★ favorite | 댓글 1개

저는 아래 셸 스크립트나 snippet을 ~/.zshrc에 넣어두거나 alias걸어 사용하곤 하는데, 다른 분들은 어떤 스니펫을 사용하시는지 궁금해 올려봅니다.

아래 내용은 개인 블로그: 자주 사용하는 셸 스니펫에도 적어두었는데 굳이 들어가서 보실 필요 없이 내용 전부를 붙여 넣었습니다.


1. man 페이지를 pdf로 보기

pman() {  
  mandoc -Tpdf "$(man -w $@)" | open -f -a Preview  
}  

mac os 기준 $ pman curl처럼 사용합니다.

2. git remote에서 삭제된 브랜치 삭제

git fetch -p && for branch in $(git branch -vv | grep ': gone]' | awk '{print $1}'); do git branch -D $branch; done  

혹은 git gone - 원격에서 삭제된 브랜치를 모두 삭제하는 커스텀 명령어 사용도 가능해 보입니다.

3. .env에 있는 환경변수 적용

export $(grep -v '^#' .env | xargs)  

direnv를 쓰는게 더 좋긴 할텐데 습관이라 그런지 위 스니펫을 더 많이 사용하곤 합니다.

4. 로컬에서 mysql이 잠시 필요할 때

docker run --rm -d --name mysql \  
  -e MYSQL_ROOT_PASSWORD=password \  
  -e MYSQL_ROOT_HOST=% \  
  -p 3306:3306 \  
  -v $(pwd)/mysql_data:/var/lib/mysql \  
  mysql:8 \  
  --character-set-server=utf8mb4 \  
  --explicit_defaults_for_timestamp=true  

이후 localhost:3306으로 접속해 사용하며 볼륨 유지가 필요하지 않다면 -v 옵션은 제거해서 쓰곤 합니다.

3000번대 포트 중 사용하지 않는 포트를 표시합니다.

function idleports()  
{  
    cols=10  
    count=0  
    output=""  
  
    listening_ports=($(sudo ss -tlpn | grep -o ':30[0-9]*' | sed 's/://g' | sort | uniq))  
  
    for port in {3000..3099}; do  
        if [[ " ${listening_ports[@]} " =~ " $port " ]]; then  
            output+="\033[38;5;235m$port\033[0m  "  
        else  
            output+="$port  "  
        fi  
  
        ((count++))  
        if ((count % cols == 0)); then  
            output+='\n'  
        fi  
    done  
  
    if ((count % cols != 0)); then  
        output+='\n'  
    fi  
  
    echo -e "$output"  
}