Linux에서 Curl 명령을 사용하는 방법

웹 페이지를 가져오고 터미널에서 바로 파일을 다운로드하기 위해 curl 명령을 사용하는 방법을 설명하는 광범위한 가이드

그만큼 곱슬 곱슬하다 command는 Linux가 제공하는 또 하나의 흥미로운 명령줄 유틸리티입니다. 곱슬 곱슬하다 명령을 사용하면 사용자가 서버에서 파일을 가져올 수 있습니다.

곱슬 곱슬하다 RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FILE, GOPHER, LDAP, LDAPS, POP3, POP3S 등

곱슬 곱슬하다 명령은 단순히 웹 페이지를 가져오는 것 이상을 수행합니다. 이 명령과 함께 사용할 수 있는 옵션을 알면 더 다양하게 사용할 수 있습니다. 사용법을 잘 이해하기 위해 튜토리얼을 살펴보겠습니다. 곱슬 곱슬하다 몇 가지 간단한 예를 사용하여 명령.

설치

사용하기 전에 곱슬 곱슬하다 명령, 시스템에 이미 설치되어 있는지 확인하십시오. 명령 사용 컬 --버전 여부를 확인하기 위해 곱슬 곱슬하다 설치됩니다.

경우에 곱슬 곱슬하다 설치되지 않은 경우 다음 단계를 사용하십시오.

Ubuntu 및 Debian 기반 시스템에서는 사용:

sudo apt-get 업데이트
sudo apt-get 설치 컬

RHEL, CentO 및 Fedora 배포판에서 사용:

sudo yum install 컬

이제 사용 컬 --버전 제대로 설치되었는지 확인하는 명령입니다.

컬 --버전

산출:

curl 7.58.0(x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1(+libidn2/2.0.4) nghttp2/1.30 0 librtmp/2.3 릴리스 날짜: 2018년 1월 24일 프로토콜: dict 파일 ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 기능: IPv6 대형 smtps 텔넷 tftp 파일 기능: Asynchberos GDN libz TLS-SRP HTTP2 UnixSockets HTTPS 프록시 PSL gaurav@ubuntu:~$ 

이제 사용할 준비가 되었습니다. 곱슬 곱슬하다 명령.

CURL 명령과 함께 사용 가능한 옵션

먼저 에서 사용할 수 있는 몇 가지 눈에 띄는 옵션을 살펴보겠습니다. 곱슬 곱슬하다 명령.

옵션설명
-유FTP 서버에서 파일을 다운로드하려면
-씨중단된 다운로드를 재개하려면
-영형결과를 저장하기 위해 곱슬 곱슬하다 미리 정의된 파일 이름이 있는 명령
-나정의된 URL의 HTTP 헤더를 가져오기 위해
-영형결과를 저장하기 위해 곱슬 곱슬하다 원래 파일 이름으로 명령
--libcurl사용하는 C 소스 코드를 출력하려면 라이브러리컬 지정된 옵션에 대해
-엑스프록시를 사용하여 URL에 액세스하려면
-#다운로드 상태를 표시하기 위해 진행률 표시줄을 표시하려면

CURL을 사용하여 웹 페이지 검색

그만큼 곱슬 곱슬하다 명령을 옵션 없이 사용하면 명령에 지정된 URL의 내용을 가져옵니다.

통사론:

컬 [URL]

예시:

컬 //allthings.how

산출:

gaurav@ubuntu:~$ curl //allthings.how html{overflow-x:hidden!important}html.i-amphtml-fie{height:100%!important;width:100%!important}html:not([amp4ads ]),html:not([amp4ads]) 본문{height:auto!important}html:not([amp4ads]) 본문{margin:0!important}본문{-webkit-text-size-adjust:100%;- moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}html.i-amphtml-singledoc.i-amphtml-embedded{-ms-touch -action:pan-y;touch-action:pan-y}html.i-amphtml-fie>body,html.i-amphtml-singledoc>body{overflow:visible!important}html.i-amphtml-fie:not (.i-amphtml-inabox)>body,html.i-amphtml-singledoc:not(.i-amphtml-inabox)>body{position:relative!important}html.i-amphtml-webview>body{overflow-x :hidden!important;overflow-y:visible!important;min-height:100vh!important}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!important ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;over flow-y:자동!중요;위치:절대!중요;상단:0!중요;왼쪽:0!중요;오른쪽:0!중요;하단:0!중요;여백:0!중요;표시:차단!중요} html.i-amphtml-ios-embed.i-amphtml-ios-overscroll,html.i-amphtml-ios-embed.i-amphtml-ios-overscroll>#i-amphtml-wrapper{-webkit-overflow-scrolling: touch!important}#i-amphtml-wrapper>body{position:relative!important;border-top:1px solid transparent!important}#i-amphtml-wrapper+body{visibility:visible}#i-amphtml-wrapper+body .i-amphtml-lightbox-element,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body[i-amphtml-lightbox] .i-amphtml-lightbox -element{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden!important;overflow-y:hidden!important}amp-instagram {패딩:54px 0px 0px!important;background-color:#fff}amp-iframe iframe{box-sizing:border-box!important}[amp-access][amp-access-hide]{display:none}[구독 -dialog],body:not(.i-amphtml-s ubs-ready) [subscriptions-action],body:not(.i-amphtml-subs-ready) [subscriptions-section]{display:none!important}amp-experiment,amp-live-list>[업데이트]{디스플레이 :none}.i-amphtml-jank-meter{position:fixed;background-color:rgba(232,72,95,0.5);bottom:0;right:0;color:#fff;font-size:16px; z-index:1000;padding:5px}amp-list[resizable-children]>.i-amphtml-loading-container.amp-hidden{display:none!important}amp-list [fetch-error], amp-list [load-more] [load-more-button],amp-list[load-more] [load-more-end],amp-list[load-more] [load-more-failed],amp-list[load -more] [load-more-loading]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[독립 실행형]{min-height:1px !important;display:block!important;height:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;width:100%!important}amp-story[독립형]{background- color:#202125!important;position:relative!important}amp-story-page{background-color:#757575}amp-story .amp-active>div,amp-story .i-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([distance]):not([active]){transform:translateY(1000vh)!중요 }amp-autocomplete{position:relative!important;display:inline-block!important}amp-autocomplete>input,amp-autocomplete>textarea{padding:0.5rem;border:1px solid rgba(0,0,0,0.33) }.i-amphtml-autocomplete-results,amp-autocomplete>input,amp-autocomplete>textarea{font-size:1rem;line-height:1.5rem}[amp-fx^=fly-in]{visibility:hidden} amp-script[nodom]{position:fixed!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;visibility:hidden} 

여기에서 웹페이지의 내용을 소스 코드로 터미널에 직접 가져옵니다.

옵션을 사용할 수 있습니다 -영형 그리고 -영형 와 더불어 곱슬 곱슬하다 이 콘텐츠를 파일에 저장하는 명령입니다.

언제 -영형 옵션을 사용하면 URL의 내용이 사용자 정의 파일 이름으로 현재 디렉토리에 저장됩니다.

통사론:

curl -o [사용자 정의_파일 이름] [URL]

예시:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % 총 수신 % % Xferd 평균 속도 시간 시간 시간 현재 다운로드 업로드 총 소비 왼쪽 속도 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$ 

이 예에서 URL 'allthings.how'의 콘텐츠는 현재 작업 디렉토리에 ath.html이라는 HTML 파일로 저장됩니다. 이 HTML 파일을 열면 저장된 웹페이지로 리디렉션됩니다.

CURL 명령을 사용하여 파일 다운로드

사용 -영형 curl 명령과 함께 옵션을 사용하면 콘텐츠나 웹 페이지 또는 다운로드 가능한 패키지도 파일로 저장되지만 이 파일은 원래 이름으로 저장됩니다.

예를 통해 이를 살펴보겠습니다.

예시:

여기서 내가 사용한 곱슬 곱슬하다 명령 -영형 '라는 Ubuntu 패키지를 다운로드하는 옵션체리트리_0.37.6-1.1_all.deb' 우분투 패키지 저장소에서.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % 총 수신 % % Xferd 평균 속도 시간 시간 시간 현재 다운로드 업로드 총 소비된 왼쪽 속도 100 613k 100 613k 0 0 220k 0 0:00:02 0:00:02 --:--:-- 220k gaurav@ubuntu:~/workspace$

산출:

trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$

따라서 패키지가 다운로드되어 현재 작업 디렉토리(CWD)에 원래 이름으로 저장됩니다.

파일을 다운로드하는 동안 진행률 표시줄 표시

사용하는 동안 사용할 수 있는 미적 수정이 하나 더 있습니다. 곱슬 곱슬하다 파일을 다운로드하는 명령입니다. 터미널에 진행률 표시줄 형태로 파일 다운로드 진행률을 볼 수 있습니다. 를 추가하기만 하면 됩니다. -# 파일을 다운로드하는 명령과 함께 옵션을 선택하십시오.

이 조정의 예를 살펴보겠습니다.

통사론:

컬 -# -O [URL]

예시:

gaurav@ubuntu:~/workspace$ curl -# -O //archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ######## #################################################### #################################################### ###################################### 100.0% gaurav@ubuntu:~/workspace$ 

산출:

gaurav@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$ 

이 출력에서 ​​'emacs-defaults_47.0.tar.xz' 내 CWD에 다운로드가 진행되는 동안 진행률 표시줄이 터미널에 표시됩니다.

CURL에서 중단된 다운로드 재개

많은 경우 더 큰 크기의 파일을 다운로드해야 하는 상황이 발생할 수 있습니다. 때때로 정전이나 네트워크 장애와 같은 몇 가지 이유로 인해 전체 파일을 다운로드하지 않고 중간 프로세스에서 다운로드가 중단될 수 있습니다. 눌러도 Ctrl+C 터미널에서 프로세스가 중단됩니다.

그만큼 곱슬 곱슬하다 명령과 함께 사용할 때 -씨 옵션은 중단된 다운로드를 재개합니다.

통사론:

컬 -C - -O [URL]

예시:

이 그림에서는 Ubuntu 웹사이트에서 Ubuntu 20.04 ISO 이미지를 다운로드하려고 했습니다.

총 평균 속도 gaurav@ubuntu:~/workspace$ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.16002509922-157 시간 시간 시간 현재 다운로드 업로드 총 소비 왼쪽 속도 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

여기에서 의도적으로 다운로드 프로세스를 중단했습니다. Ctrl+C.

이제 내가 사용할 -씨 옵션 곱슬 곱슬하다 동일한 소스 웹사이트에서 중단된 다운로드를 재개하는 명령입니다.

산출:

Regaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.16002540922 from1184373179.16002540922에서 전송 바이트 위치 1851392 % 총 수신 % % Xferd 평균 속도 시간 시간 시간 현재 다운로드 업로드 총 소비 왼쪽 속도 0 2654M 0 20.2M 0 57940 0 13:20:35 0:06:06 13:14:289 9827

다운로드가 중단된 위치에서 선택되었습니다.

CURL을 사용하여 FTP 서버에서 파일 다운로드

그것은 꽤 쉽습니다 곱슬 곱슬하다 명령을 사용하여 FTP 서버에서 파일을 다운로드합니다. -유 옵션. URL을 입력하기 전에 사용자 이름과 암호를 명령에 입력해야 합니다.

통사론:

curl -u [사용자 이름]:[비밀번호] [URL]

그림에서는 온라인 공개 FTP를 사용하겠습니다.

예시:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv 평균 % 총 수신 % % Xferd 속도 시간 시간 시간 현재 다운로드 업로드 총 소요 왼쪽 속도 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

여기에서 '라는 파일을 다운로드했습니다.16-Sep-20-16-0-0.csv' 이 ftp 서버에서 내 CWD에 원래 이름으로 저장했습니다. 다운로드한 파일을 확인하겠습니다. 명령.

gaurav@ubuntu:~/workspace$ ls -al total 1092 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 9월 16일 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 9월 16일 16:15 16-Sep-20-16-0-0.csv -rw r--r-- 1 gaurav gaurav 204429 9월 16일 11:45 ath.html gaurav@ubuntu:~/workspace$

CURL을 사용하여 여러 파일을 함께 다운로드

를 사용하여 한 번에 여러 파일 다운로드 곱슬 곱슬하다 명령은 매우 간단한 작업입니다. 당신은 그냥 사용 -영형 옵션 곱슬 곱슬하다 위의 블록에서 수행한 방식과 유사한 명령입니다.

통사론:

컬 -O [URL-1] -O [URL-2] -O[URL-n]

예시:

gaurav@ubuntu:~/workspace$ curl -O //archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O //archive.ubuntu. com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % 총 수신 % % Xferd 평균 속도 시간 시간 시간 현재 다운로드 업로드 총 소비 왼쪽 속도 100 63500 100 63500 0 0 55450 0 0: :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/workspace $ 

이 예에서는 Ubuntu 리포지토리에서 두 개의 다른 패키지를 다운로드했습니다.

산출:

gaurav@ubuntu:~/workspace$ ls -al total 9596 drwxrwxr-x 3 gaurav gaurav 4096 9월 16일 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 9월 16일 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 9월 16일 16:15 16-Sep-20-16-0-0.csv -rw r--r-- 1 gaurav gaurav 63500 9월 16일 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 9월 16일 16:29.4apache orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 Sep 16 11:45 ath.html gaurav@ubuntu:~/workspace$ 

curl 명령을 사용하여 두 패키지를 동시에 다운로드합니다.

CURL을 사용하여 URL의 HTTP 헤더 가져오기

모든 URL의 HTTP 헤더 필드에는 사용자 에이전트, 콘텐츠 유형, 인코딩 등과 같은 유용한 정보가 포함되어 있습니다. 이러한 헤더 파일은 메시지 본문에서 전송된 개체에 대한 정보도 제공합니다. 요청 및 응답에 대한 세부 정보도 이러한 HTTP 헤더에서 얻습니다.

당신이 사용할 수있는 곱슬 곱슬하다 명령 -나 URL의 이러한 HTTP 헤더를 가져오는 옵션입니다.

통사론:

컬 -I [URL]

예시:

gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK 콘텐츠 유형: text/html; charset=ISO-8859-1 P3P: CP="이것은 P3P 정책이 아닙니다! 자세한 내용은 g.co/p3phelp를 참조하십시오." 날짜: 2020년 9월 16일 수요일 11:17:00 GMT 서버: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Transfer-Encoding: 청크 만료: 2020년 9월 16일 수요일 11:17:00 GMT 캐시- 제어: 개인 Set-Cookie: 1P_JAR=2020-09-16-11; 만료=2020년 10월 16일 금요일 11:17:00 GMT; 경로=/; 도메인=.google.com; 설정 쿠키 보안 : NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; 만료=2021년 3월 18일 목요일 11:17:00 GMT; 경로=/; 도메인=.google.com; HttpOnly gaurav@ubuntu:~/workspace$

이 예에서는 'www.firefox.com‘.

CURL을 사용하여 C 소스 코드 가져오기

사용 곱슬 곱슬하다 명령 --libcurl 옵션은 C 소스 코드를 가져올 수 있습니다. 이것은 일반 사용자에게는 별 의미가 없지만 시스템 프로그래머, 보안 분석가 및 응용 프로그램 개발자에게는 매우 유용할 수 있습니다.

통사론:

curl [URL] > 파일 이름 --libcurl [code_filename]

예시:

이 예에서는 URL의 내용을 가져왔습니다. 모든 것.어떻게 라는 파일에 저장했습니다. gy_ath.html. C 소스 코드는 별도로 저장됩니다. 소스.c 파일.

컬 //www.allthings.how > gy_ath.html --libcurl 소스.c 

산출:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % 총 수신 % % Xferd 평균 속도 시간 시간 시간 현재 다운로드 업로드 총 소비 왼쪽 속도 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/작업 공간$

이제 다운로드한 파일을 확인해 보겠습니다.

gaurav@ubuntu:~/workspace$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 9월 16일 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 Sep 16 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 9월 16일 17:13 gy_ath.html -rw-r--r-- 1 gaurav 3ga 9월 16일 17:13 source.c gaurav@ubuntu:~/workspace$

그만큼 소스.c 파일에는 소스 코드가 포함되어 있습니다. 이것은 다음을 사용하여 터미널에 표시할 수 있습니다. 고양이 명령. 나는 아래 주어진 블록의 출력에서 ​​몇 줄을 넣었습니다.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* curl 명령줄 도구로 생성된 샘플 코드 ********** * 모든 curl_easy_setopt() 옵션이 문서화되어 있습니다. 위치: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html ************************************ ****************************************/ #include int main(int argc, char *argv[]) { CURLcode ret; 컬 *hnd; hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); curl_easy_setopt(hnd, CURLOPT_URL, "//www.allthings.how"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);

URL에 액세스하기 위해 CURL에서 프록시 사용

서론에서 논의한 바와 같이, 곱슬 곱슬하다 이 명령은 FTP, SMTP, HTTPS, SOCKS 등과 같은 광범위한 프로토콜을 지원합니다. 때로는 전송 속도를 높이고 신원을 보호하려는 경우 파일 전송을 위해 프록시 서버를 사용하는 것이 중요합니다. 곱슬 곱슬하다 명령은 다음을 추가하여 프록시 서버를 통해 파일을 전송하는 데 쉽게 사용할 수 있습니다. -엑스 그것에 대한 옵션.

예시:

curl -x [proxy_address]:[포트] [URL]

위의 예에서는 프록시에 인증이 필요하지 않다고 가정했습니다. 프록시가 전송을 시작하기 위해 인증이 필요한 경우 다음 명령을 사용할 수 있습니다.

curl -u [사용자 이름]:[비밀번호] -x [프록시 주소]:[포트] [URL]

이 간단한 방법을 사용하여 옵션이 있는 프록시 서버를 통해 파일을 전송할 수 있습니다. -엑스 와 함께 사용 곱슬 곱슬하다 명령.

결론

이 간단한 자습서에서는 곱슬 곱슬하다 명령은 터미널에서 직접 콘텐츠를 다운로드하는 데 도움이 됩니다. 또한 다양한 작업에 사용하기 위해 이 명령과 함께 사용할 수 있는 다양한 옵션에 대해서도 배웠습니다.