Android

คำสั่ง Curl ใน linux พร้อมตัวอย่าง

How to Download Files with cURL on Command Line

How to Download Files with cURL on Command Line

สารบัญ:

Anonim

curl เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งสำหรับถ่ายโอนข้อมูลจากหรือไปยังเซิร์ฟเวอร์ที่ออกแบบมาเพื่อทำงานโดยไม่ต้องมีการโต้ตอบกับผู้ใช้ ด้วย curl คุณสามารถดาวน์โหลดหรืออัพโหลดข้อมูลโดยใช้หนึ่งในโปรโตคอลที่รองรับเช่น HTTP, HTTPS, SCP, SFTP และ FTP curl มีตัวเลือกมากมายที่ช่วยให้คุณสามารถถ่ายโอนต่อ จำกัด แบนด์วิดท์สนับสนุนพร็อกซีตรวจสอบผู้ใช้และอีกมากมาย

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

การติดตั้ง Curl

แพ็คเกจ curl ได้รับการติดตั้งไว้ล่วงหน้าในลีนุกซ์ส่วนใหญ่ในปัจจุบัน

ในการตรวจสอบว่ามีการติดตั้งแพ็คเกจ Curl ในระบบของคุณหรือไม่เปิดคอนโซลของคุณพิมพ์ curl แล้วกด Enter หากคุณติดตั้ง curl แล้วระบบจะพิมพ์ curl: try 'curl --help' or 'curl --manual' for more information มิฉะนั้นคุณจะเห็นสิ่งที่ต้องการ curl command not found

หากไม่ได้ติดตั้ง curl คุณสามารถติดตั้งได้อย่างง่ายดายโดยใช้ตัวจัดการแพ็คเกจของการกระจายของคุณ

ติดตั้ง Curl บน Ubuntu และ Debian

sudo apt update sudo apt install curl

ติดตั้ง Curl บน CentOS และ Fedora

sudo yum install curl

วิธีใช้ Curl

ไวยากรณ์สำหรับคำสั่ง curl เป็นดังนี้:

curl

ในรูปแบบที่ง่ายที่สุดเมื่อเรียกใช้โดยไม่มีตัวเลือกใด ๆ curl แสดงทรัพยากรที่ระบุไปยังเอาต์พุตมาตรฐาน

ตัวอย่างเช่นในการดึงหน้าแรกของ example.com คุณจะต้องเรียกใช้:

curl example.com

คำสั่งจะพิมพ์ซอร์สโค้ดของโฮมเพจ example.com ในหน้าต่างเทอร์มินัลของคุณ

หากไม่ได้ระบุโปรโตคอล curl จะพยายามเดาโปรโตคอลที่คุณต้องการใช้และจะใช้ค่าเริ่มต้นเป็น HTTP

บันทึกผลลัพธ์ไปยังไฟล์

หากต้องการบันทึกผลลัพธ์ของคำสั่ง curl ให้ใช้ตัวเลือก -o หรือ -O

ตัวพิมพ์เล็ก -o บันทึกไฟล์ด้วยชื่อไฟล์ที่กำหนดไว้ล่วงหน้าซึ่งในตัวอย่างด้านล่างคือ vue-v2.6.10.js :

curl -o vue-v2.6.10.js

ตัวพิมพ์ใหญ่ -O บันทึกไฟล์ด้วยชื่อไฟล์ดั้งเดิม:

curl -O

ดาวน์โหลดหลายไฟล์

หากต้องการดาวน์โหลดหลายไฟล์พร้อมกันให้ใช้ตัวเลือก -O หลายตัวตามด้วย URL ไปยังไฟล์ที่คุณต้องการดาวน์โหลด

ในตัวอย่างต่อไปนี้เรากำลังดาวน์โหลดไฟล์ Arch Linux และ Debian iso:

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \ -O

ทำการดาวน์โหลดต่อ

คุณสามารถทำการดาวน์โหลดต่อได้โดยใช้ตัวเลือก -C - สิ่งนี้มีประโยชน์หากการเชื่อมต่อของคุณลดลงในระหว่างการดาวน์โหลดไฟล์ขนาดใหญ่และแทนที่จะเริ่มดาวน์โหลดตั้งแต่เริ่มต้นคุณสามารถดำเนินการต่อก่อนหน้านี้ได้

ตัวอย่างเช่นหากคุณดาวน์โหลดไฟล์ iso ของ Ubuntu 18.04 โดยใช้คำสั่งต่อไปนี้:

curl -O

และการเชื่อมต่อของคุณก็ลดลงคุณสามารถดาวน์โหลดต่อได้ด้วย:

curl -C - -O

รับส่วนหัว HTTP ของ URL

ส่วนหัว HTTP คือคู่ของคีย์ - ค่าที่คั่นด้วยโคลอนที่มีข้อมูลเช่นตัวแทนผู้ใช้ประเภทเนื้อหาและการเข้ารหัส ส่วนหัวจะถูกส่งผ่านระหว่างไคลเอนต์และเซิร์ฟเวอร์ที่มีการร้องขอหรือการตอบสนอง

ใช้อ็อพชัน -I เพื่อดึงข้อมูลส่วนหัว HTTP ของทรัพยากรที่ระบุเท่านั้น:

curl -I --http2

ตัวเลือก -L สั่งให้ curl ติดตามการเปลี่ยนเส้นทางใด ๆ จนกว่าจะถึงปลายทางสุดท้าย:

curl -L google.com

เปลี่ยน User-Agent

บางครั้งเมื่อดาวน์โหลดไฟล์เซิร์ฟเวอร์ระยะไกลอาจถูกตั้งค่าให้บล็อก Curl User-Agent หรือเพื่อส่งคืนเนื้อหาที่แตกต่างกันขึ้นอยู่กับอุปกรณ์ผู้เยี่ยมชมและเบราว์เซอร์

ในสถานการณ์เช่นนี้เพื่อเลียนแบบเบราว์เซอร์อื่นให้ใช้ตัวเลือก -A

ตัวอย่างเช่นการเลียนแบบ Firefox 60 คุณจะใช้:

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"

ระบุอัตราการถ่ายโอนสูงสุด

ตัวเลือก --limit-rate อนุญาตให้คุณ จำกัด อัตราการถ่ายโอนข้อมูล ค่าสามารถแสดงเป็นไบต์, กิโลไบต์ด้วยส่วนต่อท้าย k , เมกะไบต์ที่มีส่วนต่อท้าย m และกิกะไบต์ด้วยส่วนต่อท้าย g

ในตัวอย่างต่อไปนี้ curl จะดาวน์โหลดไบนารีไปและ จำกัด ความเร็วในการดาวน์โหลดไว้ที่ 1 mb:

curl --limit-rate 1m -O

ตัวเลือกนี้มีประโยชน์ในการป้องกันไม่ให้ curl แบนด์วิดท์ที่มีอยู่ทั้งหมด

ถ่ายโอนไฟล์ผ่าน FTP

ในการเข้าถึงเซิร์ฟเวอร์ FTP ที่มีการป้องกันด้วย curl ให้ใช้ตัวเลือก -u และระบุชื่อผู้ใช้และรหัสผ่านที่แสดงด้านล่าง:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

เมื่อล็อกอินแล้วคำสั่งจะแสดงรายการไฟล์และไดเรกทอรีทั้งหมดในโฮมไดเรกทอรีของผู้ใช้

คุณสามารถดาวน์โหลดไฟล์เดียวจากเซิร์ฟเวอร์ FTP โดยใช้ไวยากรณ์ต่อไปนี้:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

ในการอัพโหลดไฟล์ไปยังเซิร์ฟเวอร์ FTP ใช้ -T ตามด้วยชื่อไฟล์ที่คุณต้องการอัปโหลด:

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

ส่งคุกกี้

บางครั้งคุณอาจต้องทำการร้องขอ HTTP ด้วยคุกกี้เฉพาะเพื่อเข้าถึงทรัพยากรระยะไกลหรือเพื่อแก้ไขข้อบกพร่อง

โดยค่าเริ่มต้นเมื่อขอทรัพยากรที่มี curl ไม่มีการส่งหรือจัดเก็บคุกกี้

ในการส่งคุกกี้ไปยังเซิร์ฟเวอร์ให้ใช้สวิตช์ -b แล้วตามด้วยชื่อไฟล์ที่มีคุกกี้หรือสตริง

ตัวอย่างเช่นหากต้องการดาวน์โหลดไฟล์ Oracle Java JDK rpm ไฟล์ jdk-10.0.2_linux-x64_bin.rpm คุณจะต้องผ่านคุกกี้ชื่อ oraclelicense มีค่า a :

curl -L -b "oraclelicense=a" -O

การใช้พรอกซี

curl รองรับพร็อกซีประเภทต่าง ๆ รวมถึง HTTP, HTTPS และ SOCKS ในการถ่ายโอนข้อมูลผ่านพร็อกซีเซิร์ฟเวอร์ให้ใช้ตัวเลือก -x ( --proxy ) ตามด้วย URL พร็อกซี

คำสั่งต่อไปนี้ดาวน์โหลดทรัพยากรที่ระบุโดยใช้พร็อกซีบนพอร์ต 192.168.44.1 8888 :

curl -x 192.168.44.1:8888

หากพร็อกซีเซิร์ฟเวอร์ต้องการการรับรองความถูกต้องให้ใช้ตัวเลือก -U ( --proxy-user ) ตามด้วยชื่อผู้ใช้และรหัสผ่านที่คั่นด้วยโคลอน ( user:password ):

curl -U username:password -x 192.168.44.1:8888

ข้อสรุป

curl เป็นเครื่องมือบรรทัดคำสั่งที่ให้คุณถ่ายโอนข้อมูลจากหรือไปยังโฮสต์ระยะไกล มันมีประโยชน์สำหรับปัญหาการแก้ไขปัญหาการดาวน์โหลดไฟล์และอื่น ๆ

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ curl โปรดไปที่หน้าเอกสารของ Curl

เทอร์มิขด