소개
이 랩에서는 두 가지 일반적인 명령줄 도구인 curl과 wget을 사용하여 인터넷에서 파일을 다운로드하는 방법을 배우게 됩니다. 이 도구들은 웹 서버에서 파일과 데이터를 검색하는 데 필수적이므로, 모든 Linux 사용자 또는 개발자에게 유용한 기술입니다.
curl은 다양한 프로토콜에서 파일을 다운로드하고 HTTP 요청을 수행할 수 있는 다재다능한 도구입니다. wget은 주로 웹 서버에서 파일을 다운로드하는 데 사용되는 더 간단한 도구입니다. 이 랩을 마치면 두 도구를 모두 사용하여 파일을 다운로드하고 기본적인 HTTP 요청을 수행하는 데 익숙해질 것입니다.
curl 로 파일 다운로드
curl을 사용하여 웹사이트에서 간단한 HTML 파일을 다운로드하는 것으로 시작해 보겠습니다.
터미널을 엽니다.
프로젝트 디렉토리로 이동합니다. 터미널에서 다음을 입력합니다.
cd /home/labex/project
이 명령은 현재 디렉토리를 /home/labex/project로 변경합니다. cd 명령은 "change directory" (디렉토리 변경) 를 의미합니다.
- 이제
curl을 사용하여 웹 페이지를 다운로드해 보겠습니다. 다음 명령을 입력합니다.
curl http://example.com -o example.html
이 명령을 자세히 살펴보겠습니다.
curl은 우리가 사용하고 있는 프로그램의 이름입니다.http://example.com은 우리가 다운로드하려는 웹 페이지의 URL 입니다.-o example.html은curl에게 다운로드한 내용을example.html이라는 파일로 저장하도록 지시합니다.-o옵션은 "output" (출력) 을 의미합니다.
- 명령을 실행한 후,
curl은 내용을 다운로드하여 현재 디렉토리에example.html로 저장합니다. 파일이 다운로드되었는지 확인하기 위해 디렉토리의 내용을 나열할 수 있습니다.
ls -l example.html
ls 명령은 파일과 디렉토리를 나열합니다. -l 옵션은 자세한 (long) 목록을 제공합니다. 출력에서 example.html을 볼 수 있으며, 크기와 마지막 수정 시기에 대한 정보도 함께 표시됩니다.
다운로드한 파일 검토
이제 파일을 다운로드했으니, 내용물을 살펴보겠습니다.
- 파일의 내용을 표시하기 위해
cat명령을 사용합니다. 다음을 입력합니다.
cat example.html
cat은 "concatenate" (연결) 를 의미하지만, 파일의 내용을 표시하는 데 일반적으로 사용됩니다. example.com 홈페이지의 HTML 내용을 볼 수 있습니다. HTML 에 익숙하지 않다면 텍스트가 뒤섞여 보일 수 있지만, 걱정하지 마세요. 웹 브라우저가 웹 페이지를 표시하는 데 사용하는 원시 코드입니다.
- 때로는 파일이 매우 클 수 있으며, 처음 부분만 보고 싶을 수 있습니다. 이를 위해
head명령을 사용할 수 있습니다.
head -n 10 example.html
이 명령은 파일의 처음 10 줄을 보여줍니다. -n 10 옵션은 head에게 10 줄을 표시하도록 지시합니다. 이 숫자를 변경하여 더 많거나 적은 줄을 볼 수 있습니다.
- 파일의 끝 부분을 보려면
tail명령을 사용할 수 있습니다.
tail -n 10 example.html
이것은 파일의 마지막 10 줄을 보여줍니다.
이러한 명령은 특히 큰 파일을 다룰 때, 파일을 완전히 열지 않고도 빠르게 검사하는 데 유용합니다.
curl 을 사용하여 여러 파일 다운로드
curl은 단일 명령으로 여러 파일을 다운로드할 수 있습니다. 두 개의 파일을 한 번에 다운로드해 보겠습니다.
- 먼저,
example.com에서 index 페이지와 about 페이지를 모두 다운로드하고 내용을 표시해 보겠습니다.
curl http://example.com/index.html http://example.com/about.html
이 명령은 두 페이지의 내용을 터미널에 출력합니다. 두 개의 HTML 문서가 차례로 인쇄되는 것을 볼 수 있습니다. 이는 빠른 확인에 유용할 수 있지만, 파일을 저장하려는 경우에는 이상적이지 않습니다.
- 이러한 파일을 표시하는 대신 저장하려면
-O옵션을 사용합니다. 대문자-O는curl에게 URL 에서 파일 이름을 사용하도록 지시합니다.
curl -O http://example.com/index.html -O http://example.com/about.html
이 명령은 두 파일을 다운로드하고 원래 이름 (index.html 및 about.html) 으로 현재 디렉토리에 저장합니다. 이번에는 내용이 터미널에 인쇄되지 않습니다.
- 파일이 다운로드되었는지 확인하기 위해 디렉토리의 내용을 나열할 수 있습니다.
ls -l index.html about.html
두 파일이 크기와 마지막 수정 시간과 함께 나열되는 것을 볼 수 있습니다.
- 여러 파일을 다운로드하되 사용자 지정 이름을 지정하려면 여러 개의
-o옵션을 사용할 수 있습니다.
curl -o custom_index.html http://example.com/index.html -o custom_about.html http://example.com/about.html
이렇게 하면 파일이 custom_index.html 및 custom_about.html로 저장됩니다.
wget 을 사용하여 파일 다운로드
이제 파일을 다운로드하는 또 다른 인기 있는 도구인 wget을 살펴보겠습니다. wget은 단순함과 대용량 다운로드 또는 불안정한 연결을 처리하는 능력으로 인해 종종 선호됩니다.
wget을 사용하여 example.com 에서 파일을 다운로드하는 것으로 시작해 보겠습니다.
wget http://example.com/index.html
wget은 파일을 다운로드하는 동안 진행률 표시줄을 표시합니다. 이는 파일의 어느 부분이 다운로드되었는지, 완료하는 데 얼마나 걸릴 수 있는지 확인할 수 있으므로 더 큰 파일에 특히 유용합니다.
- 기본적으로
wget은 파일을 원래 이름으로 저장합니다. 다른 이름을 지정하려면-O옵션을 사용합니다 (소문자 o 를 사용하는 curl 과 달리 대문자 O 임에 유의하십시오).
wget -O custom_name.html http://example.com/index.html
이렇게 하면 파일이 custom_name.html로 저장됩니다. 진행률 표시줄은 계속 표시되지만 파일은 지정된 이름으로 저장됩니다.
특정 디렉토리로 파일 다운로드
종종 현재 작업 디렉토리가 아닌 특정 디렉토리로 파일을 다운로드하려는 경우가 있습니다. curl과 wget 모두 이를 허용하지만, 서로 다른 방법을 사용합니다.
- 먼저, 파일을 다운로드할 새 디렉토리를 생성해 보겠습니다.
mkdir downloads
이렇게 하면 현재 위치에 downloads라는 새 디렉토리가 생성됩니다.
- 이제
curl을 사용하여 이 디렉토리에 파일을 다운로드해 보겠습니다.
curl -o downloads/curl_file.html http://example.com
curl의 -o 옵션을 사용하면 경로를 포함하여 출력 파일을 지정할 수 있습니다. 이 명령은 example.com 에서 콘텐츠를 다운로드하여 downloads 디렉토리에 curl_file.html로 저장합니다.
- 다음으로,
wget을 사용하여 동일한 디렉토리에 파일을 다운로드해 보겠습니다.
wget -P downloads http://example.com/index.html
wget의 -P 옵션은 "prefix"를 의미하며, 파일을 저장할 디렉토리를 지정할 수 있습니다. 이 명령은 example.com 에서 index.html을 다운로드하여 downloads 디렉토리에 저장합니다.
- 두 파일이 모두
downloads디렉토리에 다운로드되었는지 확인할 수 있습니다.
ls -l downloads
출력에 curl_file.html과 index.html이 모두 표시되어야 합니다.
- 현재 디렉토리를 변경하지 않고 이러한 파일의 내용을 보려면 전체 경로와 함께
cat을 사용할 수 있습니다.
cat downloads/curl_file.html
cat downloads/index.html
이렇게 하면 다운로드한 파일의 내용을 확인할 수 있습니다.
요약
축하합니다! curl과 wget을 사용하여 인터넷에서 파일을 다운로드하는 랩을 성공적으로 완료했습니다. 배운 내용을 요약해 보겠습니다.
curl을 사용하여 개별 파일을 다운로드하고 사용자 지정 이름으로 저장했습니다.- 단일
curl명령으로 여러 파일을 다운로드하는 방법을 살펴보았습니다. wget을 사용하여 기본 이름과 사용자 지정 이름으로 파일을 다운로드하는 방법을 배웠습니다.wget을 사용하여 파일을 재귀적으로 다운로드하는 연습을 했습니다.curl과wget을 모두 사용하여 특정 디렉토리에 파일을 다운로드하는 방법을 배웠습니다.
이러한 기술은 웹 콘텐츠 검색부터 소프트웨어 패키지 다운로드까지 Linux 에서 많은 작업의 기본입니다. Linux 여정을 계속 진행하면서 이러한 도구가 다양한 스크립팅 및 자동화 작업에 매우 유용하다는 것을 알게 될 것입니다.
curl과 wget 모두 탐색할 수 있는 더 많은 옵션과 기능을 가지고 있다는 것을 기억하십시오. 고급 기능에 대해 자세히 알아보려면 man 페이지 (man curl 및 man wget) 를 확인하십시오.
Linux 에서 파일 및 웹 콘텐츠 작업을 더 능숙하게 하기 위해 이러한 도구를 계속 연습하고 탐색하십시오!



