728x90
반응형
cURL
cURL은 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공하는 컴퓨터 소프트웨어 프로젝트이다.
크로스 플랫폼을 지원하므로 윈도우, 리눅스,OS X, 안드로이드 등 거의 대부분의 운영체제에서 지원하는 소프트웨어이다.
curl의 최대 장점은 역시 수많은 프로토콜의 지원이다.
이 강력한 도구는 정말 넓은 영역에서 사용되는데
curl를 사용할줄 안다면 불필요한 웹 서핑 없이 원하는 파일을 바로 내려받을 수 있다.
유용한 예제들이다.
1. 응답을 파일에 쓰기
$ curl http://jeonkkochbi.tistory.com/resource > foo.txt
그냥 옵션 없이 curl를 사용하면 표준출력으로 request 출력,
그러므로 예제처럼 리다이렉트해서 바로 파일에 쓸 수 있다.
-o : 파일이름 변경 가능
$ curl -o foo.txt http://jeonkkochbi.tistory.com/foo.txt
-O: 파일이름을 그대로 가져와 내려받기
$ curl -O http://jeonkkochbi.tistory.com/foo.txt
3. 여러 파일을 다운로드
$ curl -O http://jeonkkochbi.tistory.com/foo[0-9].txt
$ curl -O http://jeonkkochbi.tistory.com/foo-[a-z][0-9].txt
foo0.txt 부터 foo9.txt 파일을 다운로드 받는 것도 가능하다.
[]는 여러 번 조합할 수 있고, foo-a0.txt 부터 foo-z9.txt 까지 파일을 내려받는다.
$ curl -O http://jeonkkochbi.tistory.com/{foo,bar,baz}.txt
중괄호를 써서 리스트(list)자료형을 호출할 수도 있다. foo.txt, bar.txt, baz.txt 를 다운로드 받는다.
4. shell 의 for문 활용 (고급)
$ files="foo bar baz"
$ for name in files; do
curl -O "http://jeonkkochbi.tistory.com/${name}.txt"
done
wget ( 前 Geturl)
웹 서버로부터 콘텐츠를 가져오는 컴퓨터 프로그램으로, GNU 프로젝트의 일부이다. 이 프로그램의 이름은 월드 와이드 웹과 get에서 가져온 것이다.
지원 프로토콜
- HTTP
- HTTPS
- FTP
wget은 패키지 프로그램이므로 일부 배포판에서는 기본 탑재가 안 되어있다.
그러므로 설치를 한다.
Debian / Ubuntu
# apt install wget
Centos / Fedora
# yum install wget
Archlinux / Manjaro
# pacman -S wget
wget의 기본적인 사용법은 curl과 같다.
하지만 여러 기능이 추가된 리눅스용 프로그램인 것이다.
--limit-rate=RATE 옵션
# wget --limit-rate=80k https://jeonkkochbi.tistory.com/
다운로드 속도 제한
k = 킬로바이트
m = 메가바이트
g = 기가바이트
-b 옵션
백그라운드(Background) 다운로드
--user-agent=<Strings>
User Agent 우회기능
# wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://jeonkkochbi.tistory.com/
wget의 user agnet를 막아놓은 경우(매크로 방지) 이렇게 우회할 수 있다.
자동입력방지문자 기술(CAPTCHA)는 방어할 수 없으나 python 패키지 등을 활용하면 가능하다. (코딩의 영역이라 제외)
반응형
'GNU+linux > shell' 카테고리의 다른 글
리눅스 압축/압축풀기 총정리! (0) | 2021.08.22 |
---|---|
리눅스 시스템 정보 확인 명령어 ( CPU , RAM , VGA, BIOS , Kernel Version) (2) | 2021.04.15 |
리눅스 모듈 관리 명령어 - lsmod , modprobe 등을 알아보자! (0) | 2021.04.12 |
아치 리눅스 (Arch Linux) 디스코드 (Discord) 모듈 로드 문제 해결법 - 2021.03.31 (2) | 2021.03.31 |
VirtualBox 리눅스 (아치 리눅스) (0) | 2021.03.27 |