Android

Polecenie Curl w systemie Linux z przykładami

Linux Essentials: Curl Fundamentals

Linux Essentials: Curl Fundamentals

Spisu treści:

Anonim

curl to narzędzie wiersza polecenia do przesyłania danych z lub na serwer zaprojektowane do pracy bez interakcji użytkownika. Dzięki curl możesz pobierać lub przesyłać dane przy użyciu jednego z obsługiwanych protokołów, w tym HTTP, HTTPS, SCP, SFTP i FTP. curl oferuje szereg opcji pozwalających wznowić transfery, ograniczyć przepustowość, obsługę proxy, uwierzytelnienie użytkownika i wiele więcej.

W tym samouczku pokażemy, jak korzystać z narzędzia do zwijania, poprzez praktyczne przykłady i szczegółowe objaśnienia najczęściej używanych opcji zwijania.

Instalowanie Curl

Pakiet curl jest obecnie zainstalowany w większości dystrybucji Linuksa.

Aby sprawdzić, czy pakiet Curl jest zainstalowany w systemie, otwórz konsolę, wpisz curl i naciśnij klawisz Enter. Jeśli masz zainstalowane curl , system wydrukuje curl: try 'curl --help' or 'curl --manual' for more information . W przeciwnym razie zobaczysz coś w rodzaju curl command not found .

Jeśli curl nie jest zainstalowany, możesz go łatwo zainstalować za pomocą menedżera pakietów swojej dystrybucji.

Zainstaluj Curl na Ubuntu i Debianie

sudo apt update sudo apt install curl

Zainstaluj Curl na CentOS i Fedorze

sudo yum install curl

Jak korzystać z Curl

Składnia polecenia curl jest następująca:

curl

W najprostszej formie, wywołany bez żadnej opcji, curl wyświetla określony zasób na standardowe wyjście.

Na przykład, aby pobrać stronę główną example.com , uruchom:

curl example.com

Polecenie wydrukuje kod źródłowy strony example.com w oknie terminala.

Jeśli nie określono protokołu, curl próbuje odgadnąć protokół, którego chcesz użyć, i domyślnie ustawiony jest HTTP .

Zapisz dane wyjściowe w pliku

Aby zapisać wynik polecenia curl , użyj opcji -o lub -O .

Mała litera -o zapisuje plik ze wstępnie zdefiniowaną nazwą pliku, który w poniższym przykładzie to vue-v2.6.10.js :

curl -o vue-v2.6.10.js

Wielkie -O zapisuje plik z oryginalną nazwą pliku:

curl -O

Pobierz wiele plików

Aby pobrać wiele plików jednocześnie, użyj wielu opcji -O , a następnie adresu URL pliku, który chcesz pobrać.

W poniższym przykładzie pobieramy pliki iso Arch Linux i Debian:

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

Wznów pobieranie

Możesz wznowić pobieranie, używając opcji -C - . Jest to przydatne, jeśli połączenie zostanie zerwane podczas pobierania dużego pliku i zamiast zaczynać pobieranie od zera, możesz kontynuować poprzedni.

Na przykład, jeśli pobierasz plik ISO Ubuntu 18.04 za pomocą następującego polecenia:

curl -O

i nagle Twoje połączenie się kończy, możesz wznowić pobieranie za pomocą:

curl -C - -O

Uzyskaj nagłówki HTTP adresu URL

Nagłówki HTTP to rozdzielane dwukropkami pary klucz-wartość zawierające informacje, takie jak agent użytkownika, typ zawartości i kodowanie. Nagłówki są przekazywane między klientem a serwerem z żądaniem lub odpowiedzią.

Użyj opcji -I , aby pobrać tylko nagłówki HTTP określonego zasobu:

curl -I --http2

Opcja -L instruuje curl aby podążał za każdym przekierowaniem, aż dotrze do ostatecznego celu:

curl -L google.com

Zmień User-Agent

Czasami podczas pobierania pliku serwer zdalny może być ustawiony tak, aby blokował Curl User-Agent lub zwracał inną zawartość w zależności od urządzenia gościa i przeglądarki.

W takich sytuacjach, aby emulować inną przeglądarkę, użyj opcji -A .

Na przykład do emulacji Firefoksa 60 użyłbyś:

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

Określ maksymalną szybkość transferu

Opcja --limit-rate pozwala ograniczyć szybkość przesyłania danych. Wartość można wyrazić w bajtach, kilobajtach z sufiksem k , megabajtach z sufiksem m i gigabajtów z sufiksem g .

W poniższym przykładzie curl pobierze plik binarny Go i ograniczy prędkość pobierania do 1 mb:

curl --limit-rate 1m -O

Ta opcja jest przydatna, aby zapobiec curl całej dostępnej przepustowości.

Przesyłaj pliki przez FTP

Aby uzyskać dostęp do chronionego serwera FTP za pomocą curl , użyj opcji -u i określ nazwę użytkownika i hasło, jak pokazano poniżej:

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

Po zalogowaniu polecenie wyświetla listę wszystkich plików i katalogów w katalogu osobistym użytkownika.

Możesz pobrać pojedynczy plik z serwera FTP, używając następującej składni:

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

Aby przesłać plik na serwer FTP, użyj -T a następnie nazwy pliku, który chcesz przesłać:

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

Wyślij ciasteczka

Czasami może być konieczne wysłanie żądania HTTP z określonymi plikami cookie w celu uzyskania dostępu do zdalnego zasobu lub debugowania problemu.

Domyślnie przy żądaniu zasobu curl żadne pliki cookie nie są wysyłane ani przechowywane.

Aby wysłać pliki cookie na serwer, użyj przełącznika -b a następnie nazwa pliku zawierającego pliki cookie lub ciąg znaków.

Na przykład, aby pobrać plik rpm JDK Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm , musisz przekazać plik cookie o nazwie oraclelicense o wartości a :

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

Korzystanie z serwerów proxy

curl obsługuje różne typy serwerów proxy, w tym HTTP, HTTPS i SOCKS. Aby przesłać dane przez serwer proxy, użyj opcji -x ( --proxy ), a następnie adresu URL proxy.

Następujące polecenie pobiera określony zasób przy użyciu serwera proxy na porcie 8888 192.168.44.1 :

curl -x 192.168.44.1:8888

Jeśli serwer proxy wymaga uwierzytelnienia, użyj opcji -U ( --proxy-user ), a następnie nazwy użytkownika i hasła oddzielonych dwukropkiem ( user:password ):

curl -U username:password -x 192.168.44.1:8888

Wniosek

curl to narzędzie wiersza polecenia, które umożliwia przesyłanie danych z lub do zdalnego hosta. Jest przydatny przy rozwiązywaniu problemów, pobieraniu plików itp.

Przykłady przedstawione w tym samouczku są proste, ale pokazują najczęściej używane opcje curl i mają na celu pomóc ci zrozumieć, jak działa polecenie curl .

Aby uzyskać więcej informacji o zwijaniu, odwiedź stronę Dokumentacja curl .

curl terminal