Linux의 Curl 명령 및 예제

Linux의 Curl 명령 및 예제

2022-06-01 last update

8 minutes reading curl terminal
curl는 서버에서 데이터를 전송하거나 서버로 데이터를 전송하는 명령행 유틸리티로 사용자의 상호작용 없이 작업할 수 있도록 설계되었다.사용curl, HTTP, HTTPSSCP 등 지원되는 프로토콜 중 하나를 사용하여 데이터를 다운로드하거나 업로드할 수 있습니다.
, SFTP
, 및 FTP
. curl 전송 복구, 대역폭 제한, 에이전트 지원, 사용자 인증 등 다양한 옵션을 제공합니다.이 강좌에서, 우리는 실제 예시와 가장 흔히 볼 수 있는curl 옵션에 대한 상세한 설명을 통해curl 도구를 어떻게 사용하는지 보여 드리겠습니다.

롤러 설치

현재 대부분의 Linux 버전에curl 패키지가 미리 설치되어 있다.시스템에 Curl 패키지가 설치되어 있는지 확인하려면 컨트롤러를 열고 curl 를 입력하고 enter 키를 누르십시오.설치되어 있는 경우curl, 시스템이 인쇄됩니다curl: try 'curl --help' or 'curl --manual' for more information.그렇지 않으면 유사한 curl command not found 내용이 표시됩니다.설치되지 않은 경우curl 릴리스 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.

Ubuntu 및 Debian에 Curl 설치

sudo apt updatesudo apt install curl

CentOS 및 Fedora에 Curl 설치

sudo yum install curl

롤오버 사용 방법

curl 명령의 문법은 다음과 같다.
curl [options] [URL...]
가장 간단한 형식으로 아무 옵션도 없이 호출할 때 curl 지정된 자원을 표준 출력에 표시한다.예를 들어, 실행할 example.com 홈 페이지를 검색하려면:
curl example.com
이 명령은 터미널 창에 example.com 홈 페이지의 원본 코드를 인쇄합니다.프로토콜이 지정되지 않은 경우 curl 사용할 프로토콜을 추측하려고 하면 기본값은 HTTP 입니다.

파일에 출력 저장

명령을 저장하려면 curl 또는 -o 옵션을 사용합니다.소문자-O는 미리 정의된 파일 이름을 사용하여 파일을 저장합니다. 다음 예제에서는 -o:
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
대문자vue-v2.6.10.js 원본 파일 이름을 사용하여 파일을 저장합니다.
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

여러 파일 다운로드

한 번에 여러 파일을 다운로드하려면 여러 개-O 옵션을 사용하고 다운로드할 파일의 URL을 사용하십시오.다음 예제에서 Arch Linux와 Debian iso 파일을 다운로드하고 있습니다.
curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \     -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

계속 다운로드

옵션을 사용하여 계속 다운로드할 수 있습니다.만약 연결이 큰 파일을 다운로드하는 동안 중단된다면, 이것은 매우 유용할 것입니다. 처음부터 다운로드하지 않고 이전 파일을 계속할 수 있습니다.예를 들어, Ubuntu 18.04 iso 파일을 다운로드하는 데 다음 명령을 사용하고 있다면,
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

URL에 대한 HTTP 헤더 가져오기

HTTP 헤더는 사용자 에이전트, 내용 유형, 인코딩 등 정보를 포함하는 짝퉁으로 구분된 키 값 쌍입니다.헤더는 요청이나 응답과 함께 클라이언트와 서버 간에 전달됩니다.(adsbygoogle=window.adsbygoogle | |[]).푸시({});-O 옵션을 사용하여 지정된 리소스에 대해서만 HTTP 헤더를 가져옵니다.
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

웹 사이트에서 HTTP/2 지원 여부 테스트

특정 URL이 새 URL을 지원하는지 확인합니다HTTP/2 protocol
, -C --I 옵션을 사용하여 HTTP 헤더를 가져옵니다:
curl -I --http2 https://www.ubuntu.com/
-I 옵션 알림 --http2 이 조용한 상태에서 실행되고 진도표와 오류 메시지를 숨깁니다.원격 서버가 HTTP/2를 지원하는 경우 -s 인쇄 curl:
curl -I --http2 -s https:/// | grep HTTP
그렇지 않으면 응답 curl:
HTTP/2 200
curl 버전 HTTP/2.0 200 이상이 있으면 HTTP/1.1 200 옵션을 사용할 필요가 없습니다. 기본적으로 모든 HTTPS 연결에 HTTP/2가 활성화되어 있기 때문입니다.

추적 리디렉션

기본적으로 7.47.0 는 HTTP 위치 헤더를 따르지 않습니다.비www 버전을 검색하려고 하면 파일을 다운로드할 때 --http2 옵션 지시 curl 가 최종 목표에 도달할 때까지 모든 방향을 따른다는 것을 알 수 있습니다.
HTTP/1.1 200 OK

사용자 에이전트 변경

페이지의 원본을 가져오는 것이 아니라원격 서버는 Curl 사용자 프록시를 차단하거나 방문자 장치와 브라우저에 따라 다른 내용을 되돌려받도록 설정할 수 있습니다.이 경우 다른 브라우저를 시뮬레이션하려면 google.com 옵션을 사용합니다.예를 들어, Firefox 60을 시뮬레이션하려면
curl google.com

최대 전송 속도 지정

-L 옵션을 사용하여 데이터 전송 속도를 제한할 수 있습니다.이 값은 바이트, 기가바이트 (테이프 curl, 메가바이트 (테이프 -A 접미사) 및 기가바이트 (테이프 --limit-rate 접미사) 로 표시할 수 있습니다.다음 예에서 k Go 바이너리 파일을 다운로드하고 다운로드 속도를 1mb로 제한합니다.
curl -L google.com
이 옵션은 m 사용 가능한 모든 대역폭을 사용하지 않도록 합니다.

FTP를 통한 파일 전송

를 사용하여 보호된 FTP 서버에 액세스하려면 g 옵션을 사용하여 다음과 같이 사용자 이름과 암호를 지정합니다.
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
로그인하면 사용자 홈 디렉토리의 모든 파일과 디렉토리가 나열됩니다.다음 구문을 사용하여 FTP 서버에서 단일 파일을 다운로드할 수 있습니다.
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
파일을 FTP 서버로 업로드하려면 curl 를 사용하고 업로드할 파일 이름을 따라야 합니다.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

쿠키 보내기

특정 쿠키를 사용하여 원격 리소스에 액세스하거나 디버깅을 요청하는 경우가 있습니다.기본적으로 curl 자원을 요청할 때 쿠키를 보내거나 저장하지 않습니다.서버에 쿠키를 보내려면 curl 스위치를 사용하고 쿠키를 포함하는 파일 이름이나 문자열을 따라가십시오.예를 들어, Oracle Java JDK 다운로드rpm file-u -T 값이 curl 인 쿠키를 전달해야 합니다.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

에이전트 사용

-b 는 HTTP, HTTPS, SOCKS 등 다양한 유형의 에이전트를 지원합니다.프록시 서버를 통해 데이터를 전송하려면 jdk-10.0.2_linux-x64_bin.rpmoraclelicense 옵션을 사용하여 프록시 URL을 따릅니다.다음 명령은 a 포트curl의 프록시에서 지정한 자원을 다운로드합니다.
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
프록시 서버에서 인증이 필요한 경우 -x --proxy 옵션을 사용하여 사용자 이름과 비밀번호 (콜론 192.168.44.1 와 구분하십시오.
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

결론

8888 는 원격 호스트에서 데이터를 전송하거나 원격 호스트로 전송하는 명령행 도구입니다.그것은 문제 해결, 파일 다운로드 등에 매우 유용하다.이 강좌에서 보여준 예는 간단하지만 -U 명령의 작업 방식을 이해하는 데 도움을 주기 위해 가장 자주 사용하는 --proxy-user 옵션을 보여 줍니다.user:password에 대한 자세한 내용은 를 참조하십시오. Curl Documentation
페이지(adsbygoogle=window.adsbygoogle | |[]).푸시({});질문이나 피드백이 있으면 언제든지 의견을 발표하십시오.