ابزار Wget یکی از پرکاربردترین دستورات خط فرمان در لینوکس است که برای دانلود فایلها از اینترنت و همچنین ارتباط با REST APIها استفاده میشود. این ابزار از پروتکلهای HTTP، HTTPS، FTP و FTPS پشتیبانی میکند و یکی از مزیتهای اصلی آن، عملکرد پایدار در شبکههای کند یا ناپایدار است.
Wget در صورت قطع شدن دانلود، بهصورت خودکار تلاش مجدد انجام میدهد و حتی میتواند دانلودهای نیمهکاره را بدون نیاز به شروع از ابتدا ادامه دهد. همین ویژگیها باعث شده Wget به ابزاری قابل اعتماد برای مدیران سیستم، توسعهدهندگان و کاربران تازهکار لینوکس تبدیل شود.
در وبسایت دیدگاه، تلاش میکنیم ابزارهایی را معرفی کنیم که هم ساده باشند و هم در پروژههای واقعی به کار بیایند، و Wget دقیقاً یکی از همان ابزارهاست.
Wget فقط برای دانلود فایل نیست
برخلاف تصور بسیاری از کاربران، Wget فقط مخصوص دانلود فایل نیست. شما میتوانید با استفاده از آن، بدون نصب ابزار اضافی مانند curl، درخواستهای API از نوع GET، POST، PUT و DELETE ارسال کنید و هدرهای مختلف HTTP را مستقیماً از ترمینال مدیریت نمایید.
این آموزش برای چه کسانی مناسب است؟
این راهنما برای گروههای زیر طراحی شده است:
-
افرادی که میخواهند فایلها را سریع و مطمئن دانلود کنند
-
مدیران سیستم که نیاز به دانلود خودکار، ادامه دانلود یا محدود کردن سرعت دارند
-
توسعهدهندگانی که میخواهند با REST API کار کنند
-
کاربرانی که به دنبال اسکریپتنویسی و اتوماسیون هستند
-
کسانی که با سرویسهای ابری مانند DigitalOcean کار میکنند
نصب و پیشنیازها
بررسی نصب بودن Wget
در اغلب توزیعهای لینوکس، Wget بهصورت پیشفرض نصب است. برای بررسی کافی است در ترمینال بنویسید:
wgetاگر نصب نبود، در اوبونتو و دبیان میتوانید با دستور زیر آن را نصب کنید:
sudo apt-get install wgetگزینهها و فلگهای پرکاربرد Wget
Wget دارای فلگهای متنوعی است که کنترل کاملی روی دانلود و درخواستهای HTTP به شما میدهد. مهمترین آنها عبارتند از:
-
-P مشخص کردن مسیر ذخیره فایل
-
-q اجرای دستور در حالت بیصدا
-
--show-progress نمایش فقط نوار پیشرفت
-
-c ادامه دانلود قطعشده
-
--limit-rate محدود کردن سرعت دانلود
-
-O ذخیره فایل با نام دلخواه
-
-i دانلود چند فایل از لیست
-
-b دانلود در پسزمینه
-
--tries تعیین تعداد تلاش مجدد
-
-T تعیین زمان timeout
-
--header افزودن هدر HTTP
-
--method تعیین نوع درخواست (POST، PUT، DELETE و …)
ترکیب درست این فلگها، Wget را به ابزاری قدرتمند برای سناریوهای واقعی تبدیل میکند.
دانلود فایل با Wget
دانلود ساده یک فایل
برای دانلود یک فایل، فقط کافی است آدرس آن را بعد از دستور wget وارد کنید:
wget https://example.com/file.zipفایل بهصورت پیشفرض در مسیر فعلی ذخیره میشود.
دانلود در مسیر دلخواه
اگر بخواهید فایل در پوشه خاصی ذخیره شود:
wget -P Downloads/ https://example.com/file.zipدانلود بدون نمایش خروجی
برای اجرای بیصدا:
wget -q https://example.com/file.zipاگر فقط نوار پیشرفت را میخواهید:
wget -q --show-progress https://example.com/file.zipدانلود چند فایل بهصورت همزمان
ابتدا یک فایل متنی بسازید و لینکها را داخل آن قرار دهید، سپس:
wget -i links.txt -P Downloads/ -q --show-progressمحدود کردن سرعت دانلود
برای جلوگیری از اشغال کامل پهنای باند:
wget --limit-rate=200k https://example.com/file.zipادامه دانلود قطعشده
اگر دانلود نیمهکاره شد:
wget -c https://example.com/file.zipدانلود در پسزمینه
برای اجرای دانلود بدون اشغال ترمینال:
wget -b https://example.com/file.zipو بررسی وضعیت:
tail -f wget-logکار با REST API با Wget
ارسال درخواست GET
برای پردازش و استخراج داده از پاسخهای JSON این درخواستها، ابزار jq بسیار کاربردی است.
برای دریافت خروجی API در ترمینال:
wget -qO- https://api.example.com/dataارسال POST با داده JSON
wget -qO- \
--method=post \
--header="Content-Type: application/json" \
--body-data='{"key":"value"}' \
https://api.example.com/createارسال PUT
wget --method=put -qO- \
--header="Content-Type: application/json" \
--body-data='{"id":1,"name":"updated"}' \
https://api.example.com/update/1ارسال DELETE
wget --method=delete -qO- https://api.example.com/delete/1استفاده از هدر احراز هویت
wget -qO- \
--header="Authorization: Bearer TOKEN" \
https://api.example.com/secureمقایسه Wget و curl
بهطور خلاصه:
برای بررسی کاملتر curl بهعنوان جایگزین، آموزش دانلود فایلها با curl را نیز مطالعه کنید.
-
اگر تمرکز شما روی دانلود پایدار، ادامه دانلود و اجرای خودکار است → Wget
-
اگر با APIهای پیچیده، احراز هویت پیشرفته و HTTP/2 کار میکنید → curl
در بسیاری از پروژهها، استفاده همزمان از هر دو کاملاً منطقی است.
جمعبندی
Wget ابزاری ساده اما بسیار قدرتمند است که هم برای کاربران تازهکار و هم برای حرفهایها کاربرد دارد. از دانلود فایلهای ساده گرفته تا تعامل با APIها و سرویسهای ابری، همه را میتوان با چند دستور در ترمینال مدیریت کرد.
در دیدگاه تلاش میکنیم آموزشهایی ارائه دهیم که هم عملی باشند و هم در پروژههای واقعی به کار بیایند، و Wget یکی از ابزارهایی است که دانستن آن برای هر کاربر لینوکس تقریباً ضروری است.
ترکیب Wget با اسکریپتهای Bash امکان اتوماسیون دانلود و پردازش فایلها را فراهم میکند.
