أدوات CLI
2 دقيقة للقراءة

GitHub Copilot: الأوامر

مقدمة

هذا الدليل الشامل يغطي جميع أوامر GitHub Copilot CLI الأساسية والمتقدمة، مع أمثلة عملية ونصائح للاستخدام الأمثل.


الأوامر الأساسية

1. gh copilot suggest

الوصف: اقتراح أوامر terminal بناءً على الوصف الطبيعي

# الصيغة الأساسية
gh copilot suggest "[وصف باللغة الطبيعية]"

# أمثلة
gh copilot suggest "find all python files"
gh copilot suggest "compress folder into tar.gz"
gh copilot suggest "kill process on port 3000"

الخيارات المتاحة:

# الحصول على اقتراحات متعددة
gh copilot suggest "list files" --suggestions 3

# تخصيص shell (bash, zsh, powershell)
gh copilot suggest "create alias" --shell bash

# اقتراح تفاعلي (اختر من الاقتراحات)
gh copilot suggest "deploy app" --interactive

مثال متقدم:

gh copilot suggest "backup mysql database with date in filename"

# الاقتراحات:
# 1. mysqldump -u root -p dbname > backup_$(date +%Y%m%d).sql
# 2. mysqldump --user=root --password dbname > "backup_$(date +%F).sql"
# 3. docker exec mysql mysqldump -u root -p dbname > backup_$(date +%Y%m%d_%H%M%S).sql

2. gh copilot explain

الوصف: شرح أمر terminal معقد

# الصيغة الأساسية
gh copilot explain "[الأمر المراد شرحه]"

# أمثلة
gh copilot explain "find . -type f -name '*.log' -mtime +7 -delete"
gh copilot explain "docker run -d -p 8080:80 --name web nginx:alpine"

الخيارات المتاحة:

# شرح تفصيلي
gh copilot explain "tar -xzvf file.tar.gz" --detailed

# شرح مع أمثلة
gh copilot explain "grep -r 'TODO' src/" --with-examples

مثال متقدم:

gh copilot explain "kubectl rollout restart deployment/app -n prod"

# الشرح:
# kubectl: Kubernetes CLI tool
# rollout restart: Restart deployment with zero downtime
# deployment/app: Target deployment named 'app'
# -n prod: In namespace 'prod'
# Result: Restarts all pods in app deployment in production namespace

الأوامر المتقدمة

3. gh copilot suggest مع pipes

# استخدام pipes (|)
gh copilot suggest "find large files and sort by size"

# الاقتراح:
# find . -type f -exec du -h {} + | sort -rh | head -20

# أمثلة أخرى
gh copilot suggest "count lines of code in project"
# find . -name '*.ts' -o -name '*.tsx' | xargs wc -l

gh copilot suggest "find duplicate files by name"
# find . -type f -printf '%f\n' | sort | uniq -d

4. gh copilot للـ Git Workflows

# Undo commits
gh copilot suggest "undo last 3 commits but keep changes"

# الناتج:
# git reset HEAD~3

# Merge branches
gh copilot suggest "merge feature branch with strategy"

# الناتج:
# git merge feature-branch --no-ff --no-commit

# Clean branches
gh copilot suggest "delete all merged branches except main"

# الناتج:
# git branch --merged | grep -v "\*" | grep -v "main" | xargs git branch -d

5. gh copilot للـ DevOps

# Docker operations
gh copilot suggest "stop all running docker containers"

# الناتج:
# docker stop $(docker ps -q)

# Docker cleanup
gh copilot suggest "remove all unused docker images and volumes"

# الناتج:
# docker system prune -a --volumes -f

# Kubernetes operations
gh copilot suggest "get all pods in all namespaces"

# الناتج:
# kubectl get pods --all-namespaces

Aliases المفيدة

Bash/Zsh

# إضافة إلى ~/.bashrc أو ~/.zshrc
alias cs='gh copilot suggest'
alias ce='gh copilot explain'

# الاستخدام
cs "list json files"
ce "jq -r '.[].name' data.json"

PowerShell

# إضافة إلى $PROFILE
function cs { gh copilot suggest $args }
function ce { gh copilot explain $args }

# الاستخدام
cs "get process by name"
ce "Get-Process | Sort-Object CPU -Descending"

نصائح الاستخدام

DO's ✅

  1. كن واضحاً في الوصف

    # جيد
    gh copilot suggest "find files larger than 100MB modified in last 7 days"
    
    # أقل وضوحاً
    gh copilot suggest "big files"
    
  2. استخدم shell المحدد

    gh copilot suggest "create alias" --shell zsh
    
  3. اطلب عدة اقتراحات

    gh copilot suggest "compress files" --suggestions 3
    
  4. افهم قبل التنفيذ

    # دائماً افهم الأمر أولاً
    gh copilot explain "[الأمر]"
    # ثم نفذه
    
  5. اختبر في بيئة آمنة

    # استخدم sandbox أو test environment
    # قبل التنفيذ على production
    

DON'Ts ❌

  1. لا تنفذ أمراً دون فهمه

    # سيء
    gh copilot suggest "delete all files"
    # [ينفذ مباشرة] 🚨
    
    # جيد
    gh copilot suggest "delete all files"
    # افهم الناتج أولاً
    # ثم نفذ
    
  2. لا تستخدم للبيانات الحساسة

    # سيء
    gh copilot explain "echo 'API_KEY=secret123' > .env"
    
  3. لا تعتمد كلياً على الاقتراحات

    # راجع دائماً الناتج
    # تحقق من صحة الأمر
    

أمثلة عملية

1. إدارة الملفات

# البحث عن الملفات المكررة
gh copilot suggest "find duplicate files by content"

# الناتج:
# fdupes -r ./directory

# حذف الملفات المؤقتة
gh copilot suggest "delete all .tmp files"

# الناتج:
# find . -name "*.tmp" -type f -delete

2. مراقبة النظام

# مراقبة الذاكرة
gh copilot suggest "monitor memory usage in real time"

# الناتج:
# watch -n 1 free -h

# مراقبة العمليات
gh copilot suggest "show top 5 processes by CPU usage"

# الناتج:
# ps aux | sort -rk 3,3 | head -n 6

3. الشبكات

# اختبار الاتصال
gh copilot suggest "test connectivity to server"

# الناتج:
# ping -c 4 example.com

# عرض المنافذ المفتوحة
gh copilot suggest "show all open listening ports"

# الناتج:
# netstat -tuln | grep LISTEN

استكشاف الأخطاء

"gh: command not found"

# الحل: ثبت GitHub CLI
# macOS
brew install gh

# Windows
winget install GitHub.cli

# Linux
sudo apt install gh  # Ubuntu/Debian
sudo dnf install gh  # Fedora

"extension not found"

# الحل: أعد تثبيت الامتداد
gh extension remove github/gh-copilot
gh extension install github/gh-copilot

"authentication failed"

# الحل: أعد تسجيل الدخول
gh auth logout
gh auth login

ملخص سريع

الأمرالوصفمثال
gh copilot suggestاقتراح أوامرgh copilot suggest "list files"
gh copilot explainشرح أوامرgh copilot explain "ls -la"
--suggestions Nعدد الاقتراحات--suggestions 3
--shellتحديد shell--shell bash
--detailedشرح مفصل--detailed
--interactiveاختيار تفاعلي--interactive

الخلاصة

Copilot CLI يوفر أمرين أساسيين فقط:

  1. suggest - لاقتراح أوامر جديدة
  2. explain - لشرح أوامر موجودة

لكن قوته تكمن في:

  • فهم اللغة الطبيعية
  • اقتراحات ذكية ومتعددة
  • تكامل مع GitHub ecosystem
  • دعم جميع shells الرئيسية

ابدأ اليوم:

gh copilot suggest "help me be more productive"

موارد إضافية