curl

Last-modified: 2008-06-09 (月) 13:25:25

[基本の使い方]
ホームページを取得し、画面に表示します。

$ curl http://www.jp.freebsd.org/man-jp/howto.html

取得したホームページをディスクに保存します。

$ curl -O http://www.jp.freebsd.org/man-jp/howto.html
$ curl -o a.html http://www.jp.freebsd.org/man-jp/howto.html
 

[サーバーとのやり取りを表示]

$ curl -I http://www.jp.freebsd.org/man-jp/howto.html
$ curl -v http://www.jp.freebsd.org/man-jp/howto.html
 

[プロキシを使用]

$ curl -v --proxy localhost:8001 -o /tmp/xxx.html http://aaaa.bbbb.com/xxx.html
 

[Help]
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only

-a/--append        Append to target file when uploading (F)
-A/--user-agent <string> User-Agent to send to server (H)
   --anyauth       Pick "any" authentication method (H)
-b/--cookie <name=string/file> Cookie string or file to read cookies from (H)
   --basic         Use HTTP Basic Authentication (H)
-B/--use-ascii     Use ASCII/text transfer
-c/--cookie-jar <file> Write cookies to this file after operation (H)
-C/--continue-at <offset> Resumed transfer offset
-d/--data <data>   HTTP POST data (H)
   --data-ascii <data>  HTTP POST ASCII data (H)
   --data-binary <data> HTTP POST binary data (H)
   --negotiate     Use HTTP Negotiate Authentication (H)
   --digest        Use HTTP Digest Authentication (H)
   --disable-eprt  Inhibit using EPRT or LPRT (F)
   --disable-epsv  Inhibit using EPSV (F)
-D/--dump-header <file> Write the headers to this file
   --egd-file <file> EGD socket path for random data (SSL)
   --tcp-nodelay   Use the TCP_NODELAY option
-e/--referer       Referer URL (H)
-E/--cert <cert[:passwd]> Client certificate file and password (SSL)
   --cert-type <type> Certificate file type (DER/PEM/ENG) (SSL)
   --key <key>     Private key file name (SSL/SSH)
   --key-type <type> Private key file type (DER/PEM/ENG) (SSL)
   --pass  <pass>  Pass phrase for the private key (SSL/SSH)
   --pubkey <key>  Public key file name (SSH)
   --engine <eng>  Crypto engine to use (SSL). "--engine list" for list
   --cacert <file> CA certificate to verify peer against (SSL)
   --capath <directory> CA directory (made using c_rehash) to verify
                   peer against (SSL)
   --ciphers <list> SSL ciphers to use (SSL)
   --compressed    Request compressed response (using deflate or gzip)
   --connect-timeout <seconds> Maximum time allowed for connection
   --create-dirs   Create necessary local directory hierarchy
   --crlf          Convert LF to CRLF in upload
-f/--fail          Fail silently (no output at all) on HTTP errors (H)
   --ftp-account <data> Account data to send when requested by server (F)
   --ftp-alternative-to-user String to replace "USER [name]" (F)
   --ftp-create-dirs Create the remote dirs if not present (F)
   --ftp-method [multicwd/nocwd/singlecwd] Control CWD usage (F)
   --ftp-pasv      Use PASV/EPSV instead of PORT (F)
   --ftp-skip-pasv-ip Skip the IP address for PASV (F)
   --ftp-ssl       Try SSL/TLS for ftp transfer (F)
   --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)
   --ftp-ssl-reqd  Require SSL/TLS for ftp transfer (F)
   --ftp-ssl-ccc   Send CCC after authenticating (F)
   --ftp-ssl-ccc-mode [active/passive] Set CCC mode (F)
-F/--form <name=content> Specify HTTP multipart POST data (H)
   --form-string <name=string> Specify HTTP multipart POST data (H)
-g/--globoff       Disable URL sequences and ranges using {} and []
-G/--get           Send the -d data with a HTTP GET (H)
-h/--help          This help text
-H/--header <line> Custom header to pass to server (H)
   --ignore-content-length  Ignore the HTTP Content-Length header
-i/--include       Include protocol headers in the output (H/F)
-I/--head          Show document info only
-j/--junk-session-cookies Ignore session cookies read from file (H)
   --interface <interface> Specify network interface/address to use
   --krb4 <level>  Enable krb4 with specified security level (F)
-k/--insecure      Allow connections to SSL sites without certs (H)
-K/--config        Specify which config file to read
   --libcurl <file> Dump libcurl equivalent code of this command line
-l/--list-only     List only names of an FTP directory (F)
   --limit-rate <rate> Limit transfer speed to this rate
   --local-port <num>[-num] Force use of these local port numbers
-L/--location      Follow Location: hints (H)
   --location-trusted Follow Location: and send authentication even
                   to other hostnames (H)
-m/--max-time <seconds> Maximum time allowed for the transfer
   --max-redirs <num> Maximum number of redirects allowed (H)
   --max-filesize <bytes> Maximum file size to download (H/F)
-M/--manual        Display the full manual
-n/--netrc         Must read .netrc for user name and password
   --netrc-optional Use either .netrc or URL; overrides -n
   --ntlm          Use HTTP NTLM authentication (H)
-N/--no-buffer     Disable buffering of the output stream
   --no-sessionid  Disable SSL session-ID reusing (SSL)
-o/--output <file> Write output to <file> instead of stdout
-O/--remote-name   Write output to a file named as the remote file
-p/--proxytunnel   Operate through a HTTP proxy tunnel (using CONNECT)
   --proxy-anyauth Pick "any" proxy authentication method (H)
   --proxy-basic   Use Basic authentication on the proxy (H)
   --proxy-digest  Use Digest authentication on the proxy (H)
   --proxy-ntlm    Use NTLM authentication on the proxy (H)
-P/--ftp-port <address> Use PORT with address instead of PASV (F)
-q                 If used as the first parameter disables .curlrc
-Q/--quote <cmd>   Send command(s) to server before file transfer (F/SFTP)
-r/--range <range> Retrieve a byte range from a HTTP/1.1 or FTP server
   --random-file <file> File for reading random data from (SSL)
   --raw           Pass HTTP "raw", without any transfer decoding (H)
-R/--remote-time   Set the remote file's time on the local output
   --retry <num>   Retry request <num> times if transient problems occur
   --retry-delay <seconds> When retrying, wait this many seconds between each
   --retry-max-time <seconds> Retry only within this period
-s/--silent        Silent mode. Don't output anything
-S/--show-error    Show error. With -s, make curl show errors when they occur
   --socks4 <host[:port]> Use SOCKS4 proxy on given host + port
   --socks5 <host[:port]> Use SOCKS5 proxy on given host + port
   --stderr <file> Where to redirect stderr. - means stdout
-t/--telnet-option <OPT=val> Set telnet option
   --trace <file>  Write a debug trace to the given file
   --trace-ascii <file> Like --trace but without the hex output
   --trace-time    Add time stamps to trace/verbose output
-T/--upload-file <file> Transfer <file> to remote site
   --url <URL>     Set URL to work with
-u/--user <user[:password]> Set server user and password
-U/--proxy-user <user[:password]> Set proxy user and password
-v/--verbose       Make the operation more talkative
-V/--version       Show version number and quit
-w/--write-out [format] What to output after completion
-x/--proxy <host[:port]> Use HTTP proxy on given port
-X/--request <command> Specify request command to use
-y/--speed-time    Time needed to trig speed-limit abort. Defaults to 30
-Y/--speed-limit   Stop transfer if below speed-limit for 'speed-time' secs
-z/--time-cond <time> Transfer based on a time condition
-0/--http1.0       Use HTTP 1.0 (H)
-1/--tlsv1         Use TLSv1 (SSL)
-2/--sslv2         Use SSLv2 (SSL)
-3/--sslv3         Use SSLv3 (SSL)
-4/--ipv4          Resolve name to IPv4 address
-6/--ipv6          Resolve name to IPv6 address
-#/--progress-bar  Display transfer progress as a progress bar