Operating System

[linux] curl 명령어

worldint 2024. 7. 24. 14:24

curl 이란?

Client Url의 약자로

클라이언트에서 url을 사용해서 서버와 데이터를 송수신하는 명령어 툴이다.

리눅스, 윈도우, 맥 등 다양한 os에서 쓰이는 프로그램이고 다양한 프로토콜을 지원한다
https://curl.se/

지원 프로토콜등 자세한 사항은 여기서 확인 가능하다

 

 

터미널에서 사용 방식은 아래와 같다

curl [option] [url]

 

 

homebrew설치를 예로들면

curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh

위의 명령어중 욥션의 의미는 

-f : 오류발생시 출력없이 실패( 조용히 종료시키기 )

-s : 진행 내역이나 메세지를 출력하지 않기

-S : --show-error  Show error even when -s is used : -s 옵션 사용시 아무 메세지도 출력이 안되는데 error는 출력 되도록 하는것

-L : --location : 해당 url로의 요청의 응답이( 301, 302 코드 )로 오면 리다이렉트된 url로 요청을 보냄

즉 -fsSL 옵션은

"오류가 발생하면 조용히 종료시키고 진행상황도 보고하지 말고 조용히 진행시키는데 에러발생시에는 에러내용 출력해주고 리다이렉트가 필요하면 리다이렉트를 시켜줘라"

라는 옵션임

 

 

자주 사용되는 option들

short long 설명
-k --insecure https URL 접속 시 SSL 인증서 검사 없이 연결
-i --head HTTP 응답 헤더를 표시
-d --data POST 요청이나 JSON 방식과 같이 request body에 데이터를 담을 때 사용
-o --output -o [파일명] 을 사용하면 출력 결과를 파일로 저장
-O --remote-name 파일 저장 시 remote의 file 이름으로 저장
-s --silent 진행 내역이나 메시지 등을 출력하지 않는다.
-X --request Request에 사용할 메서드(GET, POST, PUT 등)를 지정
-v --verbose 동작하는 과정을 출력
-A --user-agent 특정 브라우저인 것처럼 동작하기위한 설정
-H --header 요청할 헤더 설정
-L --location 서버에서 HTTP (301,302 -리다이렉트) 응답이 오면 리다이렉트 URL로 따라감 (--max-redirs 횟수)로 지정 가능
-D --dump-header<file> 파일에 응답 헤더를 기록
-u --user 사용자 아이디 / 비밀번호 입력
-f --fail 오류 발생 시 출력 없이 실패
-T --upload-file 로컬 파일을 서버로 전송
-C --continue-at 중지된 다운로드를 재시작
-J --remote-header-name 응답 헤더에 있는 파일 이름으로 파일 저장 (curl 7.20 이상)
-I --head 응답 헤더만 출력