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!