Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Bản hack Bash yêu thích của tôi

Khi bạn làm việc với máy tính cả ngày, thật tuyệt vời khi tìm thấy các lệnh có thể lặp lại và gắn thẻ chúng để dễ dàng sử dụng sau này. Tất cả đều ngồi đó, giấu kín trong ~ / .bashrc (hoặc ~ / .zshrc dành cho người dùng Zsh), chờ đợi để giúp cải thiện ngày của bạn!

Trong bài viết này, tôi chia sẻ một số lệnh trợ giúp yêu thích của tôi cho những thứ tôi hay quên, với hy vọng rằng chúng cũng sẽ giúp bạn đỡ đau lòng theo thời gian.

Nói khi kết thúc

Khi tôi sử dụng các lệnh chạy lâu hơn, tôi thường thực hiện đa nhiệm và sau đó phải quay lại và kiểm tra xem hành động đã hoàn thành chưa. Nhưng không còn nữa, với lời kêu gọi hữu ích này về say (đây là trên MacOS; thay đổi cho tương đương cục bộ của bạn):

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 & )
}

Lệnh này đánh dấu thời gian bắt đầu và kết thúc của một lệnh, tính số phút thực hiện và đọc lệnh được gọi, thời gian thực hiện và mã thoát. Tôi thấy điều này cực kỳ hữu ích khi một chiếc chuông điều khiển đơn giản không hoạt động.

Cài đặt trình trợ giúp

Tôi đã bắt đầu sử dụng Ubuntu từ những ngày Lucid và một trong những điều đầu tiên tôi cần học là cách cài đặt các gói. Và một trong những bí danh đầu tiên tôi từng thêm là người trợ giúp cho việc này (được đặt tên dựa trên meme trong ngày):

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

GNU Privacy Guard (GPG) ký

Nếu có thể tôi phải ký một email GPG mà không có tiện ích mở rộng hoặc ứng dụng để thực hiện việc đó cho tôi, tôi thả xuống dòng lệnh và sử dụng những bí danh khủng khiếp này:

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

Docker

Có nhiều lệnh Docker, nhưng thậm chí còn có nhiều lệnh soạn docker các lệnh. Tôi đã từng quên --rm cờ, nhưng không còn với các bí danh hữu ích sau:

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

gcurl helper for Google Cloud

Điều này là tương đối mới đối với tôi, nhưng nó đã được ghi lại rất nhiều. gcurl là một bí danh để đảm bảo bạn nhận được tất cả các cờ chính xác khi sử dụng lệnh curl cục bộ với tiêu đề xác thực khi làm việc với Google Cloud APIs.

Git và ~ / .gitignore

Tôi làm việc rất nhiều trong Git, vì vậy tôi có một phần đặc biệt dành riêng cho những người trợ giúp Git.

Một trong những trợ giúp hữu ích nhất của tôi là tôi sử dụng để sao chép các repos GitHub. Thay vì phải chạy:

git clone git@github.com:org/repo /Users/glasnt/git/org/repo

Tôi đã thiết lập một chức năng sao chép:

clone(){
    echo Cloning $1 to ~/git/$1
    cd ~/git
    git clone git@github.com:$1 $1
    cd $1
}

Mặc dù tôi luôn quên và cười khúc khích bất cứ lúc nào tôi đang tìm hiểu về ~ / .bashrc của mình , tôi cũng có lệnh "làm mới ngược dòng":

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

Một trình trợ giúp khác cho Git-ville là tệp bỏ qua toàn cục. Trong git config --global --list của bạn bạn sẽ thấy core.excludesfile . Nếu không, hãy tạo một cái và điền vào nó đầy đủ những thứ mà bạn luôn đặt vào .gitignore cá nhân của mình các tập tin. Là một nhà phát triển Python trên MacOS, đối với tôi đây là:

.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

Bạn có thể tìm thấy các đề xuất khác trên Gitignore.io hoặc trên repo Gitignore trên GitHub.

Đến lượt bạn

Lệnh trợ giúp yêu thích của bạn là gì? Hãy chia sẻ chúng trong phần bình luận.