Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

내가 가장 좋아하는 Bash 핵

하루 종일 컴퓨터로 작업할 때 반복 가능한 명령을 찾고 나중에 쉽게 사용할 수 있도록 태그를 지정하는 것은 환상적입니다. 그들은 모두 ~/.bashrc 안에 자리잡고 앉아 있습니다. (또는 Zsh 사용자의 경우 ~/.zshrc), 여러분의 하루를 개선하는 데 도움이 되기를 기다리고 있습니다!

이 기사에서는 시간이 지남에 따라 여러분도 마음의 고통을 덜어주기를 바라는 마음으로 제가 자주 잊어버리는 이러한 도우미 명령 중 일부를 공유합니다.

끝났을 때 말하기

오래 실행되는 명령을 사용할 때 종종 멀티태스킹을 수행한 다음 돌아가서 작업이 완료되었는지 확인해야 합니다. 하지만 더 이상은 아닙니다. say (이것은 MacOS에 있습니다. 해당 지역에 맞게 변경):

function looooooooong {
    START=$(date +%s.%N)
    $*
    EXIT_CODE=$?
    END=$(date +%s.%N)
    DIFF=$(echo "$END - $START" | bc)
    RES=$(python -c "diff = $DIFF; min = int(diff / 60); print('%s min' % min)")
    result="$1 completed in $RES, exit code $EXIT_CODE."
    echo -e "\n⏰  $result"
    ( say -r 250 $result 2>&1 > /dev/null & )
}

이 명령은 명령의 시작 및 종료 시간을 표시하고 소요 시간을 계산하고 호출된 명령, 소요 시간 및 종료 코드를 말합니다. 간단한 콘솔 벨이 작동하지 않을 때 이 기능이 매우 유용합니다.

도우미 설치

저는 Lucid 시절에 Ubuntu를 사용하기 시작했으며 가장 먼저 배워야 할 것 중 하나가 패키지 설치 방법이었습니다. 그리고 내가 추가한 첫 번째 별칭 중 하나는 이것에 대한 도우미였습니다(오늘의 밈을 기반으로 명명됨):

alias canhas="sudo apt-get install -y"

GNU Privacy Guard(GPG) 서명

기회가 없을 때 확장 프로그램이나 애플리케이션 없이 GPG 이메일에 서명해야 하는 경우에는 명령줄에 드롭다운하여 다음과 같은 끔찍하게 이상한 별칭을 사용합니다.

alias gibson="gpg --encrypt --sign --armor"
alias ungibson="gpg --decrypt"

도커

많은 Docker 명령이 있지만 더 많은 docker compose가 있습니다. 명령. --rm을 잊어버렸습니다. 플래그가 있지만 더 이상 다음과 같은 유용한 별칭이 없습니다.

alias dc="docker-compose"
alias dcr="docker-compose run --rm"
alias dcb="docker-compose run --rm --build"

Google Cloud용 gcurl 도우미

이것은 나에게 비교적 새롭지만 문서화되어 있습니다. gcurl은 Google Cloud API로 작업할 때 인증 헤더와 함께 로컬 curl 명령어를 사용할 때 모든 올바른 플래그를 얻을 수 있도록 하는 별칭입니다.

Git 및 ~/.gitignore

저는 Git에서 많은 일을 하기 때문에 Git 도우미 전용 섹션이 있습니다.

가장 유용한 도우미 중 하나는 GitHub 저장소를 복제하는 데 사용하는 도우미입니다. 실행하는 대신:

git clone [email protected]:org/repo /Users/glasnt/git/org/repo

복제 기능을 설정했습니다:

clone(){
    echo Cloning $1 to ~/git/$1
    cd ~/git
    git clone [email protected]:$1 $1
    cd $1
}

~/.bashrc에 뛰어들 때마다 항상 잊어버리고 킥킥거리지만 파일에 "업스트림 새로 고침" 명령도 있습니다.

alias yoink="git checkout master && git fetch upstream master && git merge upstream/master"

Git-ville의 또 다른 도우미는 전역 무시 파일입니다. git config --global --list에서 core.excludesfile이 표시되어야 합니다. . 그렇지 않다면 하나를 만들고 항상 개인 .gitignore에 넣는 것으로 가득 채우십시오. 파일. MacOS의 Python 개발자로서 저에게 이것은 다음과 같습니다.

.DS_Store     # macOS clutter
venv/         # I never want to commit my virtualenv
*.egg-info/*  # ... nor any locally compiled packages
__pycache__   # ... or source
*.swp         # ... nor any files open in vim

Gitignore.io 또는 GitHub의 Gitignore 저장소에서 다른 제안을 찾을 수 있습니다.

내 차례

가장 좋아하는 도우미 명령은 무엇입니까? 댓글로 공유해주세요.