cURLy 가져오기: cURL로 할 수 있는 10가지 유용한 작업

cURLy 가져오기: cURL로 할 수 있는 10가지 유용한 작업

명령줄 도구에 대해 배우기 시작할 때 우리는 그것들을 단일 목적으로 보는 경향이 있습니다. 당신은 그것을 배웠습니다





cat

파일 내용을 인쇄하고,





ls

디렉토리의 모든 항목을 나열하고





du

디스크 공간 사용량을 보여줍니다. 그러나 많은 명령줄 도구에는 수십 가지 옵션이 있으며 모두 해당 문서에 깔끔하게 설명되어 있습니다.

man

파일. 그들 중 일부는 다른 명령과 결합할 때 놀라운 일을 할 수 있습니다.



물론 모든 사람이 모든 옵션을 기억해야 한다고 기대하는 것은 비합리적입니다. 이를 염두에 두고 때때로 우리의 Linux 명령에 대한 지식 , 새로운 용도를 발견할 수 있기 때문입니다.

이번에는 중점적으로 곱슬 곱슬하다 , HTTP(S), FTP, Telnet, LDAP, IMAP, POP3, SMTP 등과 같은 다양한 인터넷 프로토콜을 통해 데이터를 전송하는 도구입니다.





간단히 말해서 cURL은 클라이언트에서 서버로의 다양한 요청을 수행하고 특정 프로토콜과 관련 방법을 통해 이들 사이에 연결을 설정합니다. 예를 들어, HTTP 클라이언트로서 cURL은 콘텐츠를 보거나 다운로드(GET 요청 메서드)하거나 웹사이트의 양식을 통해 콘텐츠를 게시(POST 요청 메서드)하는 요청을 보낼 수 있습니다. 많은 웹 응용 프로그램 및 서비스에서 cURL이 API(응용 프로그래밍 인터페이스)와 상호 작용할 수 있습니다.

기능이 어느 정도 겹치기 때문에 cURL과 wget은 종종 서로 비교됩니다. 두 도구 모두 인터넷에서 콘텐츠를 다운로드할 수 있지만 wget은 재귀 다운로드, 웹 스크래핑을 지원하며 일반적으로 사용하기 더 간단합니다. 터미널에서 파일을 다운로드하려는 경우 wget이 더 나은 선택일 수 있습니다.





반면에 고급 HTTP 인증 방법이 필요하고 파일을 업로드하고 다운로드하려면 cURL을 배우는 것이 좋습니다. 또한 wget은 HTTP(S) 및 FTP만 지원하지만 cURL은 광범위한 프로토콜을 지원합니다. 이것은 cURL이 더 멋진 일을 할 수 있다는 것을 의미하며 여기에 그것을 증명할 10가지 예가 있습니다.

1. 날씨 보고서 받기

누군가 터미널에서 날씨를 확인하라고 하면 지루한 숫자가 표시될 것입니다. 이 명령이 아닙니다.

curl http://wttr.in/LOCATION

정보는 CLI 애플리케이션에서 제공합니다. 우리는 간다 하지만 설치를 원하지 않는 경우 cURL은 웹 프론트엔드 wttr.in에서 예측을 가져올 수 있습니다. 필요한 것은 예측을 원하는 위치뿐입니다. 도시 이름, 공항 코드 또는 현재 IP 주소를 입력하기만 하면 됩니다. 다음을 입력하면 새로운 기능이 달의 위상에 대한 정보를 표시합니다.

curl wttr.in/Moon

2. 파일 다운로드 및 다운로드 재개

파일 다운로드는 일반적으로 브라우저에서 수행하는 작업입니다. 때때로 다운로드 관리자를 사용하고 싶을 것입니다. 예를 들어 한 번에 여러 파일을 다운로드하거나 다운로드를 일시 중지하려는 경우입니다. cURL은 동시 다운로드에 널리 사용되지는 않지만(wget 대신 권장됨) 강력한 옵션(스위치)을 결합하여 해당 용도로 계속 사용할 수 있습니다. 먼저 파일에 대한 직접 링크가 필요합니다. 이 예에서는 Linux Voice 매거진의 PDF를 사용합니다.

curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

대문자 O 스위치(-O)는 cURL이 기본 파일 이름(일반적으로 링크 자체의 파일)으로 파일을 저장하도록 합니다. 다른 이름으로 저장하려면 소문자 o 다음에 새 이름을 사용합니다.

curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

기본적으로 파일은 현재 디렉토리에 저장됩니다.

pwd

명령). 다른 곳에 저장하려면 -o 스위치 뒤에 경로를 제공하십시오. -C - 스위치를 사용하면 cURL이 다운로드를 재개할 수 있습니다. 터미널에서 Ctrl+C를 눌러 일시 중지하고 동일한 다운로드 명령을 다시 실행하여 다시 시작합니다.

cURL은 다운로드 속도, 총 파일 크기, 경과 시간 등에 대한 정보가 포함된 열과 함께 테이블과 같은 형식으로 다운로드 진행률을 표시합니다. 이것이 마음에 들지 않으면 cURL 명령에 -# 또는 --progress-bar를 추가하여 더 간단한 진행률 표시줄을 선택할 수 있습니다.

한 번에 여러 파일을 다운로드하려면 링크를 차례로 나열하면 됩니다.

curl -O file1.txt -O file2.pdf -O file3.zip

다른 명령줄 도구를 사용하여 Tumblr 블로그에서 모든 PNG 및 JPG 이미지를 일괄 다운로드할 수 있습니다.

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

이 경우,

cut

그리고

grep

파일 이름에 대한 정보를 수집하고 지정된 확장자를 가진 파일만 표시되도록 형식을 지정합니다. 마지막 파이프 없이 명령을 실행하는 경우:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

기준을 충족하는 파일 목록만 얻을 수 있지만 실제로 다운로드되지는 않습니다. 블로그가 표준 페이지 매김을 사용하는 경우 cURL은 페이지 범위에서 이미지 목록을 가져올 수 있습니다.

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

대괄호 안의 숫자를 변경하여 범위를 수정할 수 있습니다. 다시 말하지만 이 명령은 이미지만 나열합니다. 다운로드하려면 이미지를 저장하려는 디렉토리에서 전체 명령을 실행하십시오.

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

잘 아시는 분이라면 정규식 , 이 명령의 모양과 효율성을 개선하고 결과를 주석으로 공유할 수 있습니다.

3. FTP 서버에서 파일 관리

요즘 FTP에 대해 많이 듣지는 않지만 이것이 구식이라는 의미는 아닙니다. 사실, 많은 오픈 소스 프로젝트와 Linux 배포판은 FTP 서버에서 소프트웨어를 공유합니다. FTP는 cURL에서 지원하므로 파일을 업로드 및 다운로드하는 간단한 FTP 클라이언트로 사용할 수 있습니다. 다음 디렉토리에 액세스하여 FTP 서버에서 파일을 탐색할 수 있습니다.

curl ftp://ftp.debian.org/debian/

하위 디렉토리에 들어가려면 해당 이름과 슬래시(/)를 차례로 입력합니다.

파일 다운로드는 이전 섹션에서 설명한 HTTP 다운로드와 유사합니다. -o 또는 -O를 사용하고 다운로드를 일시 중지하려면 -C -를 추가할 수 있습니다.

curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso

cURL은 재귀 다운로드를 지원하지 않지만(wget은 지원한다는 사실을 기억하십시오!), 여전히 한 번에 다양한 파일을 다운로드할 수 있습니다. 유일한 조건은 파일 이름이 패턴을 따르는 것입니다. 예를 들어 월페이퍼의 이름이 모두 'wallpaperNUMBER'인 월페이퍼 호스팅 서버에서 다운로드할 수 있습니다.

curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg

일부 FTP 서버는 파일을 다운로드하기 전에 인증이 필요합니다. cURL을 사용하면 -u(사용자) 옵션으로 로그인할 수 있습니다.

curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt

-T(전송) 옵션을 사용하여 FTP 서버에 파일을 업로드할 수도 있습니다.

curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com

여기에서 여러 파일을 범위로 정의할 수도 있습니다. 이 기능을 '글로빙'이라고도 합니다. 파일 이름이 패턴을 따르지 않으면 중괄호(

-T '{file1.txt,image27.jpg}'

). 반대로 이름이 비슷한 경우 Tumblr 다운로드 예제와 동일한 논리를 적용하고 대괄호(

-T 'photo[1-50].jpg'

). 파일이 현재 디렉토리에 없는 경우 파일의 전체 경로를 제공해야 합니다.

4. 웹사이트가 다운되었는지 확인

우리는 모두 거기에 있었다. 꼭 필요한 웹사이트가 갑자기 작동을 멈춥니다. 그러면 Facebook이 로드되지 않습니다. 진정한 첫 번째 세계 문제에 직면했을 때 당신은 무엇을 합니까?

구글링을 하거나, 친구에게 테스트를 요청하거나, 웹사이트가 다운되었는지 알려주는 단일 서비스 사이트 중 하나를 사용할 수 있습니다. 또는 터미널을 실행하고 cURL을 실행할 수 있습니다.

curl -Is https://www.twitter.com -L | grep HTTP/

대문자 I 스위치(-I)는 웹 페이지의 HTTP 헤더를 확인하고 -L(위치) 옵션을 추가하여 cURL이 리디렉션을 따르도록 합니다. 즉, 전체 Facebook URL을 입력할 필요가 없습니다. 그냥 써 facebook.com -L 덕분에 cURL이 나머지를 처리합니다. 리디렉션이 있는 경우 자체 HTTP 상태와 함께 표시됩니다.

우리가 관심을 갖고 있는 메시지는 '200 OK'이며, 이는 웹사이트에서 모든 것이 정상임을 의미합니다. 실제로 다운된 경우 다음과 같이 표시됩니다.

HTTP 상태 코드는 이해가 허용하는 범위 내에서만 정보를 제공합니다. 이 방법은 웹사이트가 성공적으로 처리된 요청을 나타내는 상태 코드를 반환할 수 있기 때문에 완전히 신뢰할 수 없지만 브라우저에서 열면 비어 있습니다. 그래도 대부분의 경우 실제 상황과 일치해야 하며 어떤 일이 일어나고 있는지 알려야 합니다.

5. 단축 URL 확장

단축 URL이 본질적으로 나쁜 것은 아닙니다. 그들 없이는 Twitter 및 기타 문자 제한 소셜 네트워크에서 링크를 공유하기 어려울 것입니다. 일부 URL 단축 서비스는 유용한 분석도 제공합니다. 그러나 누군가가 단축 URL 뒤에 악의적인 콘텐츠를 숨기려고 하거나 트롤이 Rickroll(또는 훨씬 더 나쁜 것)을 마스킹할 위험이 항상 있습니다. 어떤 이유에서든 단축된 URL이 의심스럽다면 cURL이 URL을 확장하고 정확히 어디로 연결되는지 알아내는 데 도움이 될 수 있습니다.

curl -sIL http://buff.ly/1lTcZSM | grep ^Location;

또는

curl -sI http://buff.ly/1lTcZSM | sed -n 's/Location: *//p';

cURL을 다음과 결합할 수 있습니다.

grep

또는

sed

; 주요 차이점은 형식에 있습니다. Sed는 모든 Linux 사용자가 알아야 하는 도구 중 하나이며 이 사용 사례 및 기타 몇 가지 사용 사례에서 cURL을 보완합니다. cURL이 단축된 URL에서 파일을 다운로드할 수 있다는 것을 잊지 마십시오(URL이 실제로 파일을 가리키는 경우).

curl -L -o filename.txt http://short.url

구문은 다른 cURL 다운로드와 동일하며 -L 옵션은 단축 URL에서 원본 URL로의 리디렉션을 처리합니다.

6. ASCII 아트에 대한 감사의 표시

분명히 이것은 특별히 유용하지 않지만 멋지게 보입니다. 의 도움으로

pv

, 데이터 진행 상황을 모니터링하는 유틸리티인 cURL은 터미널에 ASCII 애니메이션을 표시할 수 있습니다.

curl -s http://artscene.textfiles.com/vt100/wineglas.vt | pv -L9600 -q

-s 및 -q 옵션은 두 명령을 모두 자동(자동) 모드로 유지합니다. 여기서 -L 옵션은 pv 명령을 참조하며 초당 바이트 단위로 데이터 전송 속도를 수정할 수 있습니다. 즉, 애니메이션이 너무 빠르거나 느리게 움직이는 경우 해당 숫자로 재생해 보십시오. 애니메이션 외에도 cURL은 일반 정적 ASCII 아트를 표시할 수 있습니다.

웹에는 모든 종류의 ASCII 아트가 있는 웹사이트가 많이 있습니다. 놀라울 정도로 상세하고 고품질의 조각부터 이상하고 어리석고 심지어 NSFW 자료에 이르기까지입니다. 이 디지털 아트 기술은 1960년대로 거슬러 올라가며 오늘날 인터넷 문화와 역사의 일부가 되었습니다. 텍스트와 이미지를 ASCII 아트로 변환 . 터미널을 장식하거나 친구에게 장난을 치는 데 사용할 수 있습니다. 배를 띄우는 모든 것이 가능합니다.

7. 소셜 미디어 실험

터미널에서 소셜 미디어를 사용하는 것은 새로운 것이 아닙니다. 이미 Linux용 명령줄 Twitter 클라이언트를 보여 주었습니다. 온라인 사교 도구로 cURL로 전환하지 않을 수도 있지만 여기에 설명된 대로 이를 사용하여 Facebook에 게시할 수 있다는 점을 아는 것이 좋습니다. 기술적으로 cURL이 자체적으로 수행하지 않는다는 것을 알 수 있습니다. 도구의 조합으로 작업이 완료됩니다.

Twitter의 경우 cURL을 사용하여 터미널에서 직접 관리할 수 있었습니다. 그런 다음 Twitter는 API를 변경했으며 이제 Twurl이라는 Twitter용 특수 cURL 클라이언트가 있습니다. 특히 초보자에게 가장 사용하기 쉬운 것은 아니며 Twitter Ad Platform과의 인증이 필요합니다. 이것은 개발자나 고급 사용자에게는 의미가 있지만 명령줄에서 트윗하려는 경우에는 그다지 중요하지 않습니다. 그래도 트위터를 즐길 수 있는 방법이 있습니다. cURL을 사용하여 사용자의 팔로워 수를 확인할 수 있습니다.

curl -s https://twitter.com/username | grep -o '[0-9,]* Followers';

8. 외부 IP 주소 찾기

로컬 IP 주소를 찾는 것은 충분히 쉽습니다.

10 최고의 크로스 플랫폼 멀티 플레이어 모바일 게임
ifconfig

또는 네트워크 관리 애플릿에 문의하십시오. 외부 IP의 경우 대부분의 사람들이 전문 웹사이트를 사용하여 이 정보를 얻습니다. 그래도 일부 작업은 터미널에서 수행하는 것이 더 쉽고 이것이 그 중 하나일 수 있습니다. cURL 명령에 대한 별칭을 만들 수도 있습니다. cURL과 협력하는 여러 온라인 서비스가 있습니다.

curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com

일부는 외부 IP 주소에 대해 자세히 알려줄 수 있습니다.

curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41

서비스를 선택하기만 하면 됩니다. 우유부단한 경우 백업 솔루션으로 별칭에 모두 포함시키십시오.

9. 텍스트 붙여넣기 및 이미지 공유

작업 흐름을 깨는 것은 생산성과 집중력에 결코 좋지 않습니다. 터미널에서 대부분의 작업을 수행하는 경우 몇 개의 파일을 공유하기 위해 브라우저로 전환하는 것은 성가시지만 않으면 비실용적일 수 있습니다. 운 좋게도 일부 pastebin 및 파일 공유 서비스는 cURL과 함께 작동하도록 태어났기 때문에 사용자 계정 없이 터미널에서 바로 사용할 수 있습니다.

클빈 그리고 Sprunge.us 유사한 구문을 가지고 있습니다. Clbin을 사용하여 로컬 파일 또는 명령 출력을 파이프하면 업로드된 텍스트에 대한 링크가 반환됩니다.

cat textfile.txt | curl -F 'clbin=<-' https://clbin.com

또한 이미지 업로드(PNG, JPG 및 GIF)도 지원합니다.

curl -F 'clbin=@image.png' https://clbin.com

대신 Sprunge.us를 사용하려면 다음을 입력하세요.

cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us

Sprunge.us는 현재 이미지 업로드를 지원하지 않습니다.

익.아이오 몇 가지 추가 기능과 함께 이전 두 서비스와 동일한 원칙을 기반으로 합니다. 파일을 업로드하려면 다음을 입력하십시오.

cat file.txt | curl -F 'f:1=<-' ix.io

또는

curl -F 'f:1=@file.txt' ix.io

업로드된 텍스트에 대한 링크를 받으면 해당 URL을 수정하여 구문 강조 표시를 표시할 수 있습니다(

ix.io/yourpaste+

,

ix.io/yourpaste/

, 또는

ix.io/yourpaste/language

특정 스크립팅 또는 프로그래밍 언어용). 링크를 볼 수 있는 횟수를 제한할 수도 있습니다.

'read:1'

값:

cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io

Ix.io는 주로 소스 코드 또는 시스템 로그와 같은 텍스트 기반 파일을 위한 것입니다. 다양한 파일 형식을 업로드하려면 다음을 사용하십시오. Transfer.sh . 이미지, 파일 암호화를 지원하고 2주 동안 파일을 온라인 상태로 유지합니다. Transfer.sh에 최대 5GB의 데이터를 업로드할 수 있습니다. 방법은 다음과 같습니다.

curl --upload-file bunnies.jpg https://transfer.sh/bunnies.jpg

업로드된 파일의 이름은 자유롭게 정의할 수 있습니다. 여러 파일을 업로드하려면 -F 옵션을 사용하여 하나씩 나열합니다.

curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/

10. Gmail에서 읽지 않은 메일 확인

이메일 관련 프로토콜(SMTP, POP, IMAP)에 대한 세부 정보를 탐구하려는 경우 cURL에서 잠금을 해제할 수 있는 엄청난 잠재력이 있습니다. 빠른 이메일 확인을 위해 이 명령이 수행됩니다. Gmail 피드를 구문 분석하고 출력 형식(이메일 제목 및 보낸 사람)을 다음과 같이 지정합니다.

tr

,

awk

,

sed

및/또는

grep

명령. 이 솔루션은 터미널에 액세스할 수 있는 모든 사람에게 로그인 자격 증명을 노출하기 때문에 매우 안전하지 않습니다. 첫 번째 버전은 보낸 사람의 이름을 표시하고 두 번째 버전은 읽지 않은 이메일 제목만 인쇄합니다.


curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | tr -d '
' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n 's/

curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | grep -oPm1 '(?<=)[^<]+' | sed '1d'

cURL은 또 무엇을 할 수 있습니까?

cURL은 독립 실행형 명령으로 거의 사용되지 않습니다. 대부분의 사람들은 스크립트나 응용 프로그램의 일부로 사용합니다. 그래도 여기에서 설명한 것처럼 cURL을 사용하여 실용적인 단일 라이너를 만드는 것이 가능합니다. 이러한 예제의 대부분은 스마트 명령줄 해킹의 환상적인 소스인 CommandLineFu에서 채택되었으며 이를 고정된 것으로 간주해서는 안 됩니다.

충분한 지식과 경험으로 모든 명령을 수정하거나 다르게 형식을 지정하거나 더 나은 솔루션으로 완전히 대체할 수 있습니다. 제안된 cURL 명령을 개선할 수 있습니까? cURL의 다른 멋진 용도를 알고 있습니까? 의견에 팁을 공유하십시오.

이미지 크레딧: 명령줄 내부 소개 Flickr를 통한 Osama Khalid 제작.

공유하다 공유하다 트위터 이메일 디스크 공간을 확보하려면 이러한 Windows 파일 및 폴더를 삭제하십시오.

Windows 컴퓨터에서 디스크 공간을 비워야 합니까? 다음은 디스크 공간을 확보하기 위해 안전하게 삭제할 수 있는 Windows 파일 및 폴더입니다.

다음 읽기
관련 항목
  • 리눅스
  • FTP
  • 다운로드 관리
  • 단말기
저자 소개 이바나 이사도라 데비치(24개 기사 게재)

Ivana Isadora는 프리랜서 작가이자 번역가이며 Linux 애호가이자 KDE 팬입니다. 그녀는 무료 및 오픈 소스 소프트웨어를 지원하고 홍보하며 항상 신선하고 혁신적인 앱을 찾고 있습니다. 연락 방법 알아보기 여기 .

Ivana Isadora Devcic이 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.