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 | 응답 헤더만 출력 |