윈도우 PowerShell에서 `curl` 명령어를 사용할 때, 몇 가지 중요한 차이점이 있습니다.
기본적으로, PowerShell에서 `curl`은 실제로 `curl` 명령어 자체가 아닌 `Invoke-WebRequest`라는 PowerShell cmdlet의 별칭으로 매핑되어 있습니다.
이로 인해 Linux에서 `curl`로 사용되는 옵션과 매개변수가 PowerShell에서 직접적으로 동일하게 작동하지 않을 수 있습니다.
예를 들어, `-k` 옵션은 `curl`에서 SSL 인증서 검증을 비활성화하는 데 사용되지만, PowerShell의 `Invoke-WebRequest`에서는 `-SkipCertificateCheck` 매개변수를 사용하여 같은 기능을 수행합니다. `-F` 옵션은 `curl`에서 멀티파트/폼-데이터를 보내는 데 사용되지만, `Invoke-WebRequest`에서는 `-Form` 매개변수를 사용하여 유사한 작업을 수행합니다.
PowerShell에서 `curl` 사용 시의 예
SSL 인증서 검증을 건너뛰고 싶을 때
#powershell
Invoke-WebRequest -Uri "https://example.com" -SkipCertificateCheck
멀티파트/폼-데이터를 보낼 때
#powershell
Invoke-WebRequest -Uri "https://example.com/upload" -Method Post -Form @{file = Get-Item "path\to\file"}
실제 `curl`을 PowerShell에서 사용하려면, 다음과 같이 풀 경로를 사용하거나,
Linux와 같은 옵션을 사용하려면 Linux 환경에서 실행되는 `curl`의 Windows 버전을 설치해야 할 수 있습니다:
#powershell
C:\Path\to\curl.exe -k -F "key=value"
혹은 최근 버전의 Windows 10 및 Windows 11에서는 Windows Subsystem for Linux (WSL)을 설치하여,
Linux 배포판 내에서 직접 Linux 버전의 `curl`을 사용할 수도 있습니다.
직접 `curl` 명령어 사용하기
Windows에서 직접 `curl`을 사용하고 싶다면, PowerShell 대신 cmd(명령 프롬프트)를 사용하거나,
PowerShell 내에서 `curl.exe`라고 명확하게 지정해야 할 수도 있습니다.
이렇게 하면 Windows가 PowerShell cmdlet 대신 실제 `curl` 실행 파일을 사용하게 됩니다.
이 외 해볼 수 있는 고민
Q1:PowerShell에서 웹 요청을 보낼 때 인증 헤더를 추가하는 방법은 무엇인가요?
Q2:PowerShell에서 REST API를 호출하고 JSON 응답을 처리하는 예제는 어떻게 될까요?
Q3:Windows Subsystem for Linux (WSL)을 설치하고 사용하는 기본 단계는 무엇인가요?
'무근본 IT 지식 공유 > 무근본 운영체제(OS)' 카테고리의 다른 글
[무근본리눅스] 리눅스 curl get 요청 파라미터와 함께 보내는 방법 ! (0) | 2024.11.13 |
---|---|
Windows CMD에서 PC 모델을 확인하는 명령어를 알아보자 (0) | 2024.07.09 |
리눅스쉘 / ls명령 시 조회되는 폴더별 ls 결과의 라인 수를 각각 출력하는 방법(예시) (1) | 2023.11.23 |
[TCP] NETSTAT명령어 사용 시 CLOSE_WAIT 상태란? (0) | 2023.11.22 |
리눅스 Curl https 인증서 오류 무시 옵션 (0) | 2023.11.21 |
댓글