Wyszukiwanie w witrynie

15 wskazówek, jak używać polecenia „Curl” w systemie Linux


W połowie lat 90., kiedy Internet był jeszcze w powijakach, szwedzki programista Daniel Stenberg rozpoczął projekt, który ostatecznie przekształcił się w coś, co znamy dziś jako curl.

Początkowo miał na celu opracowanie bota, który okresowo pobierałby kursy wymiany walut ze strony internetowej i udostępniałby użytkownikom IRC odpowiedniki koron szwedzkich w dolarach amerykańskich.

Krótko mówiąc, projekt rozkwitł, dodając po drodze kilka protokołów i funkcji – a reszta to historia. Teraz zanurkujmy obiema nogami i nauczmy się używać curl do przesyłania danych i nie tylko w systemie Linux!

Przygotowaliśmy dla Ciebie poniższą listę 15 poleceń curl.

1. Zobacz wersję zwijaną

Opcje -V lub --version zwrócą nie tylko wersję, ale także obsługiwane protokoły i funkcje w bieżącej wersji.

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. Pobierz plik

Jeśli chcesz pobrać plik, możesz użyć curl z opcjami -O lub -o. Pierwsza z nich zapisze plik w bieżącym katalogu roboczym pod tą samą nazwą, co w lokalizacji zdalnej, natomiast druga umożliwia określenie innej nazwy pliku i/lub lokalizacji.

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. Wznów przerwane pobieranie

Jeśli pobieranie zostało z jakiegoś powodu przerwane (na przykład przy użyciu Ctrl + c), możesz je bardzo łatwo wznowić. Użycie -C – (myślnik C, spacja) mówi curlowi, aby wznowił pobieranie od miejsca, w którym zostało przerwane.

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

4. Pobierz wiele plików

Za pomocą poniższego polecenia pobierzesz info.html i about.html z http://yoursite.com i http:/ /mysite.com za jednym razem.

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

5. Pobierz adresy URL z pliku

Jeśli połączysz curl z xargs, możesz pobierać pliki z listy adresów URL w pliku.

xargs -n 1 curl -O < listurls.txt

6. Użyj serwera proxy z uwierzytelnianiem lub bez

Jeśli znajdujesz się za serwerem proxy nasłuchującym na porcie 8080 pod adresem proxy.twojadomena.com, zrób to.

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

gdzie możesz pominąć -U użytkownik:hasło, jeśli Twój serwer proxy nie wymaga uwierzytelniania.

7. Zapytaj o nagłówki HTTP

Nagłówki HTTP umożliwiają zdalnemu serwerowi internetowemu wysyłanie dodatkowych informacji o sobie wraz z rzeczywistym żądaniem. Dzięki temu klient otrzymuje szczegółowe informacje na temat sposobu obsługi żądania.

Aby wysłać zapytanie do nagłówków HTTP ze strony internetowej, wykonaj:

curl -I linux-console.net

Informacje te są również dostępne w narzędziach programistycznych Twojej przeglądarki.

8. Utwórz żądanie POST z parametrami

Poniższe polecenie wyśle parametry firstName i lastName wraz z odpowiadającymi im wartościami do https://twojadomena.com/info.php .

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

Możesz skorzystać z tej wskazówki, aby zasymulować zachowanie zwykłego formularza HTML.

9. Pobieraj pliki z serwera FTP z uwierzytelnianiem lub bez

Jeśli zdalny serwer FTP oczekuje połączeń pod adresem ftp://yourftpserver, poniższe polecenie pobierze plik yourfile.tar.gz z bieżącego katalogu roboczego.

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

gdzie możesz pominąć -u nazwa użytkownika:hasło, jeśli serwer FTP umożliwia anonimowe logowanie.

10. Prześlij pliki na serwer FTP z uwierzytelnieniem lub bez

Aby przesłać lokalny plik o nazwie mylocalfile.tar.gz na ftp://yourftpserver za pomocą curl, wykonaj:

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

11. Określ agenta użytkownika

Klient użytkownika jest częścią informacji wysyłanych wraz z żądaniem HTTP. Wskazuje, której przeglądarki użył klient do wysłania żądania. Zobaczmy, czego domyślnie używa nasza aktualna wersja curl, i zmieńmy to później na „Jestem nową przeglądarką internetową”:

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

12. Przechowuj pliki cookies witryny

Chcesz zobaczyć, które pliki cookie są pobierane na Twój komputer podczas przeglądania witryny https://www.cnn.com? Użyj poniższego polecenia, aby zapisać je w pliku cnncookies.txt. Następnie możesz użyć polecenia cat, aby wyświetlić plik.

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

13. Wyślij pliki cookie witryny

Możesz używać plików cookie pobranych w ostatniej wskazówce w kolejnych żądaniach kierowanych do tej samej witryny.

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

14. Zmodyfikuj rozpoznawanie nazw

Jeśli jesteś programistą internetowym i chcesz przetestować lokalną wersję witryny twojadomena.com przed jej publikacją, możesz ustawić opcję curl rozwiązywania http://www.twojadomena.com > do lokalnego hosta w następujący sposób:

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

Zatem zapytanie do http://www.twojadomena.com poinformuje curl, aby zażądał witryny od localhost zamiast korzystać z DNS lub pliku /etc/hosts.

15. Ogranicz szybkość pobierania

Aby zapobiec blokowaniu przepustowości przez curl, możesz ograniczyć prędkość pobierania do 100 KB/s w następujący sposób.

curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Streszczenie

W tym artykule przedstawiliśmy krótką historię początków loków i wyjaśniliśmy, jak z nich korzystać, za pomocą 15 praktycznych przykładów.

Czy znasz jakieś inne polecenia curl, które mogliśmy pominąć w tym artykule? Podziel się nimi z naszą społecznością w komentarzach! Jeśli masz pytania, daj nam znać. Oczekujemy na kontakt zwrotny!