15 คะแนน โดย winterjung 2025-04-19 | 6 ความคิดเห็น | แชร์ทาง WhatsApp

ผมมักจะใส่ shell script หรือ snippet ด้านล่างไว้ใน ~/.zshrc หรือทำเป็น alias แล้วใช้งาน เลยอยากลองมาถามว่าคนอื่นใช้ snippet อะไรกันบ้าง

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


1. ดูหน้า man เป็น PDF

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

สำหรับ mac os ใช้งานแบบ $ pman curl

2. ลบ branch ที่ถูกลบไปแล้วจาก git remote

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

หรือจะใช้ git gone - คำสั่งแบบกำหนดเองสำหรับลบ branch ทั้งหมดที่ถูกลบจาก remote ก็ดูจะใช้ได้เหมือนกัน

3. นำ environment variable ใน .env มาใช้งาน

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

จริง ๆ ใช้ direnv น่าจะดีกว่า แต่คงเพราะความเคยชิน เลยยังใช้ snippet ด้านบนบ่อยกว่า

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 เพื่อใช้งาน และถ้าไม่จำเป็นต้องเก็บ volume ไว้ ก็จะเอาออปชัน -v ออกแล้วใช้

6 ความคิดเห็น

 
roxie 2025-06-23
alias enable-sudo-with-touchid="cat /etc/pam.d/sudo && echo 'BEFORE===================\n===================AFTER' && sudo gsed -i '1i auth sufficient pam_tid.so' /etc/pam.d/sudo && cat /etc/pam.d/sudo"  

เป็นสคริปต์ที่ทำให้สามารถใช้ Touch ID ได้ในสถานการณ์ที่ต้องกรอกรหัสผ่านผู้ดูแลระบบบน MacBook (เช่น sudo)

ตั้งค่าเพียงครั้งเดียวก็พอ แต่ถ้าถามว่าทำไมถึงมี alias นี้... ก็เพราะบางครั้งเวลาอัปเกรดเวอร์ชัน macOS การตั้งค่านี้จะถูกรีเซ็ตครับ

 
tequila 2025-04-21

ไม่เคยนึกถึงการใช้อะไลแอสสำหรับเปิด mysql ชั่วคราวเลย แต่ก็น่าสนใจดีนะครับ
ส่วนผมใส่การตั้งค่าเล็ก ๆ แบบนี้ไว้ใน .zshrc แล้วใช้อยู่ครับ

cpcat() {  
  cat "$@" | pbcopy  
}  

ถ้ารัน cpcat [ชื่อไฟล์] เนื้อหาของไฟล์นั้นจะถูกคัดลอกเข้าไปยังคลิปบอร์ดครับ

 
roxie 2025-06-23
alias cb="pbcopy"  

ฉันใช้แบบนี้อยู่ ฮ่าๆ

 
winterjung 2025-04-21

โอ้ ปกติขี้เกียจ pbcopy ทุกครั้งอยู่แล้ว แบบนี้ดีเลย! ชื่อว่า Copycat สินะ 555

 
ndrgrd 2025-04-19

แสดงพอร์ตที่ไม่ได้ใช้งานในช่วงพอร์ต 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"  
}  
 
kohs100 2025-04-21

โอ้ นี่เป็นทริกดี ๆ เลย... ขอบคุณครับ