はじめに
サーバーとの間でデータを転送するには、必要なネットワークプロトコルをサポートするツールが必要です。 Linuxには、この目的のために作成された複数のツールがあります。最も人気のあるのはcurlとwgetです。
このチュートリアルでは、 curl
の使用方法を説明します コマンドを実行し、使用可能なオプションの完全なリストを提供します。
前提条件
- 端末へのアクセス
- インターネットアクセス
- curlがインストールされました
curlコマンドとは何ですか?
curl
(「クライアントURL」の略)は、さまざまなネットワークプロトコルを介したデータ転送を可能にするコマンドラインツールです。関連するURLと、送受信する必要のあるデータを指定することにより、Webサーバーまたはアプリケーションサーバーと通信します。
curl
ポータブルなクライアント側のURL転送ライブラリであるlibcurlを利用しています。コマンドラインで直接使用することも、スクリプトに含めることもできます。 curl
の最も一般的な使用例 は:
- インターネットからファイルをダウンロードする
- エンドポイントテスト
- デバッグ
- エラーログ
curl構文
基本的なcurl
構文は次のとおりです。
curl [options/URLs]
例:
curl https://www.gnu.org/gnu/gnu.html
curl
の後に指定されたURLにあるHTMLコンテンツが出力されます。 コマンド。
ファイルにつながるURLを指定する場合は、 curl
を使用できます。 ファイルをローカルシステムにダウンロードするには:
curl [url] > [local-file]
プログレスバーには、これまでにダウンロードされたファイルの量が表示されます。
コマンドの一部であるURLの構文は、プロトコルによって異なります。 1つの部分が異なる複数のURLは、中かっこを使用して一緒に書き込まれます:
http://example.{first,second,third}.com
英数字シリーズは角かっこで書かれています:
ftp://ftp.url.com/file[1-100].txt
ネストされたシーケンスはサポートされていませんが、複数のシーケンスが許可されています:
http://url.com/archive[2010-2020]/vol[1-4]/part{a,b,c}.html
curlプロトコル
curlは、データ転送用の多数のプロトコルをサポートしています。以下の完全なリストを見つけてください。
プロトコル | 説明 |
---|---|
DICT | 単語の意味について辞書サーバーにクエリを実行するための辞書ネットワークプロトコル。 |
ファイル | curlを使用してローカルファイルシステムからファイルを取得するためのURLスキーム。 |
FTP、FTPS | ファイル転送プロトコル。クライアントとサーバー間のファイル転送に使用されます。 FTPSは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
GOPHER、GOPHERS | HTTPの前身であるインターネットドキュメントを検索、取得、および配布するための古いプロトコル。 GOPHERSは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
HTTP、HTTPS | ハイパーテキスト転送プロトコル。Webおよびインターネットデータ転送に使用されます。 HTTPSは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
IMAP、IMAPS | インターネットメッセージアクセスプロトコル。電子メールのアクセスと管理に使用されます。 IMAPSは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
LDAP、LDAPS | ライトウェイトディレクトリアクセスプロトコル。分散ディレクトリ情報へのアクセスと管理に使用されます。 LDAPSは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
MQTT | メッセージキューテレメトリトランスポート-小型デバイス(通常はIoTシステム)間のデータ交換用のプロトコル。 |
POP3、POP3S | PostOfficeProtocolバージョン3-サーバーから電子メールを取得するためのプロトコル。 POP3Sは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
RTMP | リアルタイムメッセージングプロトコル-オーディオ、ビデオ、およびその他のデータのストリーミングプロトコル。 |
RTSP | リアルタイムストリーミングプロトコル。ストリーミングメディアサーバーの管理に使用されます。 |
SCP | SecureCopy-SSHサーバーとの間でファイルをコピーするためのプロトコル。 |
SFTP | SSHファイル転送プロトコル-SSH接続を使用するファイル転送プロトコルのバージョン。 |
SMB、SMBS | サーバーメッセージブロック-ファイルおよびコンピューター周辺機器への共有アクセスを管理するためのプロトコル。 SMBSは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
SMTP、SMPTS | Simple MailTransferProtocol-電子メールを簡単に送信するための電子メールプロトコル。 SMTPSは、SSL/TLSセキュリティレイヤーが追加された同じプロトコルのバージョンです。 |
TELNET | 双方向のインタラクティブなテキスト指向の通信のためのアプリケーション層プロトコル。 |
TFTP | トリビアルファイル転送プロトコル。リモートホストとの間でファイルをアップロードまたはダウンロードするために使用されます。 |
curlコマンドオプション
curl
さまざまなオプションを受け入れるため、非常に用途の広いコマンドになります。オプションは1つまたは2つのダッシュで始まります。追加の値が必要ない場合は、一点鎖線のオプションを一緒に記述できます。たとえば、 -O
を利用するコマンド 、 -L
、および -v
オプションは次のように書くことができます:
curl -OLv [url]
利用可能なすべてのオプションのリストを以下に示します。
オプション | 説明 |
---|---|
-abstract-unix-socket | ネットワーク経由ではなく、抽象Unixソケット経由で接続します。 例: curl --abstract-unix-socket socketpath https://example.com |
-alt-svc<ファイル名> | alt-svcパーサーを有効にします。 例: curl --alt-svc svc.txt https://example.com |
-anyauth | Curlは、指定されたHTTPURLに対して最も安全な認証方法を見つけて使用します。 例: curl --anyauth --user me:pass https://example.com |
-a、-append | ターゲットファイルに追加します。 例: curl --upload-file local --append ftp://example.com/ |
-aws-sigv4 | AWSV4署名認証を使用します。 例: curl --aws-sigv4 "aws:amz:east-2:es" --user "key:secret" https://example.com |
-基本 | HTTP基本認証を使用します。 例: curl -u name:password --basic https://example.com |
-cacert | 指定されたファイルを証明書の検証に使用します。 例: curl --cacert CA-file.txt https://example.com |
-capath | 指定されたディレクトリを使用して証明書を探します。 例: curl --capath / local / directory https://example.com |
-cert-status | サーバー証明書のステータスを確認します。 例: curl --cert-status https://example.com |
-cert-type | 提供された証明書のタイプを指定します。認識されるタイプはPEM (デフォルト)、 DER 、 ENG およびP12 。 例: curl --cert-type ENG --cert file https://example.com |
-E、-cert | SSLベースのプロトコルを使用する場合は、提供されている証明書ファイルを使用してください。 例: curl --cert certfile --key keyfile https://example.com |
-ciphers<暗号のリスト> | 接続で使用する暗号を提供します。 例: curl --ciphers ECDHE-ECDSA-AES256-CCM8 https://example.com |
-compressed-ssh | 組み込みのSSH圧縮を有効にします。 例: curl --compressed-ssh sftp://example.com/ |
-圧縮 | 圧縮された応答の受信を要求します。 例: curl --compressed https://example.com |
-K、-config | コマンドラインに書き込む代わりに、curl引数を含むテキストファイルを提供します。 例: curl --config file.txt https://example.com |
-connect-timeout | curl接続が続く可能性のある最大時間を指定します。 例: curl --connect-timeout 30 https://example.com |
-connect-to | 特定のサーバークラスターノードにリクエストを送信するための接続ルールを提供します。 例: curl --connect-to example.com:443:example.net:8443 https://example.com |
-C、-continue-at | 指定されたオフセットでファイル転送を再開します。 curl -C 400 https://example.com |
-c、-cookie-jar<ファイル名> | Cookieを保存するファイルを指定します。 curl -c store.txt https://example.com |
-b、--cookie | ファイルからCookieを読み取ります。 例: curl -b cookiefile https://example.com |
-create-dirs | -output のローカルディレクトリを作成します オプション。 例: curl --create-dirs --output local / dir / file https://example.com |
-create-file-mode | ファイル作成時に設定するモードを指定します。 例: curl --create-file-mode 0777 -T localfile sftp://example.com/new |
-crlf | LFをCRLFに変換します。 curl--crlf-Tファイルftp://example.com/ |
-crlfile | ピア証明書の証明書失効リストを提供します。 curl --crlfile revoke.txt https://example.com |
-曲線<アルゴリズムリスト> | SSLセッションを確立するための曲線を提供します。 例: curl --curves X25519 https://example.com |
-data-ascii | -d を参照してください 、-データコード> 。 例: curl --data-ascii @file https://example.com |
-data-binary | 追加の処理なしで、指定されたとおりにデータを投稿します。 curl --data-binary @filename https://example.com |
-data-raw | -d と同じ 、-データコード> 、ただし、@文字は他の文字と同じように扱われます。 curl --data-raw "@ [email protected] @" https://example.com |
-data-urlencode | -d と同じ 、-データコード> 、ただし、URLエンコードを実行します。 例: curl --data-urlencode name =val https://example.com |
-d、-data | POSTリクエストでHTTPサーバーにデータを送信します。 例: curl -d "name =curl" https://example.com |
-委任 | サーバーが資格情報を委任できる時期を指定します。 例: curl --delegation "always" https://example.com |
-ダイジェスト | HTTPダイジェスト認証を有効にします。 例: curl -u name:password --digest https://example.com |
-disable-eprt | アクティブなFTP転送のEPRTおよびLPRTコマンドを無効にします。 例: curl --disable-eprt ftp://example.com/ |
-disable-epsv | パッシブFTP転送のEPSVを無効にします。 例: curl --disable-epsv ftp://example.com/ |
-q、-disable | curlrc構成ファイルの読み取りを無効にします。 curl -q https://example.com |
-disallow-username-in-url | ユーザー名を含むURLが指定されている場合は終了します。 例: curl --disallow-username-in-url https://example.com |
-dns-interface | 発信DNS要求のインターフェースを指定します。 例: curl --dns-interface eth0 https://example.com |
-dns-ipv4-addr | DNS要求の送信元となるIPv4アドレスを指定します。 例: curl --dns-ipv4-addr 10.1.2.3 https://example.com |
-dns-ipv6-addr | DNS要求の送信元となるIPv6アドレスを指定します。 例: curl --dns-ipv6-addr 2a04:4e42 ::561 https://example.com |
-dns-servers | DNSサーバーの独自のリストを指定します。 例: curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com |
-doh-cert-status | -cert-status DNS-over-HTTPSの場合。 例: curl --doh-cert-status --doh-url https://doh.server https://example.com |
-doh-insecure | -k 、-安全でない DoHの場合。 例: curl --doh-insecure --doh-url https://doh.server https://example.com |
-doh-url | ホスト名解決用のDoHサーバーを指定します。 例: curl --doh-url https://doh.server https://example.com |
-D、-dump-header | プロトコルヘッダーを書き込むためのファイルを指定します。 例: curl --dump-header store.txt https://example.com |
-egd-file | EGDソケットのパスを指定します。 例: curl --egd-file / path / here https://example.com |
-engine | OpenSSL暗号化エンジンを指定します。 例: curl --engineflavor https://example.com |
-etag-compare | ファイルからのETagの読み取りを要求します。 例: curl --etag-compare etag.txt https://example.com |
-etag-save | HTTPETagをファイルに保存します。 例: curl --etag-save etag.txt https://example.com |
-expect100-timeout | 100-continue応答の最大待機時間。 例: curl --expect100-timeout2.5-Tファイルhttps://example.com |
-fail-early | 転送で最初のエラーを検出したら、curlに失敗して終了するように指示します。 例: curl --fail-early https://example.com https://two.example |
-fail-with-body | サーバーがコード400以上のエラーを返した場合、curlはコンテンツを保存し、エラー22を返します。 例: curl --fail-with-body https://example.com |
-f、-fail | サーバーがエラーを返した場合、curlはサイレントに失敗し、エラー22を返します。 例: curl --fail https://example.com |
-false-start | TLSハンドシェイクで不正スタートを使用します。 例: curl --false-start https://example.com |
-form-string | -F に類似 、 -form 、ただし、値の文字列は文字どおりに処理されます。 例: curl --form-string "data" https://example.com |
-F、-form | 送信を使用してフォームをエミュレートします 押されたボタン。 @ signは、コンテンツを強制的にファイルにします。 <コード> signは、ファイルのコンテンツ部分のみを抽出します。 例: curl --form "name =curl" --form "[email protected]" https://example.com |
-ftp-account | FTPサーバーのアカウントデータを指定します。 例: curl --ftp-account "account_data" ftp://example.com/ |
-ftp-alternative-to-user | ユーザー名とパスワードの認証が失敗した場合に送信するコマンドを指定します。 例: curl --ftp-alternative-to-user "U53r" ftp://example.com |
-ftp-create-dirs | 指定されたディレクトリが存在しない場合、curlはそれを作成しようとします。 例: curl --ftp-create-dirs -T file ftp://example.com/dirs/one/file |
-ftp-method | FTP経由でファイルを取得するために使用する方法を指定します。使用可能なメソッドはmulticwd 、 nocwd 、および singlecwd 。 例: curl --ftp-method multicwd ftp://example.com/dir1/dir2/file |
-ftp-pasv | パッシブデータ接続モードを使用します。 例: curl --ftp-pasv ftp://example.com/ |
-P、-ftp-port<アドレス> | FTP接続のデフォルトの役割を逆にします。 例: curl -P eth0 ftp:/example.com |
-ftp-pret | PASV/EPSVの前にPRETコマンドを送信します。 例: curl --ftp-pret ftp://example.com/ |
-ftp-skip-pasv-ip | サーバーによって提案されたIPアドレスを使用しないでください。 curlは制御接続IPを使用します。 例: curl --ftp-skip-pasv-ip ftp://example.com/ |
--ftp-ssl-ccc-mode<アクティブ/パッシブ> | クリアコマンドチャネル(CCC)モードを設定します。 例: curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/ |
-ftp-ssl-ccc | 認証が完了すると、SSL / TLSレイヤーが削除され、暗号化されていない通信が可能になります。 例: curl --ftp-ssl-ccc ftps://example.com/ |
-ftp-ssl-control | ログインにSSL/TLSを使用し、データ転送の開始時に暗号化を停止します。 例: curl --ftp-ssl-control ftp://example.com |
-G、-get | POSTの代わりにHTTPGETリクエストを使用します。 例: curl --get -d "tool =curl" -d "age =old" https://example.com |
-g、-globoff | URLグロブパーサーを無効にします。 例: curl -g "https://example.com/ {[]}}}}" |
-happy-eyeballs-timeout-ms | デュアルスタックホストに接続するには、HappyEyeballsアルゴリズムを使用します。 例: curl --happy-eyeballs-timeout-ms 500 https://example.com |
-haproxy-protocol | HAProxyPROXYプロトコルv1ヘッダーを使用します。 例: curl --haproxy-protocol https://example.com |
-I、-head | ヘッダーのみを取得します。 例: curl -I https://example.com |
-H、-header | HTTPリクエストで送信される追加のヘッダーを指定します。 例: curl -H "X-First-Name:Joe" https://example.com |
-h、--help | 特定のカテゴリのヘルプを参照してください。 すべて 使用可能なすべてのオプションを一覧表示します。 例: curl --help all |
-hostpubmd5 | 32桁の16進文字列を渡します。 例: curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/ |
-hsts<ファイル名> | HSTSを有効にします。 例: curl --hsts cache.txt https://example.com |
-http0.9 | HTTPバージョン0.9の応答を受け入れます。 例: curl --http0.9 https://example.com |
-0、-http1.0 | HTTPバージョン1.0を使用します。 例: curl --http1.0 https://example.com |
-http1.1 | HTTPバージョン1.1を使用します。 例: curl --http1.1 https://example.com |
-http2-prior-knowledge | HTTPバージョン2.0を使用します。サーバーがこのHTTPバージョンをサポートしていることがわかっている場合は、このオプションを使用してください。 例: curl --http2-prior-knowledge https://example.com |
-http2 | HTTPバージョン2.0の使用を試みます。 例: curl --http2 https://example.com |
-http3 | HTTPバージョン3.0を使用します。これは実験的なオプションです。 例: curl --http3 https://example.com |
-ignore-content-length | Content-Lengthヘッダーを無視します。 例: curl --ignore-content-length https://example.com |
-i、-include | 出力にHTTP応答ヘッダーを含める必要があることを指定します。 例: curl -i https://example.com |
-k、-insecure | curlが安全でない接続で機能することを許可します。 例: curl --insecure https://example.com |
-interface | アクションを実行するためのインターフェースを指定します。 例: curl --interface eth0 https://example.com |
-4、-ipv4 | 名前をIPv4アドレスにのみ解決します。 例: curl --ipv4 https://example.com |
-6、-ipv6 | 名前をIPv6アドレスにのみ解決します。 例: curl --ipv6 https://example.com |
-j、-junk-session-cookies | セッションCookieを破棄します。 例: curl --junk-session-cookies -b Cookies.txt https://example.com |
-keepalive-time | キープアライブプローブを送信する前の接続のアイドル時間を指定します。 例: curl --keepalive-time 30 https://example.com |
-key-type | 秘密鍵の種類を指定します。使用可能なタイプはPEM (デフォルト)、 DER 、および ENG 。 例: curl --key-type ENG --key here https://example.com |
-key | 秘密鍵を含むファイルを指定します。 例: curl --certcertificate --key here https://example.com |
-krb | Kerberos認証を有効にして使用します。利用可能なレベルはclear 、安全 、機密 、およびプライベート (デフォルト)。 例: curl --krb clear ftp://example.com/ |
-libcurl | 指定されたコマンドライン操作のCソースコードを取得します。 例: curl --libcurl client.c https://example.com |
-limit-rate | 最大アップロードおよびダウンロード転送速度を指定します。 例: curl --limit-rate 100K https://example.com |
-l、-list-only | 名前のみの表示を強制します。 例: curl --list-only ftp://example.com/dir/ |
-local-port | 接続に使用するポート番号を指定します。 例: curl --local-port 1000-3000 https://example.com |
-location-trusted | -L に類似 、-場所コード> 、ただし、名前とパスワードをすべてのリダイレクトに送信できます。 例: curl --location-trusted -u user:pass https://example.com |
-L、-location | curlがリダイレクトに従うことを許可します。 例: curl -L https://example.com |
-login-options | 電子メールサーバー認証のログインオプションを指定します。 例: curl --login-options'AUTH =*'imap://example.com |
-mail-auth | IDとして単一のアドレスを提供します。 例: curl --mail-auth [email protected] -T mail smtp://example.com/ |
-mail-from | 単一の「差出人」アドレスを提供します。 例: curl --mail-from [email protected] -T mail smtp://example.com/ |
-mail-rcpt-allowfails | 受信者の1人が失敗した場合に、curlがSMTP会話を続行できるようにします。 例: curl --mail-rcpt-allowfails --mail-rcpt[メール保護]smtp://example.com |
-mail-rcpt | 単一の「宛先」アドレスを指定します。 例: curl --mail-rcpt[メール保護]smtp://example.com |
-M、-manual | カールのマニュアルを読んでください。 例: curl --manual |
-max-filesize | ダウンロードするファイルの最大サイズを指定します。 例: curl --max-filesize 500K https://example.com |
-max-redirs | -location の場合のリダイレクトの最大数を指定します アクティブです。 例: curl --max-redirs 3 --location https://example.com |
-m、-max-time<小数秒> | 操作の最大時間を指定します。 例: curl --max-time 5.52 https://example.com |
-metalink | メタリンクリソースを指定します。このオプションは、curlの最新バージョンでは無効になっています。 例: curl --metalink file https://example.com |
-交渉 | SPNEGO認証を有効にします。 例: curl --negotiate -u:https://example.com |
-netrc-file | -n のように 、 -netrc 、ただし、使用するファイルを指定できます。 例: curl --netrc-file netrc https://example.com |
-netrc-optional | -n のように 、 -netrc 、ただし、netrcの使用はオプションです。 例: curl --netrc-optional https://example.com |
-n、-netrc | netrcファイルでログイン情報を検索します。 例: curl --netrc https://example.com |
-:、-next | このオプションを使用して、URLリクエストを分離します。 例: curl -I https://example.com --next https://example.net/ |
-no-alpn | ALPNTLS拡張を無効にします。 例: curl --no-alpn https://example.com |
-N、-no-buffer | 出力ストリームバッファを無効にします。 例: curl --no-buffer https://example.com |
-no-keepalive | キープアライブメッセージを無効にします。 例: curl --no-keepalive https://example.com |
-no-npn | NPNTLS拡張を無効にします。 例: curl --no-npn https://example.com |
-no-progress-meter | プログレスバーを無効にしますが、その他のメッセージは表示します。 例: curl --no-progress-meter -o store https://example.com |
-no-sessionid | SSLセッションIDのキャッシュを無効にします。 例: curl --no-sessionid https://example.com |
-noproxy | プロキシを使用してはならないホストを一覧表示します。 例: curl --noproxy "www.example" https://example.com |
-ntlm-wb | -ntlm のように 、だけでなく、認証をntlmauthに渡します。 例: curl --ntlm-wb -u user:password https://example.com |
-ntlm | NTLM認証を有効にします。 例: curl --ntlm -u user:password https://example.com |
-oauth2-bearer | OAUTH2.0のベアラートークンを提供します。 例: curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com |
-output-dir | 出力ファイルディレクトリを指定します。 例: curl --output-dir "tmp" -O https://example.com |
-o、-output | 出力をファイルに保存します。出力はstdoutに表示されません。 例: curl -o file https://example.com -o file2 https://example.net |
-parallel-immediate | 新しい接続または多重化されたストリームを待つよりも並列接続を優先します。 例: curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2 |
-parallel-max | 並列接続の最大数を指定します。 例: curl --parallel-max 100 -Z https://example.com ftp://example.com/ |
-Z、-parallel | 転送を並行して実行します。 例: curl --parallel https://example.com -o file1 https://example.com -o file2 |
--pass | 秘密鍵のパスフレーズを指定します。 例: curl --pass secret --key file https://example.com |
-path-as-is | カールがマージされないようにする/./ および/../ シーケンス。 例: curl --path-as-is https://example.com/../../etc/passwd |
- -pinnedpubkey | curlが使用する公開鍵を指定します。 例: curl --pinnedpubkey keyfile https://example.com |
-post301 | 301リダイレクト後にcurlがPOSTからGETリクエストに変換しないようにします。 例: curl --post301 --location -d "data" https://example.com |
-post302 | 302リダイレクト後にcurlがPOSTからGETリクエストに変換しないようにします。 curl --post302 --location -d "data" https://example.com |
-post303 | 303リダイレクト後にcurlがPOSTからGETリクエストに変換しないようにします。 例: curl --post303 --location -d "data" https://example.com |
-preproxy [protocol://] host [:port] | SOCKSプロキシをプレプロキシとして使用します。 例: curl --preproxy socks5://proxy.example -x http://http.example https://example.com |
-#、-progress-bar | シンプルなプログレスバーを使用します。 例: curl-#-O https://example.com |
-proto-default | スキーム名のないURLにどのプロトコルcurlを使用するかを指定します。 例: curl --proto-default https ftp.example.com |
-proto-redir | curlがリダイレクトで使用するプロトコルを指定します。 例: curl --proto-redir =http、https https://example.com |
-proto | curlが転送に使用するプロトコルを指定します。 例: curl --proto =http、https、sftp https://example.com |
-proxy-anyauth | Curlは適切な認証方法を選択する必要があります。 例: curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com |
-proxy-basic | プロキシとの通信にはHTTPBasicを使用します。 例: curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com |
-proxy-cacert | --cacert for HTTPS proxies. 例: curl --proxy-cacert CA-file.txt -x https://proxy https://example.com |
--proxy-capath | --capath for HTTPS proxies. 例: curl --proxy-capath /local/directory -x https://proxy https://example.com |
--proxy-cert-type | --cert-type for HTTPS proxies. 例: curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com |
--proxy-cert | -E , --cert for HTTPS proxies. 例: curl --proxy-cert file -x https://proxy https://example.com |
--proxy-ciphers | --ciphers for HTTPS proxies. curl --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy https://example.com |
--proxy-crlfile | --crlfile for HTTPS proxies. 例: curl --proxy-crlfile rejects.txt -x https://proxy https://example.com |
--proxy-digest | Use HTTP Digest authentication with a proxy. 例: curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com |
--proxy-header | -H , --header for proxy communication. 例: curl --proxy-header "Host:" -x http://proxy https://example.com |
--proxy-insecure | -k , --insecure for HTTPS proxies. 例: curl --proxy-insecure -x https://proxy https://example.com |
--proxy-key-type | --key-type for HTTPS proxies. 例: curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com |
--proxy-key | --key for HTTPS proxies. 例: curl --proxy-key here -x https://proxy https://example.com |
--proxy-negotiate | --negotiate for proxy communication. 例: curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com |
--proxy-ntlm | Use HTTP NTLM authentication with a proxy. 例: curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com |
--proxy-pass | --pass for HTTPS proxies. 例: curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com |
--proxy-pinnedpubkey | Specify the public key for proxy verification. 例: curl --proxy-pinnedpubkey keyfile https://example.com |
--proxy-service-name | Specify the service name for proxy communciation. 例: curl --proxy-service-name "shrubbery" -x proxy https://example.com |
--proxy-ssl-allow-beast | --ssl-allow-beast for HTTPS proxies. 例: curl --proxy-ssl-allow-beast -x https://proxy https://example.com |
--proxy-ssl-auto-client-cert | --ssl-auto-client-cert for HTTPS proxies. 例: curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com |
--proxy-tls13-ciphers | Specifies the list of cipher suites to use in negotiating TLS 1.3 for proxies. 例: curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com |
--proxy-tlsauthtype | --tlsauthtype for HTTPS proxies. 例: curl --proxy-tlsauthtype SRP -x https://proxy https://example.com |
--proxy-tlspassword | --tlspassword for HTTPS proxies. 例: curl --proxy-tlspassword passwd -x https://proxy https://example.com |
--proxy-tlsuser | --tlsuser for HTTPS proxies. 例: curl --proxy-tlsuser smith -x https://proxy https://example.com |
--proxy-tlsv1 | -1 , --tlsv1 for HTTPS proxies. 例: curl --proxy-tlsv1 -x https://proxy https://example.com |
-U, --proxy-user | Specify the username and password for authenticating with a proxy. 例: curl --proxy-user name:pwd -x proxy https://example.com |
-x, --proxy [protocol://]host[:port] | Specify a proxy to use. 例: curl --proxy http://proxy.example https://example.com |
--proxy1.0 | Specify a HTTP 1.0 proxy to use. 例: curl --proxy1.0 -x http://proxy https://example.com |
-p, --proxytunnel | Create a proxy tunnel. 例: curl --proxytunnel -x http://proxy https://example.com |
--pubkey | Provide a file containing a public key. 例: curl --pubkey file.pub sftp://example.com/ |
-Q, --quote | Send a command to a FTP or SFTP server, to be executed before the transfer. 例: curl --quote "rm file" ftp://example.com/foo |
--random-file | Specify a file containing random data. This file will be used for seeding the random engine. 例: curl --random-file rubbish https://example.com |
-r, --range | Obtain a range of bytes. 例: curl --range 40-80 https://example.com |
--raw | Disable HTTP content decoding and obtain raw data. 例: curl --raw https://example.com |
-e, --referer | Send Referrer Page information. 例: curl --referer "https://test.example" https://example.com |
-J, --remote-header-name | Use header name specified by the server instead of obtaining it from the URL. 例: curl -OJ https://example.com/file |
--remote-name-all | Apply the -O , --remote-name option to all the URLs. 例: curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2 |
-O, --remote-name | Specify that the local file should have the name of the remote file that was downloaded. 例: curl -O https://example.com/filename |
-R, --remote-time | Specify that the local file should have the timestamp of the remote file that was downloaded. 例: curl --remote-time -o foo https://example.com |
--request-target | Specify an alternative target path. 例: curl --request-target "*" -X OPTIONS https://example.com |
-X, --request | Specify a request method for communication with the server. 例: curl -X "DELETE" https://example.com |
--resolve <[+]host:port:addr[,addr]...> | Specify a custom address for a host/port. 例: curl --resolve example.com:443:127.0.0.1 https://example.com |
--retry-all-errors | Force retrying on all errors. 例: curl --retry-all-errors https://example.com |
--retry-connrefused | Add ECONNREFUSED to the list of errors that are eligible for --retry 。 例: curl --retry-connrefused --retry https://example.com |
--retry-delay | Specify the amount of time between retries. 例: curl --retry-delay 5 --retry https://example.com |
--retry-max-time | Specify the maximum amount of time for --retry attempts. 例: curl --retry-max-time 30 --retry 10 https://example.com |
--retry | Specify the number of retries after curl encounters and error. 例: curl --retry 7 https://example.com |
--sasl-authzid | Specify an additional authentication identity for SASL PLAIN authentication. 例: curl --sasl-authzid zid imap://example.com/ |
--sasl-ir | Enable initial response during SASL authentication. 例: curl --sasl-ir imap://example.com/ |
--service-name | Specify the SPNEGO service name. 例: curl --service-name sockd/server https://example.com |
-S, --show-error | Show an error message event with the -s , --silent option enabled. 例: curl --show-error --silent https://example.com |
-s, --silent | Turn on the silent mode. This option mutes curl. 例: curl -s https://example.com |
--socks4 | Specify a SOCKS4 proxy. 例: curl --socks4 hostname:4096 https://example.com |
--socks4a | Specify a SOCKS4a proxy. 例: curl --socks4a hostname:4096 https://example.com |
--socks5-basic | Use the basic authentication method (username/password) with a SOCKS5 proxy. 例: curl --socks5-basic --socks5 hostname:4096 https://example.com |
--socks5-gssapi-nec | Allow protection mode negotiation to be unprotected. 例: curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com |
--socks5-gssapi-service | Change the name of a socks server. 例: curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com |
--socks5-gssapi | Use GSS-API authentication with a SOCKS5 proxy. 例: curl --socks5-gssapi --socks5 hostname:4096 https://example.com |
--socks5-hostname | Specify the SOCKS5 proxy to use. 例: curl --socks5-hostname proxy.example:7000 https://example.com |
--socks5 | Specify the SOCKS5 proxy to use. The hostname is resolved locally. 例: curl --socks5 proxy.example:7000 https://example.com |
-Y, --speed-limit | Set the lower limit for the download speed. 例: curl --speed-limit 300 --speed-time 10 https://example.com |
-y, --speed-time | Set the time period for the speed limit measurement. 例: curl --speed-limit 300 --speed-time 10 https://example.com |
--ssl-allow-beast | Tell curl to ignore the BEAST security flaw in the SSL3 and TLS1.0 protocols. 例: curl --ssl-allow-beast https://example.com |
--ssl-auto-client-cert | Obtain and use a client certificate automatically. 例: curl --ssl-auto-client-cert https://example.com |
--ssl-no-revoke | Do not check for certificate revocation. 例: curl --ssl-no-revoke https://example.com |
--ssl-reqd | Require SSL/TLS. 例: curl --ssl-reqd ftp://example.com |
--ssl-revoke-best-effort | Ignore certificate revocation checks if they failed because of missing distribution points. 例: curl --ssl-revoke-best-effort https://example.com |
--ssl | Attempt to use SSL. 例: curl --ssl pop3://example.com/ |
-2, --sslv2 | Use SSLv2. Newer curl versions ignore this request due to security concerns with SSLv2. 例: curl --sslv2 https://example.com |
-3, --sslv3 | Use SSLv3. Newer curl versions ignore this request due to security concerns with SSLv3. 例: curl --sslv3 https://example.com |
--stderr | Output stderr to a file. The - symbol tells curl to output stderr to stdout. 例: curl --stderr output.txt https://example.com |
--styled-output | Enable bold fonts for HTTP header terminal output. curl --styled-output -I https://example.com |
--suppress-connect-headers | Prevent curl from outputting CONNECT headers. 例: curl --suppress-connect-headers --include -x proxy https://example.com |
--tcp-fastopen | Enable TCP Fast Open. 例: curl --tcp-fastopen https://example.com |
--tcp-nodelay | Enable TCP_NODELAY. 例: curl --tcp-nodelay https://example.com |
-t, --telnet-option | Pass the TTYPE , XDISPLOC , and NEW_ENV options to the telnet protocol. 例: curl -t TTYPE=vt100 telnet://example.com/ |
--tftp-blksize | Set the value of TFTP BLKSIZE. Must be a value larger than 512. 例: curl --tftp-blksize 1024 tftp://example.com/file |
--tftp-no-options | Prevents curl from sending requests for TFTP options. 例: curl --tftp-no-options tftp://192.168.0.1/ |
-z, --time-cond | Request a document that was modified after a certain date and time. For documents modified before the time, prefix the date expression with a dash. 例: curl -z "Wed 01 Sep 2021 12:18:00" https://example.com |
--tls-max | Specify the newest TLS version that is supported. 例: curl --tls-max 1.2 https://example.com |
--tls13-ciphers | Specifies the list of cipher suites to use in negotiating TLS 1.3 例: curl --tls13-ciphers TLS_AES_128_GCM_SHA256 https://example.com |
--tlsauthtype | Specify the TLS authentication type. 例: curl --tlsauthtype SRP https://example.com |
--tlspassword | Specify the TLS password. 例: curl --tlspassword pwd --tlsuser user https://example.com |
--tlsuser | Specify the TLS username. 例: curl --tlspassword pwd --tlsuser user https://example.com |
--tlsv1.0 | Tell curl to use TLS1.0 or newer. 例: curl --tlsv1.0 https://example.com |
--tlsv1.1 | Tell curl to use TLS1.1 or newer. 例: curl --tlsv1.1 https://example.com |
--tlsv1.2 | Tell curl to use TLS1.2 or newer. 例: curl --tlsv1.2 https://example.com |
--tlsv1.3 | Tell curl to use TLS1.3 or newer. 例: curl --tlsv1.3 https://example.com |
-1, --tlsv1 | Specify that curl should use at least 1.x version of TLS. 例: curl --tlsv1 https://example.com |
--tr-encoding | Ask for a compressed Transfer-Encoding response. 例: curl --tr-encoding https://example.com |
--trace-ascii | Enable a full trace dump to a file. Eliminates the hex part and shows only ASCII. 例: curl --trace-ascii log.txt https://example.com |
--trace-time | Require a time stamp on each trace or verbose line. 例: curl --trace-time --trace-ascii output https://example.com |
--trace | Enable a full trace dump to a file. 例: curl --trace log.txt https://example.com |
--unix-socket | Specify a Unix socket path. 例: curl --unix-socket socket-path https://example.com |
-T, --upload-file | Upload a file to the URL. 例: curl -T "img[1-1000].png" ftp://ftp.example.com/ |
--url | Provide a URL to be fetched. 例: curl --url https://example.com |
-B, --use-ascii | Enable ASCII transfer. 例: curl -B ftp://example.com/README |
-A, --user-agent | Specify the user agent name. 例: curl -A "Agent 007" https://example.com |
-u, --user | Provide the username and password for authentication. 例: curl -u user:secret https://example.com |
-v, --verbose | Tell curl to be verbose. 例: curl --verbose https://example.com |
-V、-version | See the installed versions of curl and libcurl. 例: curl --version |
-w, --write-out | Tell curl to show information about the completed transfer on stdout. 例: curl -w '%{http_code}\n' https://example.com |
--xattr | Store file metadata in file attributes. 例: curl --xattr -o storage https://example.com |
For comprehensive descriptions of the options, execute the curl --manual
command in the terminal.