Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

เคล็ดลับ Bash ที่จำเป็น: เพิ่มประสิทธิภาพการทำงานด้วยลัดทางเทอร์มินัลอัจฉริยะ

บทนำ

เมื่อคุณทำงานกับคอมพิวเตอร์ตลอดวัน การค้นพบคำสั่งที่ใช้ซ้ำได้และติดป้ายกำกับไว้เพื่อใช้งานง่ายในภายหลัง ถือเป็นสิ่งที่ยอดเยี่ยม พวกมันทั้งหมดนิ่งๆ อยู่ใน ~/.bashrc (หรือ ~/.zshrc สำหรับผู้ใช้ Zsh) รออยู่เพื่อช่วยปรับปรุงวันของคุณ!

ในบทความนี้ ผมจะแบ่งปันคำสั่งช่วยเหลือโปรดของผมสำหรับสิ่งต่างๆ ที่ผมมักลืม บอกเลยว่า มันจะช่วยประหยัดเวลาและความหงุดหงิดของคุณได้มาก

แจ้งเตือนเมื่อเสร็จสิ้น

เมื่อผมใช้คำสั่งที่รันนาน ผมมักทำงานหลายอย่างพร้อมกัน แล้วต้องกลับไปตรวจสอบว่าการดำเนินการเสร็จสิ้นหรือยัง แต่นี่ก็ไม่เป็นปัญหาอีกต่อไป ด้วยการเรียกใช้ 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 & )
}

คำสั่งนี้บันทึกเวลาเริ่มต้นและสิ้นสุดของคำสั่ง คำนวณนาทีที่ใช้ และอ่านออกเสียงคำสั่งที่เรียกใช้ เวลาที่ใช้ และรหัสการออก ผมพบว่ามันช่วยได้มากมายเมื่อแค่เสียงเตือนของคอนโซลไม่พอ

ลัดทางการติดตั้ง

ผมเริ่มใช้ Ubuntu ตั้งแต่ยุค Lucid และหนึ่งในสิ่งแรกที่ต้องเรียนรู้คือวิธีติดตั้งแพ็กเกจ และหนึ่งในอีลิอัสแรกที่ผมเพิ่มคือตัวช่วยสำหรับเรื่องนี้ (ตั้งชื่อจากมีมในสมัยนั้น):

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

การลงนาม GNU Privacy Guard (GPG)

ในโอกาสที่ผมต้องลงนามอีเมล GPG โดยไม่มีส่วนขยายหรือแอปพลิเคชันช่วย ผมจะลงไปใช้บรรทัดคำสั่งและใช้อีลิอัสที่ "เก่ง" อยู่แล้วนี้:

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

Docker

มีคำสั่ง Docker หลายคำสั่ง แต่มีคำสั่ง docker compose มากกว่านั้นอีก ผมเคยลืมแฟล็ก --rm บ่อยครั้ง แต่นี่ก็ไม่เป็นปัญหาอีกต่อไปด้วยอีลิอัสที่มีประโยชน์เหล่านี้:

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

gcurl ช่วยสำหรับ Google Cloud

อันนี้ค่อนข้างใหม่สำหรับผม แต่มีเอกสารมาก gcurl เป็นอีลิอัสที่ช่วยให้คุณได้แฟล็กที่ถูกต้องทั้งหมดเมื่อใช้คำสั่ง curl ท้องถิ่นกับส่วนหัวการรับรองความถูกต้องขณะทำงานกับ Google Cloud APIs

Git และ ~/.gitignore

ผมทำงานกับ Git มาก ดังนั้นผมจึงมีส่วนพิเศษสำหรับ Git helpers

หนึ่งใน helpers ที่มีประโยชน์ที่สุดคืออันที่ผมใช้โคลน GitHub repos แทนที่จะต้องรัน:

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

ผมตั้งค่าฟังก์ชัน clone:

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

แม้ผมจะลืมเสมอและหัวเราะทุกครั้งที่ดูไฟล์ ~/.bashrc ของผม ผมก็มีคำสั่ง "refresh upstream":

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

อีก helper หนึ่งสำหรับ Git-ville คือไฟล์ global ignore ใน git config --global --list คุณควรเห็น core.excludesfile หากไม่มี ให้สร้างหนึ่งแล้วเติมสิ่งที่คุณมักวางในไฟล์ .gitignore แต่ละอัน สำหรับนักพัฒนา Python บน MacOS ของผม คือ:

.DS_Store # ไฟล์ขยะของ macOS
venv/ # ผมไม่ต้องการ commit virtualenv
*.egg-info/* # ... และแพ็กเกจที่คอมไพล์ในเครื่อง
__pycache__ # ... หรือ source
*.swp # ... หรือไฟล์ที่เปิดอยู่ใน vim

คุณสามารถหาคำแนะนำอื่นๆ ได้ที่ Gitignore.io หรือ GitHub repo ของ Gitignore

คุณลองดูสิ

คำสั่งช่วยเหลือโปรดของคุณคืออะไร? โปรดแบ่งปันในความคิดเห็น