Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  apa itu linux curl

apa itu linux curl

青灯夜游
青灯夜游asal
2023-04-20 17:05:463400semak imbas

Dalam Linux, curl ialah alat yang sangat praktikal untuk memindahkan data ke dan dari pelayan Ia adalah alat pemindahan fail yang menggunakan peraturan URL untuk berfungsi di bawah baris arahan ia menyokong muat naik dan muat turun alat penghantaran yang komprehensif. Curl menyediakan banyak fungsi yang sangat berguna, termasuk akses proksi, pengesahan pengguna, muat naik dan muat turun ftp, HTTP POST, sambungan SSL, sokongan kuki, resume titik putus dan sebagainya.

apa itu linux curl

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Dalam Linux, curl ialah alat pemindahan fail yang menggunakan peraturan URL untuk berfungsi di bawah baris arahan Ia boleh dikatakan sebagai alat baris arahan http yang sangat berkuasa. Ia menyokong muat naik dan memuat turun fail dan merupakan alat penghantaran yang komprehensif Walau bagaimanapun, mengikut tradisi, adalah kebiasaan untuk memanggil URL sebagai alat muat turun.

curl ialah alat yang sangat praktikal untuk memindahkan data ke dan dari pelayan protokol yang disokong termasuk (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS , POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET dan TFTP), curl direka untuk menyelesaikan kerja tanpa interaksi pengguna curl menyediakan banyak fungsi yang sangat berguna, termasuk akses proksi, pengesahan pengguna, muat naik dan muat turun FTP, HTTP POST, sambungan SSL, sokongan kuki, resume titik putus...

1 Arahan lencong yang paling biasa digunakan

1. Hantar permintaan GET

curl URL
curl URL?a=1&b=nihao

2 Hantar permintaan POST

curl -X POST -d 'a=1&b=nihao' URL

3 >

curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' URL
curl -H "Content-Type: application/json" -X POST -d @test.json URL
Antaranya,

-H mewakili pengepala dan -X menentukan jenis permintaan (POST/GET/ HEAD/DELETE/ PUT/PATCH), -d mewakili data yang dihantar. Ini adalah yang paling biasa digunakan.
Lihat semua arahan curl: man curl atau curl -h
Pengepala permintaan: H,A,e
Pengepala respons: I,i,D
cookie: b,c,j
Penghantaran: F(POST), G(GET), T(PUT), --trace-ascii,--trace-time



Penjelasan terperinci sintaks arahan curl dan parameter arahan curl

1. parameter arahan curl

Memandangkan fungsi linux curl sangat berkuasa, Terdapat banyak parameter arahan Jadual berikut hanya beberapa parameter yang dipilih oleh Aiezu (aiezu.com). parameter, sila jalankan arahan "man curl" untuk melihat.

Sila-H "name: value"(HTTP)Tambahkan pengepala http (pengepala permintaan http);-H "name:"(HTTP) Alih keluar pengepala http (pengepala permintaan http); -A "rentetan"(HTTP) Tetapkan pengepala permintaan Http "User-Agent". Pelayan boleh menentukan nama penyemak imbas dan jenis sistem pengendalian yang digunakan oleh klien melalui "User-Agent". buat keputusan yang salah. -e 258c40d94d8689854ad79c4076dd5f96(HTTP) Tetapkan halaman sumber apabila mengakses dan beritahu perkhidmatan http dari halaman mana untuk memasuki halaman ini; cincin-I (HTTP) sahaja Output HTTP-header, jangan dapatkan kandungan (HTTP/FTP/FILE). -i( HTTP) Output Pengepala HTTP dan kandungan kembali; -D 7a5dcbb34f3ac008f1c1b4854c49d768(HTTP) Buang http pengepala respons untuk Tentukan fail; kuki-b name=data(HTTP ) Hantar kuki Data dihantar ke pelayan HTTP, format data ialah: "NAME1=VALUE1; NAME2=VALUE2"; -c nama fail(HTTP) Selepas menyelesaikan operasi, simpan kuki yang dikembalikan oleh pelayan ke fail yang ditentukan -j(HTTP) memberitahu curl untuk memberi sehingga semua "kuki sesi"; Gunakan akses proksi HTTP; port ditentukan, port 8080 digunakan secara lalai; http_proxy, HTTPS_PROXY, socks4, socks4a, socks5; proksi 8.8.8.8:8080; -pGunakan proksi SOCKS4 Gunakan proksi SOCKS4A; --proxy-anyauth --proxy-basicKaedah pengesahan proksi http, rujukan: --ntlm --dapatkan-d @fail -d "rentetan" --data "rentetan" Jika kandungan medan bermula dengan "@", bahagian yang tinggal hendaklah nama fail dan curl akan memuat naik fail, seperti: curl -F "pic=@pic.jpg" http :/ /aiezu.com;--asas(HTTP) memberitahu curl untuk menggunakan pengesahan Asas HTTP (apabila menggunakan protokol HTTP), iaitu kaedah pengesahan lalai (HTTP) Gunakan kaedah pengesahan NTLM untuk protokol HTTP --digest--berunding-u pengguna:kata laluan Jika anda hanya berikan nama pengguna, curl akan meminta anda memasukkan kata laluan; Jika anda menggunakan perpustakaan curl yang dibuka oleh "SSPI" untuk pengesahan "NTLM", anda boleh menggunakan pilihan "-u:" tanpa nama pengguna dan kata laluan untuk memaksa curl menggunakan nama pengguna dan kata laluan Log masuk semasa untuk pengesahan; 🎜> --sijil 058c6e30cb3887e220c16234b0f13ee5(SSL) menentukan fail sijil dan kata laluan sijil dalam "PEM " format; (SSL) memberitahu curl jenis sijil yang disediakan: PEM, DER, ENG, dsb.; Lalai ialah "PEM"; --fail rawak(SSL) menentukan nama laluan fail yang mengandungi data rawak; data digunakan untuk sambungan SSL Hasilkan benih rawak sebagai; --egd-file 28897b20adb25fbae118a3f80f538dec(SSL) ialah laluan yang ditentukan oleh penjana benih rawak EGD (Entropi Mengumpul soket Daemon) Nama; -1/--tlsv1(SSL) Gunakan TLS versi 2 untuk berkomunikasi dengan pelayan jauh Kunci peribadi--kunci 8a66db7248cea4b091ced72fb7100c95(SSL/SSH) tentukan satu nama fail kunci Peribadi apabila dinyatakan, cuba gunakan fail berikut secara automatik: "~/.ssh/id_rsa", "~/.ssh/id_dsa", " ./id_rsa'", "./id_dsa"; --key-type 7674b22ef33c73b930516fd6bc30b7a3(SSL) menentukan jenis fail kunci peribadi, menyokong : DER, PEM, ENG, lalai ialah PEM; --pass b6cb73fae0efbdb0e9a26fd2eaddb3bb(SSL/SSH) menentukan kata laluan fail kunci peribadi ; --pubkey 42538adbdb6240b2b083a000a615d5bd(SSH) menggunakan kunci awam anda yang disediakan dalam fail yang ditentukan; >FTP-P --ftp-port 9dc10e39019b71b90703f2bf774b512dHadkan lebar jalur maksimum yang digunakan oleh curl jika unit tidak dinyatakan, unit lalai ialah "bait/saat", anda juga boleh menentukan unit sebagai "K", " M", "G", dsb. Unit, seperti: "--kadar-had 1m" mengehadkan lebar jalur maksimum kepada "1m bait/saat"; -yJika muat turun lebih perlahan daripada bait had kelajuan sesaat dalam tempoh masa kelajuan, muat turun akan dibatalkan jika masa kelajuan digunakan, kelajuan lalai -had akan menjadi 1 melainkan ditetapkan dengan -Y. Pilihan ini mengawal pemindahan dan dengan itu tidak akan menjejaskan sambungan perlahan dsb. Jika ini membimbangkan anda, cuba pilihan --sambung-tamat masa.-Y --keepalive-time 3a4dd2a477b84f59755c5a1c7bf54667Tetapkan keepalive time--no-keepaliveMatikan fungsi keepalive ; --tiada penimbalLumpuhkan penimbal strim output; Dayakan penimbalan strim output; -L --lokasi (dalam kod respons http ialah 3XX Apabila digunakan, seperti lompat 301, lompat 302) --dipercayai lokasi--sambung-masa d0dd7f22533d26e5fc5c3c053b1eaeebNyatakan tamat masa sambungan maksimum dalam; saat; -m saat --masa maksimum saat --senyapMod senyap. Jangan tunjukkan meter kemajuan atau mesej ralat; Pilihan-f --failBilangan percubaan semula yang gagal Masa percubaan semula maksimum; show-errorPaparkan mesej ralat dalam mod senyap; 🎜> --output failOutput kandungan yang dikembalikan ke fail. Akan disimpan sebagai: "a.txt", "b.txt"; curl "http: //aiezu. com/{a,b}_[1-3].txt" -o "#1#2.txt"; Akan disimpan sebagai: a1.txt, a2.txt, a3.txt , b1.txt, b2.txt, b3.txt Menentukan "-" akan menghala ke output standard "seperti konsol" ; --remote-name akan mengeluarkan kandungan yang dikembalikan ke fail dengan nama yang sama dengan fail dalam url dalam direktori semasa (tidak termasuk direktori); cipta hierarki direktori tempatan yang diperlukan -w Dalam parameter format, anda boleh menggunakan %{ kaedah variable_name} untuk menggunakan pembolehubah yang berkaitan bagi maklumat respons, seperti: %{content_type}, %{http_code}, % {local_ip}..., untuk lebih banyak pembolehubah, sila rujuk "man curl" gunakan "-" sebagai nama fail menghantar output ke output standard. --trace-ascii fileBuang semua data masuk dan keluar ke fail, termasuk maklumat penerangan, buang bahagian ASCII sahaja, lebih mudah dibaca ;Pilihan ini akan mengatasi pilihan -v, --verbose, --trace-ascii yang digunakan sebelum ini; Maklumat; --config f6e9e3a277d0a30df37c6f516833faa0Baca parameter daripada fail konfigurasi, rujukan: http://curl.haxx . se/docs/ --verbose memaparkan maklumat yang lebih terperinci dan digunakan semasa penyahpepijatan --manualPaparkan manual bantuan lengkap; 🎜>

Penjelasan parameter penuh curl -h:

Kumpulan parameter Parameter Penerangan
url url Satu atau lebih URL yang perlu dirangkak;
Berbilang kaedah kad bebas berikut:
1. http://{www,ftp,mail}.aiezu.com> 2. http: //aiezu.com/images/[001-999].jpg;
3. http://aiezu.com/images/[1-999].html
4. ftp:// aiezu. com/file[a-z].txt
Tolong
header
--header "name : value"
--header "name :"
--user-agent "string"

Anda juga boleh menggunakan "-H", "--header option" untuk menetapkan pilihan ini
--referer 258c40d94d8689854ad79c4076dd5f96 ;

-e "aiezu.com" bersamaan dengan "-H "Referer : www.qq .com"";
sepatutnya
header
--head
Apabila digunakan untuk perkhidmatan HTTP, dapatkan pengepala http halaman;
(seperti: curl -I http://aiezu.com)
Apabila digunakan untuk FTP/FILE, saiz fail dan terakhir pengubahsuaian akan diperolehi Masa;
(cth: curl -I file://test.txt)
--include
--dump-header 7a5dcbb34f3ac008f1c1b4854c49d768
--cookie name=data


Jika tiada "=" dalam baris, nilai parameter akan dianggap sebagai nama fail kuki;

Data Kuki ini boleh dihantar oleh tajuk respons http pelayan "Set-Cookie:" baris
- -cookie-jar file name

Jika nilai parameter yang ditentukan ialah "-", ia akan diarahkan ke output standard "seperti konsol";
--junk-session-cookies
adalah bersamaan dengan memulakan semula penyemak imbas; /[user:pwd@]host[:port]
--proxy [protocol:/ /[user:pwd@]host[:port]
protokol lalai kepada http_proxy, nilai lain yang mungkin termasuk: -x "http_proxy://aiezu:123@aiezu.com:80"


--proxytunnel

Gunakan proksi parameter "-x" sebagai saluran untuk memproksi protokol bukan HTTP, seperti ftp;
--socks4a aa3755fb6675d042aec4e88952ca7a83
--socks5 b408fad26dd760b1de185ab2e127c0d9
Gunakan proksi SOCKS5;
Parameter ini akan mengatasi parameter "-x"
- -proxy-diges
--proxy-negotiate
--proxy-ntlm
--anyauth
--asas
-- diges
--berunding

-U ac84284091f8b8c7759291484ffb1e93
--proxy-user a0cdbb1e98c0a7f7bc41394907e02e8d

Tetapkan nama pengguna dan kata laluan proksi;


Data
Penghantaran

-G
Jika parameter ini digunakan, data yang ditetapkan oleh parameter "-d/", "--data", dan "--data-binary" , dilampirkan pada url dan diminta dalam mod GET
--data-ascii "string"
--data-binary "string"
--data-urlencode "string"
(HTTP) Gunakan HTTP POST untuk menghantar "key/ data pasangan nilai", bersamaan dengan atribut borang penyemak imbas (kaedah="POST", enctype="application/x-www-form-urlencoded")
-d, --data: Mod HTTP POST data;
- -data-ascii: data HTTP POST ascii; , diikuti dengan fail, siarkan kandungan dalam fail itu; 🎜> --form name=content


(HTTP) Gunakan HTTP POST untuk menghantar berbilang jenis data yang serupa dengan "medan borang", yang bersamaan dengan menetapkan sifat borang penyemak imbas pada masa yang sama ( kaedah ="POST", enctype="multipart/form-data"), anda boleh menggunakan parameter ini untuk memuat naik fail binari.
curl -F "page=@a.html;type=text/html" http://aiezu.com
curl -F "page=@/tmp/a;filename =a .txt" http://aiezu.com

Jika kandungan medan bermula dengan "4e578fa69bd0a25420e7431d9a93d5ee

(HTTP ) serupa dengan "--form", tetapi "@" dan "e080b1b3cc4c381c4e67fa822465088b
--terus-di 8580fd03b570cbc9bfcafb7fa52b0061

Pindahan Resume Breakpoint, teruskan memuat turun/muat naik dari kedudukan yang ditentukan dalam pengepala fail
mengimbangi kedudukan permulaan pemindahan resume, jika nilai offset ialah "-", curl akan mengenal pasti secara automatik; kedudukan permulaan dalam fail dan mulakan penghantaran; /FILE) Hanya pindahkan bahagian kandungan yang ditentukan:
0 -499: 500 bait pertama
-500: 500 bait terakhir
9500-: 9500 bait pertama; -0,-1: 1 Bait pertama dan terakhir;
100-199,500-599: dua 100 bait; >

--ntlm
biasanya digunakan untuk tapak web IIS yang menggunakan NTLM
(HTTP) menggunakan penyulitan Pengesahan HTTP Digest, digunakan untuk protokol HTTP
Gunakan pilihan "-u/--user" untuk menghalang kata laluan daripada dihantar dalam teks yang jelas;

(HTTP) menggunakan kaedah pengesahan GSS-Negotiate untuk protokol HTTP
Tujuan utamanya adalah untuk menyediakan sokongan untuk pengesahan kerberos5; >--anyauth

(HTTP) memberitahu curl untuk memilih kaedah pengesahan yang sesuai secara automatik dan memilih kaedah yang paling selamat
- -pengguna pengguna :kata laluan

Gunakan pengesahan nama pengguna dan kata laluan ini akan mengatasi pilihan "-n", "--netrc" dan "--netrc-optional"
-E 2320bb16c26f7b16afaff446f2dcd32f

--cert-type 7674b22ef33c73b930516fd6bc30b7a3
--cacert ee9bc78e716c38f84f8ae829b72583a3 (SSL) memberitahu curl bahawa fail sijil CA yang ditentukan mestilah Format "PEM" ;
--capath ba9d568e112db9b236b0851e34ec747f (SSL) memberitahu curl bahawa sijil CA dalam direktori yang ditentukan digunakan untuk pengesahan
ini Sijil mestilah dalam format "PEM";
--crlfile 28897b20adb25fbae118a3f80f538dec (HTTPS/FTPS) menyediakan fail format PEM untuk menentukan Senarai yang dibatalkan daripada sijil;
-k
--tidak selamat
(SSL) Menetapkan pilihan ini akan membenarkan sambungan dan pemindahan menggunakan SSL yang tidak selamat tanpa sijil.
SSL
Lain-lain
--sifir 5c651b4e9c5cf174a1a219fada2ff28c (SSL) menentukan kaedah penyulitan yang akan digunakan oleh SSL ; seperti : "aes_256_sha_256";
--enjin 8a11bc632ea32a57b3e3693c7987c420 Tetapkan enjin penyulitan OpenSSL untuk operasi penyulitan -- senarai enjin "Lihat senarai enjin penyulitan yang disokong;
--tlsv1.0
--tlsv1.1
--tlsv1.2
-2/ --sslv2
-3/--sslv3
(SSL) Gunakan TLS versi 1.0 untuk berkomunikasi dengan pelayan jauh;
(SSL ) menggunakan TLS versi 1.1 untuk berkomunikasi dengan pelayan jauh
(SSL) menggunakan TLS versi 1.2 untuk berkomunikasi dengan pelayan jauh
(SSL) menggunakan SSL versi 2 untuk berkomunikasi; pelayan jauh;
(SSL) menggunakan SSL versi 3 Berkomunikasi dengan pelayan jauh
Kunci awam
--speed-time 701425f2dac6a379291315d27192845a
--had-kelajuan add4e4a720cf207138d5653fb8330e41 Jika muat turun lebih perlahan daripada kelajuan yang diberikan ini (dalam bait sesaat) untuk saat masa kelajuan ia akan dibatalkan dengan masa kelajuan ditetapkan dengan -y dan ialah 30 jika tidak ditetapkan.
pilihan
lain
-0/--http1.0 (HTTP) Paksa curl untuk menggunakan HTTP 1.0 Sebaliknya daripada menggunakan HTTP lalai 1.1;
--antara muka 8a11bc632ea32a57b3e3693c7987c420 Gunakan antara muka kad rangkaian yang ditentukan untuk mengakses
curl --interface eth0 http:/ /aiezu.com
curl --interface 10.0.0.101 http://aiezu.com
-X e2b9f03cad787b9644e1f51fd23b7dac
--request < ;command>
(HTTP) menentukan kaedah permintaan yang digunakan untuk berkomunikasi dengan pelayan, seperti: GET, PUT, POST, DELETE, dll., lalainya ialah GET; >
(HTTP/HTTPS) mengikut pengepala respons http "Lokasi:" untuk menghala ke halaman selepas lompatan;

( HTTP/HTTPS) Sama seperti "--lokasi", tetapi lompat Nama pengguna dan kata laluan sebelum lompatan akan dihantar kemudian; permintaan menggunakan algoritma pemampatan untuk memampatkan kandungan yang dikembalikan; keriting menyokong mampatan gzip Nyahmampat

Hadkan masa maksimum untuk keseluruhan operasi lencong, dalam saat; > -s
Ralat
(HTTP) Apabila sambungan gagal (400 atau lebih ralat), halaman ralat lalai tidak dikembalikan, tetapi ralat curl dikembalikan. masa maksimum d0dd7f22533d26e5fc5c3c053b1eaeeb
Selang percubaan semula

Output
-o fail
Jika anda menggunakan kad bebas untuk mendapatkan berbilang URL, anda boleh menggunakan "#" diikuti dengan "nombor jujukan berangka", dan curl akan menggantikannya secara automatik dengan kata kunci yang sepadan, seperti:
curl "http://aiezu .com/ {a,b}.txt" -o "#1.txt";
Jika anda ingin mencipta direktori simpanan mengikut peraturan, rujuk: "--create-dirs"

-O


--format tulis keluar

Selepas operasi selesai, tambah kandungan yang ditentukan pada penghujung mengembalikan maklumat; kandungan yang akan dilampirkan boleh menjadi rentetan "rentetan", yang diperoleh daripada fail "@filename", dapatkan "@-" daripada input standard
parameter format boleh menggunakan "n", "r", "t" dan aksara melarikan diri yang lain; >
Buang semua data masuk dan keluar ke fail, termasuk maklumat penerangan
Hantar output ke output standard menggunakan "-" sebagai nama fail.
-K

-v

Bantuan
-M
bantuan penggunaan linux curl;
Boleh menggunakan kaedah pengesahan "mana-mana"--asas Gunakan Pengesahan Asas HTTP-B /--use-ascii Gunakan pemindahan teks ASCII-d/-- data 1d029f6197b5a3eb8a3fdf0a088ddf55 >Kaedah HTTP POST untuk menghantar data--data-ascii 1d029f6197b5a3eb8a3fdf0a088ddf55                                                                                  ;                                                         🎜>--disable-epsv                                                                                🎜> ialah data rawak ( SSL) Tetapkan laluan soket EGD --tcp-nodelay Gunakan pilihan TCP_NODELAY -E/--cert ab8deabf4cd45eca11aef014c6d6b8a0    >Jenis sijil DER/PEM/ENG) (SSL)--kekunci 5cb7eb41ad9292e7184df9ae4ddbe6a0--jenis-kunci >Jenis fail kunci peribadi (DER/PEM/ENG) (SSL)- -lulus 49975435ade3d9601b2c4bf28a4fad80   🎜>Enjin penyulitan yang digunakan (SSL "--senarai enjin" untuk senarai--cacert 07d3d9df38fe8b3cf1e0a78493f28c08                                                                                                                                                                                                                                                                                                                                                                                           Memerlukan pengembalian untuk dimampatkan (menggunakan deflate atau gzip)--krb4 d01d6777fee22c1abcc265b0d6170d56                                                                                                 🎜>Benarkan tapak SSL tanpa sijil-K/--config > > -L/-List-only Senaraikan nama fail dalam direktori FTP - Hadkan -raate & lt; kadar & gt; Tetapkan kelajuan pemindahan--local-port7a16b29f015c60d23685bc81cbbd96c2 m/--masa maksimum Bilangan direktori untuk membaca -max-filesize & lt; bytes & gt; 🎜>--netrc-optional Gunakan .netrc atau URL untuk menggantikan -n--ntlm                                                        🎜>Gunakan pengesahan NTLM HTTP-N/--tiada penimbal                                                                            -proxy-basic --proxy-digest                                     Gunakan pengesahan ntlm dihidupkan proksi-R/--masa jauh                                                                                                                                                                                                      ; Apabila terdapat masalah dengan penghantaran, bilangan percubaan semula -Cuba semula-Tangguhan & LT Apabila ada masalah dengan penghantaran, tetapan adalah berat selang--cuba semula-masa-maks d0dd7f22533d26e5fc5c3c053b1eaeeb 🎜>Tunjukkan ralat--socks4 aa3755fb6675d042aec4e88952ca7a83 > Gunakan socks4 untuk proksi hos dan port yang diberikan --socks5 aa3755fb6675d042aec4e88952ca7a83 🎜>-t/--telnet-option 67aea6ab925e1fd5e2ee4553bfe0973c    Nyahpepijat fail yang ditentukan--jejak-ascii 7a5dcbb34f3ac008f1c1b4854c49d768 🎜>--masa jejak                                                                                                                                     Tetapkan nama pengguna dan kata laluan proksi Paparkan maklumat versiArahan apa yang hendak ditentukan?Masa yang diperlukan untuk melepaskan had laju.Lalai ialah 30-1/--tlsv1                                                                                                Menggunakan SSLv2 (SSL) Like-q untuk url sumber untuk pemindahan pihak ke-3 Url-3P- untuk penghantaran ketiga penghantaran pihak ketiga --3p-pengguna Gunakan nama pengguna dan kata laluan untuk penghantaran pihak ketiga-4 /--ipv4 Guna IP4-6/--ipv6     

3. Kod keluar arahan Linux curl

Berikut ialah kod ralat arahan linux curl dan mesej ralat yang sepadan, yang mungkin muncul dalam persekitaran yang keras.

-a/--lampirkan                                                                                                                                                                       
--cerna 🎜>Penggunaan EPRT atau LPRT adalah dilarang
--sifir dae7384567218bf557d8f31dd9b16d33                                          🎜>
-p/-Proxytunnel 🎜> Pilih mana-mana kaedah pengesahan proksi
Gunakan pengesahan asas pada proksi
Gunakan pengesahan digital pada proksi
-P/--ftp-port ;                                                                                                                                                   🎜>
Tetapkan URL untuk digunakan ->
-V/--version   
-X/--minta 5676fb80e9a2c276eb83c871b3888fa2 
-y /--speed-time      
-Y/--had-kelajuan        Hentikan had laju penghantaran, masa kelajuan' saat
-z/--time-cond                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
Guna IP6
退出码 错误描述
1 Protokol tidak disokong. Binaan curl ini tidak mempunyai sokongan untuk protokol ini.
2 Gagal dimulakan.
3 URL salah bentuk. Sintaks tidak betul.
5 Tidak dapat menyelesaikan proksi. Hos proksi yang diberikan tidak dapat diselesaikan.
6 Tidak dapat menyelesaikan hos. Hos jauh yang diberikan tidak diselesaikan.
7 Gagal menyambung ke hos.
8 Balasan pelayan pelik FTP. Pelayan menghantar data curl tidak dapat menghuraikan.
9 Akses FTP ditolak. Pelayan menafikan log masuk atau menafikan akses kepada sumber atau direktori tertentu yang anda ingin capai. Selalunya anda cuba menukar kepada direktori yang tidak wujud pada pelayan.
11 Balasan PASS pelik FTP. Curl tidak dapat menghuraikan balasan yang dihantar kepada permintaan PASS.
13 FTP balasan PASV pelik, Curl tidak dapat menghuraikan balasan yang dihantar kepada permintaan PASV.
14 Format 227 pelik FTP. Curl tidak dapat menghuraikan 227 baris yang dihantar pelayan.
15 FTP tidak boleh mendapatkan hos. Tidak dapat menyelesaikan IP hos yang kami dapat dalam talian 227.
17 FTP tidak dapat menetapkan binari. Tidak dapat menukar kaedah pemindahan kepada binari.
18 Fail separa. Hanya sebahagian daripada fail telah dipindahkan.
19 FTP tidak dapat memuat turun/mengakses fail yang diberikan, arahan RETR (atau yang serupa) gagal.
21 Ralat petikan FTP. Arahan petikan mengembalikan ralat daripada pelayan.
22 Halaman HTTP tidak diambil. Url yang diminta tidak ditemui atau mengembalikan ralat lain dengan kod ralat HTTP ialah 400 atau lebih tinggi. Kod pemulangan ini hanya muncul jika -f/--fail digunakan.
23 Ralat tulis. Curl tidak dapat menulis data ke sistem fail setempat atau yang serupa.
25 FTP tidak dapat STOR fail. Pelayan menafikan operasi STOR, digunakan untuk muat naik FTP.
26 Ralat baca. Pelbagai masalah membaca.
27 Habis ingatan. Permintaan peruntukan memori gagal.
28 Tamat masa operasi. Tempoh tamat masa yang ditentukan telah dicapai mengikut syarat.
30 FTP PORT gagal. Arahan PORT gagal. Bukan semua pelayan FTP menyokong arahan PORT, cuba lakukan pemindahan menggunakan PASV!
31 FTP tidak dapat menggunakan REST. Perintah REST gagal. Perintah ini digunakan untuk pemindahan FTP yang disambung semula.
33 Ralat julat HTTP. Julat "arahan" tidak berfungsi.
34 Ralat siaran HTTP. Ralat penjanaan pasca permintaan dalaman.
35 Ralat sambungan SSL. Jabat tangan SSL gagal.
36 Sambungan muat turun FTP buruk. Tidak dapat meneruskan muat turun yang dibatalkan sebelum ini.
37 FAIL tidak dapat membaca fail. Gagal membuka fail. Kebenaran?
38 LDAP tidak boleh mengikat. Operasi pengikatan LDAP gagal.
39 Carian LDAP gagal.
41 Fungsi tidak ditemui . Fungsi LDAP yang diperlukan tidak ditemui.
42 Dibatalkan melalui panggilan balik. Aplikasi memberitahu curl untuk membatalkan operasi.
43 Ralat dalaman. Satu fungsi telah dipanggil dengan parameter buruk.
45 Ralat antara muka. Antara muka keluar yang ditentukan tidak boleh digunakan.
47 Terlalu banyak ubah hala. Apabila mengikuti ubah hala, curl mencapai jumlah maksimum.
48 Pilihan TELNET tidak diketahui ditentukan.
49 Pilihan telnet cacat.
51 Sijil SSL rakan sebaya atau cap jari SSH MD5 tidak ok.
52 Pelayan tidak membalas apa-apa, yang di sini dianggap ralat.
53 Enjin kripto SSL tidak ditemui.
54 Tidak boleh menetapkan enjin kripto SSL sebagai lalai.
55 Gagal menghantar data rangkaian.
56 Kegagalan dalam menerima data rangkaian.
58 Masalah dengan sijil tempatan.
59 Tidak dapat menggunakan sifir SSL yang ditentukan.
60 Sijil rakan sebaya tidak boleh disahkan dengan sijil CA yang diketahui.
61 Pengekodan pemindahan tidak diiktiraf.
62 URL LDAP tidak sah.
63 Melebihi saiz fail maksimum.
64 Tahap SSL FTP yang diminta gagal.
65 Menghantar data memerlukan gulung semula yang gagal.
66 Gagal untuk memulakan SSL Enjin.
67 Nama pengguna, kata laluan atau yang serupa tidak diterima dan curl gagal log masuk.
68 Fail tidak ditemui pada pelayan TFTP.
69 Masalah kebenaran pada pelayan TFTP.
70 Kehabisan ruang cakera pada pelayan TFTP.
71 Pengendalian TFTP yang tidak sah.
72 ID pemindahan TFTP tidak diketahui.
73 Fail sudah wujud (TFTP).
74 Tiada pengguna sedemikian (TFTP).
75 Penukaran aksara gagal.
76 Fungsi penukaran aksara diperlukan.
77 Masalah membaca sijil SSL CA (laluan? hak akses? ).
78 Sumber yang dirujuk dalam URL tidak wujud.
79 Ralat yang tidak ditentukan berlaku semasa sesi SSH.
80 Gagal menutup sambungan SSL.
82 Tidak dapat memuatkan fail CRL, hilang atau format yang salah (ditambah dalam 7.19.0).
83 Semakan pengeluar gagal (ditambah dalam 7.19. 0).
XX Lebih banyak kod ralat akan muncul di sini dalam keluaran akan datang. Yang sedia ada tidak akan pernah berubah.

4. Penggunaan Biasa

1. >1.1. Halaman muat turun: curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

#Sila ambil perhatian bahawa url selepas -O mestilah khusus untuk fail tertentu, jika tidak ia akan ditangkap Tidak turun

curl -O http://www.linux.com/dodo1.JPG

1.2: Muat turun gelung
Kadangkala nama bahagian sebelumnya bagi gambar yang dimuat turun mungkin sama Tulang belakang ekor terakhir mempunyai nama yang berbeza. Ini akan menyimpan semua dodo1, dodo2, dodo3, dodo4 dan dodo5
curl -O http://www.linux.com/dodo[1-5].JPG

1.3: Muat turun berat Fail bernama
dalam hello/dodo1.JPG akan menjadi hello_dodo1.JPG selepas dimuat turun, dan seterusnya untuk fail lain, dengan itu berkesan mengelakkan fail ditimpa
curl -o #1_#2.JPG http: //www. linux.com/{hello,bb}/dodo[1-5].JPG

Memandangkan nama fail dalam hello dan bb yang dimuat turun semuanya dodo1, dodo2, dodo3, dodo4, dodo5. Oleh itu, muat turun kedua akan menimpa muat turun pertama, jadi fail itu perlu dinamakan semula.
curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

1.4: Muat turun dalam ketulan (pilihan: -r)

curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1. JPG

curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG

cat dodo1_part* > dodo1.JPG #Dengan cara ini anda boleh melihat kandungan dodo1.JPG

1.5: Muat turun fail melalui ftp (pilihan: -u)
curl boleh memuat turun fail melalui ftp curl menyediakan dua sintaks untuk memuat turun daripada ftp
curl -O -u Nama pengguna: Kata laluan ftp :/. /www.linux.com/dodo1.JPG

curl -O ftp://username:password@www.linux.com/dodo1.JPG


1.6: Muat turun, paparkan bar kemajuan ( pilihan: - #) atau jangan paparkan bar kemajuan (pilihan: -s)
curl -# -O http://www.linux.com/dodo1.JPG
curl -s -O http://www . linux.com/dodo1.JPG

1.7 Muat turun, sambung semula pada titik putus (-C ab76cfca1a1dc7ff1291dcdf873f72ec)
Sambung semula pada titik putus dan teruskan memuat turun/muat naik dari kedudukan yang ditentukan dalam pengepala fail ialah kedudukan permulaan penghantaran sambung semula Jika nilai offset ialah "-", curl akan secara automatik mengenal pasti kedudukan permulaan dalam fail dan memulakan penghantaran
curl -# -o centos6.8.iso -C - http://; cermin. aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso

curl -C -O http://www.linux.com/dodo1.JPG




2. Muat naik fail (pilihan:-T)

curl -T dodo1.JPG -u Nama pengguna: Kata laluan ftp://www.linux.com/img /

3. Halaman sumber palsu |. akses supaya untuk mengawal akses. Sebagai contoh: anda mula-mula melawat halaman utama, dan kemudian melawat halaman e-mel pada halaman utama Alamat perujuk alamat e-mel di sini ialah alamat halaman selepas berjaya mengakses halaman utama Jika pelayan mendapati bahawa alamat perujuk halaman e-mel itu bukan alamat halaman utama, ia akan menentukan itu sambungan yang dicuri

#Ini akan membuatkan pelayan berfikir bahawa anda mengklik pautan dari www.linux.com

curl -e "www.linux.com" http://mail.linux. com #Beritahu Aie E bahawa saya dari Baidu curl -e http://baidu.com http://aiezu.com

4. Peranti proksi palsu (pelayar tiruan)



Sesetengah tapak web memerlukan penggunaan penyemak imbas tertentu untuk mengaksesnya, dan ada juga yang memerlukan penggunaan versi tertentu. Pilihan terbina dalam Curl: -A membolehkan kami menentukan penyemak imbas untuk mengakses tapak web

curl -A "Mozilla/4.0 (serasi; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

#Beritahu saya menyayangi keluarga E, saya adalah labah-labah perangkak GOOGLE (sebenarnya saya adalah arahan curl) curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com /bot.html)" http ://aiezu.com #Beritahu Aiezu, saya menggunakan penyemak imbas terbina dalam WeChat curl -A "Mozilla/5.0 AppleWebKit/600 Mobile MicroMessenger/6.0" http:// aiezu.com



5. Tetapkan permintaan http



5.1. --head)

curl -H "Cache-Control:no-cache" http://aiezu.com

5.2 Nyatakan pelayan proksi dan portnya (pilihan::-x) #Banyak kali anda perlu mengakses Internet Apabila pelayan proksi digunakan (contohnya, apabila menggunakan pelayan proksi untuk mengakses Internet atau apabila alamat IP disekat oleh orang lain kerana menggunakan curl pada tapak web orang lain), untungnya curl menyokong tetapan proksi dengan menggunakan pilihan terbina dalam: -x curl -x 192.168:1080 http://www.linux.com


6 pengepala


6.1. Lihat pengepala respons http (pilihan:-I)
# Lihat rupa pengepala http tapak ini
curl -I http://aiezu.com
Output:
HTTP/1.1 200 OK
Tarikh: Jum, 25 Nov 2016 16:45:49 GMT
Pelayan: Apache
Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; 1981 08:52:00 GMT
Kawalan Cache: tiada kedai, tiada cache, mesti sah semula, pasca semak=0, pra-semak=0
Pragma: tiada cache
Variasikan : Accept-Encoding
Content-Type: text/html; charset=utf-8

6.2. Simpan maklumat pengepala dalam respons http (pilihan:-D)
curl -D cookied http://www.linux.com
Selepas pelaksanaan, maklumat kuki akan disimpan dalam cookied.txt
Nota: Kuki yang dijana oleh -c (huruf kecil) adalah berbeza daripada kuki dalam -D.

7. Hantar data borang

curl -F "pic=@logo.png" -F "site=aiezu" http:/ /aiezu.com/

8 kuki

8.1.1.1 untuk merekod maklumat sesi. Untuk penyemak imbas seperti chrome, maklumat kuki boleh diproses dengan mudah, tetapi kuki juga boleh diproses dengan mudah dengan menambahkan parameter yang berkaitan dalam curl

curl -b "domain=aiezu.com" http://aiezu.com
#Many tapak web memantau maklumat kuki anda untuk menentukan sama ada anda melawat tapak web mereka mengikut peraturan, jadi kami perlu menggunakan maklumat kuki yang disimpan. Pilihan terbina dalam: -b
curl -b cookiec.txt http://www.linux.com

8.2 Simpan maklumat kuki dalam respons http (pilihan:-c)

selepas pelaksanaan Maklumat kuki dalam respons http disimpan dalam cookiec.txt

curl -c cookiec.txt http://www.linux.com

9. Uji satu URL 9.1 Uji sama ada URL boleh dicapai

curl -v http://www.linux.com


9.2 halaman (pilihan :-w [format])

curl -o /dev/null -s -w %{http_code} www.linux.com


10 halaman web (> ;>)2.1: Simpan menggunakan fungsi ubah hala linux

curl http://www.linux.com >> 🎜>


11 Kaedah permintaan

curl -i -v -H '' -X POST -d '' http:www.test.com /a/b Antaranya, -X POST -d, -X GET -d, -X PUT -d masing-masing bersamaan dengan -F, -G -d, -P

Ambil jawatan permintaan sebagai contoh:
11.1, -X POST -d

(11.1.1), POST application/x-www-form-urlencoded

application/x-www-form-urlencoded ialah lalai
curl -X POST - d "param1=value1¶m2=value2" http://localhost:3000/data
Bersamaan dengan
curl -H "Content-Type:application/x-www-form-urlencoded" -X POST -d " param1=value1¶m2=value2" http://localhost:3000/data
Menggunakan fail data
curl -X POST -d "@data.txt" http://localhost:3000/ data
di mana data Kandungan .txt adalah seperti berikut: param1=value1¶m2=value2

(11.1.2), POST application/json
curl -H "Content-Type:application/json " -X POST -d '{"key1 ":"value1","key2":"value2"}' http://localhost:3000/data

Jika menggunakan fail data:

curl -X POST - d "@data.json" http:// /localhost:3000/data
Kandungan data.json adalah seperti berikut: {"key1":"value1","key2":"value2"}
Satu lagi contoh:
curl -H "Content-type:application/json" -X POST -d "{"app_key":"$appKey","time_stamp":"$time"}" http://www.test .com.cn/a/b

11.2, -F
curl -v -H "token: 222" -F "file=@/Users/funglio/Downloads/401.png" localhost: 8000/api/v1/upimg

curl -f http://www.linux.com/error

11.3, contoh lain

(11.3.1),

curl -X POST "http ://www.test.com/e/f" -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8"

-d "a=b"

- d "c=d"

-d "e=f"
-d "g=h"

(11.3.2), ralat : curl -i -G -d "a= b#1&c=d" http://www.test.com/e/f
Betul: Jika nilai parameter ialah simbol khas, gunakan urlencode untuk menukarnya

curl -i -G -d "a=b %231&c=d" http://www.test.com/e/f



Penyahpepijatan

curl -v可以显示一次http通信的整个过程,包括端口连接和http request头信息。
如果觉得还不够,那么下面的命令可以查看更详细的通信过程:
curl --trace output.txt www.baidu.com 或者 curl --trace-ascii output.txt www.baidu.com 
运行后,请打开output.txt文件查看。
curl --trace output.txt  http://www.baidu.com
curl --trace-ascii output2.txt  http://www.baidu.com
curl --trace output3.txt --trace-time http://www.baidu.com
curl --trace-ascii output4.txt --trace-time http://www.baidu.com 

举例:有需求每5分钟请求一次http://www.test.com/a/b生成一个日志文件。希望一月的日志(正确的和错误的)能写入一个日志文件
day=`date +%F`
logfile='/var/logs/www.test.com_'`date +%Y%m`'.log'
/usr/bin/echo -e "\n\n[${day}] Start request \n " >> ${logfile}
/bin/curl -v "http://www.test.com/a/b" -d "ccccc" 1>> ${logfile} 2>> ${logfile} --trace-time
/usr/bin/echo -e "\n\n[${day}] End request\n" >> ${logfile}

13、显示抓取错误

curl -f http://www.linux.com/error

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci apa itu linux curl. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:apa itu linux tapArtikel seterusnya:apa itu linux tap