curl to potężne narzędzie wiersza poleceń do komunikacji z serwerem WWW za pośrednictwem terminala. Często jest mylony z popularnym poleceniem wget, ponieważ oba mogą przesyłać i pobierać zawartość na serwer i działają na wielu platformach. Tak więc, aby wyjaśnić, oto różnice między wget i curl oraz niektórymi popularnymi poleceniami curl, o których powinieneś wiedzieć, aby zacząć.
curl vs wget
Na pozór zarówno curl, jak i wget mogą być postrzegane jako narzędzia, które mogą żądać i pobierać treści z serwerów internetowych. Jeśli jednak zagłębisz się głęboko, jest wiele do rozwikłania. curl obsługuje wiele innych protokołów, od HTTPS, SFTP po IMAP, POP3 itp., podczas gdy wget obsługuje tylko HTTP, HTTPS i FTP.
Kolejną istotną różnicą jest to, że wget obsługuje pobieranie rekurencyjne, podczas gdy curl nie. Tak więc wget pobierze wszystko, od strony internetowej do stron, z którymi jest powiązany, podczas gdy curl nie. Z drugiej strony, curl bazuje na bibliotece libcurl, która dostarcza API. Dzięki temu można go łatwo używać w skryptach wiersza poleceń, a także w aplikacjach opartych na GUI. Możesz myśleć o curl jako o uproszczonej przeglądarce internetowej wiersza poleceń, która może przesyłać i pobierać zawartość z serwera WWW.
Instalowanie curl w systemie Windows
curl jest preinstalowany w systemach operacyjnych opartych na systemie Unix lub podobnych do Unix, a zatem może być bezpośrednio używany w systemie macOS. Jednak może być również używany w systemach innych niż Unix, takich jak Windows, za pomocą biblioteki „libcurl”.
W systemie Windows wszystko, co musimy zrobić, to pobrać plik libcurl zip i wprowadzić kilka zmian, aby można go było używać za pomocą wiersza poleceń. Najpierw pobierz plik libcurl zip odpowiednio dla 32-bitowego lub 64-bitowego systemu Windows. Po pobraniu pliku wyodrębnij zawartość do folderu. Dla kontekstu poniżej znajduje się zrzut ekranu wyodrębnionej zawartości folderu libcurl.
W wyodrębnionym folderze przejdź do folderu bin i skopiuj następujące pliki – „curl.exe” i „curl-ca-bundle”.
Utwórz folder o nazwie „curl” na dysku „C:” i wklej oba skopiowane pliki. Po wykonaniu tej czynności możesz bezpośrednio użyć polecenia curl, przechodząc do folderu „C: \ curl” w wierszu polecenia.
Alternatywnie, jeśli chcesz uruchomić curl bezpośrednio z polecenia cmd, polecam utworzenie zmiennej środowiskowej. Aby to zrobić, przejdź do menu Start i wpisz „ Edytuj zmienne środowiskowe systemu ” i kliknij pierwsze wyszukiwanie.
W wyskakującym oknie Właściwości systemu kliknij przycisk Zmienne środowiskowe na dole.
Na ekranie zmiennej środowiskowej kliknij przycisk Nowy w g��rnej połowie, aby dodać zmienną środowiskową użytkownika.
Na nowym ekranie Zmienna użytkownika dodaj następujący wpis. Opublikuj to, kliknij OK, a następnie Zastosuj, aby zapisać zmiany.
Nazwa zmiennej: curl Wartość zmiennej: C:\curl
Po zakończeniu kliknij OK w menu Zmienna środowiskowa, aby zapisać zmiany. Opublikuj to, powinieneś być w stanie użyć polecenia curl bezpośrednio w wierszu polecenia. Aby to przetestować, wprowadź następujące polecenie
curl --wersja
Alternatywnie możesz także włączyć WSL dla Windows i użyć powłoki bash Ubuntu do uruchamiania poleceń curl z bash w systemie Windows.
Najlepsze polecenia do zwijania i jak z nich korzystać
Zanim zaczniemy z poleceniami, zauważ, że pojedyncze cudzysłowy nie działają w wierszu poleceń Windows. Trzeba by je przekonwertować na cudzysłowy. W przypadku powłoki bash działałoby to normalnie również z pojedynczymi cudzysłowami.
1. Przeglądaj kod HTML
Najbardziej podstawowym narzędziem curl jest przeglądanie kodu HTML strony internetowej. Aby to zrobić, dodaj do polecenia curl internetowy adres URL strony.
curl https://example.com
To polecenie wyświetli dane wyjściowe na terminalu. Możesz również pobrać zawartość pliku, określając przełącznik „-O” przed adresem URL. Spowoduje to zapisanie pliku w systemie pod tą samą nazwą pliku zdalnego. Na przykład, jeśli nazwa pliku HTML na serwerze to „home.html”, zostanie on również zapisany lokalnie jako „home.html”.
curl -O http://example.com/home.html
Alternatywnie możesz przechowywać dane z niestandardowymi nazwami plików. W tym celu dołącz do polecenia małą literę „-o”, po której następuje nazwa pliku.
curl http://example.com/home.html -o sample-file.txt
Możesz również pobrać wiele plików, określając wiele adresów URL plików zdalnych.
2. Pobieranie plików za pomocą curl
Podobnie jak wget, możesz pobierać pliki za pomocą curl. Możesz użyć przełącznika -o i określić nazwę pliku, w przeciwnym razie plik zostanie zapisany pod nazwą pliku zdalnego.
curl -O http://example.com/linux.iso
Na przykład następujące polecenie pobierze najnowszą wersję mennicy systemu Linux z serwera WWW.
curl -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
Możesz także użyć „-#” lub „–progress-bar”, aby wyświetlić postęp w postaci skrótów.
3. Wznawianie nieudanego pobierania
Co więcej, jeśli pobieranie zostanie przerwane, możesz je wznowić za pomocą przełącznika „-C -”. Polecenie będzie wyglądać następująco.
curl -C http://example.com/linux.iso
Na przykład następujące polecenie wznowi pobieranie od ostatniego nieudanego punktu.
curl -C - -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
4. Informacje o IP
Możesz użyć następującego polecenia curl, aby uzyskać wszystkie informacje sieciowe o maszynie
curl ipinfo.io
Alternatywnie, jeśli znasz adres IP i chcesz uzyskać inne szczegóły, takie jak współrzędne lokalizacji, miasto, strefa czasowa itp., Możesz użyć następującej odmiany polecenia.
curl ipinfo.io/14.141.173.170
5. Wyślij e-maile
Ponieważ curl obsługuje protokół SMTP, POP3, możesz go używać nawet do wysyłania e-maili. Poniżej znajduje się próbka wysłania wiadomości e-mail przez Gmaila.
Zastąp odpowiednio adres e-mail i hasło w następującym poleceniu.
curl --url "smtps://smtp.gmail.com:587" --ssl-reqd --mail-from "[email protected]" --mail-rcpt "[email protected]" --upload- plik "C:\mail.txt" --user "[email protected]:hasło"
Make sure you turn on access for less secure apps for the Google account
6. Słownik
Protokół dict dostarczany przez libcurl może być użyty do łatwego znalezienia znaczenia słowa. Źródłem znaczenia jest WordNet . Poniżej znajduje się polecenie, aby zrobić to samo.
curl dict://dict.org/d:angielski-słowo
7. Polecenia POST
Możesz wysyłać żądania POST do serwera WWW za pomocą polecenia curl. Składnia jest następująca
curl -X POST -F "nazwa=nazwa-użytkownika" -F "hasło=hasło" http://www.example.com
Dane z formularza POST można również przesłać w postaci pliku JSON. Użyj następującego polecenia, aby to zrobić.
curl -H „Typ treści: aplikacja/json” https://www.example.com
8. Konwertuj pliki
Ponieważ curl obsługuje dane formularzy wieloczęściowych, możesz go używać do przesyłania plików, a nawet do natychmiastowej ich konwersji. Na przykład chcę przekonwertować ten plik HTML na plik PDF. Dlatego użyję do tego Docverter API . Docverter API obsługuje wiele formatów plików z HTML, Markdown i może konwertować je na Docx, PDF, ePub itp.
Alternatywnie możesz również użyć interfejsu Google Drive API v3 do konwersji arkuszy kalkulacyjnych programu Excel, dokumentów itp.
curl "http://c.docverter.com/convert" -F from=html -F to=pdf -F input_files[]=@twoja-nazwa-pliku -o "output-file-name.pdf"
Słowa zamykające
curl jest głównie używany w programach do udostępniania danych, plików, formularzy. Oprócz wyżej wymienionego polecenia istnieje wiele innych interfejsów API, kombinacji lub skryptów powłoki, z którymi możesz używać curl. Możesz dowiedzieć się więcej na ten temat w repozytoriach GitHub lub Stack Overflow. Aby uzyskać więcej problemów lub zapytań dotyczących dowolnego polecenia curl, daj mi znać w komentarzach poniżej.
Przeczytaj także: 14 najlepszych aplikacji do nauki kodowania (Android i iOS)