ค้นหาเว็บไซต์

15 เคล็ดลับเกี่ยวกับวิธีใช้คำสั่ง 'Curl' ใน Linux


ย้อนกลับไปในช่วงกลางทศวรรษ 1990 เมื่ออินเทอร์เน็ตยังอยู่ในช่วงเริ่มต้น โปรแกรมเมอร์ชาวสวีเดนชื่อ Daniel Stenberg ได้เริ่มโครงการที่ในที่สุดก็ขยายจนกลายเป็นสิ่งที่เรารู้จักในชื่อ curl ในปัจจุบัน

ในขั้นต้น เขามุ่งเป้าไปที่การพัฒนา บอต ที่จะดาวน์โหลดอัตราแลกเปลี่ยนเงินตราจากหน้าเว็บเป็นระยะๆ และจะมอบสกุลเงินโครนัวร์สวีเดนที่เทียบเท่าในสกุลเงินดอลลาร์สหรัฐให้กับผู้ใช้ IRC

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

เราได้รวบรวมรายการคำสั่ง 15 คำสั่ง curl ต่อไปนี้ไว้ให้คุณแล้ว

1. ดูเวอร์ชันขด

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

curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. ดาวน์โหลดไฟล์

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

curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. ทำการดาวน์โหลดต่อที่ถูกขัดจังหวะ

หากการดาวน์โหลดถูกขัดจังหวะด้วยเหตุผลบางประการ (เช่น โดยใช้ Ctrl + c) คุณสามารถดำเนินการดาวน์โหลดต่อได้อย่างง่ายดาย การใช้ -C – (dash C, space dash) บอกให้ curl ทำการดาวน์โหลดต่อโดยเริ่มจากจุดที่ค้างไว้

curl -C - -O http://yourdomain.com/yourfile.tar.gz

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

ด้วยคำสั่งต่อไปนี้ คุณจะดาวน์โหลด info.html และ about.html จาก http://yoursite.com และ http:/ /mysite.com ตามลำดับในครั้งเดียว

curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5. ดาวน์โหลด URL จากไฟล์

หากคุณรวม curl เข้ากับ xargs คุณสามารถดาวน์โหลดไฟล์จากรายการ URL ในไฟล์ได้

xargs -n 1 curl -O < listurls.txt

6. ใช้พรอกซีโดยมีหรือไม่มีการรับรองความถูกต้อง

หากคุณอยู่หลังพร็อกซีเซิร์ฟเวอร์ที่กำลังฟังพอร์ต 8080 ที่ proxy.yourdomain.com ให้ทำ

curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

โดยที่คุณสามารถข้าม -U user:password ได้ หากพร็อกซีของคุณไม่ต้องการการรับรองความถูกต้อง

7. ค้นหาส่วนหัว HTTP

ส่วนหัว HTTP ช่วยให้เว็บเซิร์ฟเวอร์ระยะไกลส่งข้อมูลเพิ่มเติมเกี่ยวกับตัวเองไปพร้อมกับคำขอจริงได้ ข้อมูลนี้จะทำให้ลูกค้าได้รับรายละเอียดเกี่ยวกับวิธีการจัดการคำขอ

หากต้องการสอบถามส่วนหัว HTTP จากเว็บไซต์ ให้ทำดังนี้

curl -I linux-console.net

ข้อมูลนี้มีอยู่ในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์ของคุณ

8. สร้างคำขอ POST ด้วยพารามิเตอร์

คำสั่งต่อไปนี้จะส่งพารามิเตอร์ firstName และ lastName พร้อมด้วยค่าที่เกี่ยวข้องไปที่ https://yourdomain.com/info.php .

curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

คุณสามารถใช้เคล็ดลับนี้เพื่อจำลองการทำงานของรูปแบบ HTML ปกติ

9. ดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ FTP โดยมีหรือไม่มีการตรวจสอบสิทธิ์

หากเซิร์ฟเวอร์ FTP ระยะไกลต้องการการเชื่อมต่อที่ ftp://yourftpserver คำสั่งต่อไปนี้จะดาวน์โหลด yourfile.tar.gz ในไดเร็กทอรีการทำงานปัจจุบัน

curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

โดยที่คุณสามารถข้าม -u ชื่อผู้ใช้:รหัสผ่าน หากเซิร์ฟเวอร์ FTP อนุญาตให้เข้าสู่ระบบโดยไม่ระบุชื่อ

10. อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ FTP โดยมีหรือไม่มีการตรวจสอบสิทธิ์

หากต้องการอัปโหลดไฟล์ในเครื่องชื่อ mylocalfile.tar.gz ไปยัง ftp://yourftpserver โดยใช้ curl ให้ทำดังนี้

curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. ระบุ User Agent

ตัวแทนผู้ใช้เป็นส่วนหนึ่งของข้อมูลที่ส่งไปพร้อมกับคำขอ HTTP สิ่งนี้บ่งชี้ว่าเบราว์เซอร์ใดที่ไคลเอนต์ใช้ในการร้องขอ มาดูกันว่าเวอร์ชัน curl ปัจจุบันของเราใช้เป็นค่าเริ่มต้นอย่างไร และมาเปลี่ยนในภายหลังเป็น “ฉันเป็นเว็บเบราว์เซอร์ใหม่”:

curl -I http://localhost --user-agent "I am a new web browser"

12. จัดเก็บคุกกี้ของเว็บไซต์

ต้องการดูว่าคุกกี้ใดบ้างที่ถูกดาวน์โหลดลงในคอมพิวเตอร์ของคุณเมื่อคุณเรียกดู https://www.cnn.com ใช้คำสั่งต่อไปนี้เพื่อบันทึกลงใน cnncookies.txt จากนั้นคุณสามารถใช้คำสั่ง cat เพื่อดูไฟล์ได้

curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13. ส่งคุกกี้ของเว็บไซต์

คุณสามารถใช้คุกกี้ที่ได้รับในเคล็ดลับสุดท้ายในคำขอต่อๆ ไปไปยังไซต์เดียวกัน

curl --cookie cnncookies.txt https://www.cnn.com

14. แก้ไขการจำแนกชื่อ

หากคุณเป็นนักพัฒนาเว็บและต้องการทดสอบ yourdomain.com เวอร์ชันท้องถิ่นก่อนที่จะเผยแพร่ คุณสามารถแก้ไขข้อผิดพลาดได้ http://www.yourdomain.com ไปยัง localhost ของคุณดังนี้:

curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

ดังนั้น การสืบค้นไปยัง http://www.yourdomain.com จะบอก curl ให้ขอไซต์จาก localhost แทนที่จะใช้ DNS หรือไฟล์ /etc/hosts

15. จำกัดอัตราการดาวน์โหลด

เพื่อป้องกันไม่ให้แบนด์วิธโค้งงอ คุณสามารถจำกัดอัตราการดาวน์โหลดไว้ที่ 100 KB/s ได้ดังต่อไปนี้

curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
สรุป

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

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