Dapatkan cURLy: 10 Perkara Berguna yang Boleh Anda Lakukan dengan cURL

Dapatkan cURLy: 10 Perkara Berguna yang Boleh Anda Lakukan dengan cURL

Apabila kita mula belajar mengenai alat baris perintah, kita cenderung melihatnya sebagai satu tujuan. Anda diajar bahawa





cat

mencetak kandungan fail,





ls

menyenaraikan semua item dalam direktori, dan





du

menunjukkan penggunaan ruang cakera. Walau bagaimanapun, banyak alat baris perintah mempunyai puluhan pilihan, semuanya dijelaskan dengan rapi di dalamnya

man

fail. Sebahagian daripada mereka dapat melakukan keajaiban apabila digabungkan dengan perintah lain.



Sudah tentu, tidak masuk akal untuk mengharapkan bahawa setiap orang harus mengingati setiap pilihan. Oleh itu, adalah baik untuk menyegarkan kita secara berkala pengetahuan mengenai arahan Linux , kerana anda mungkin menemui kegunaan baru untuk mereka.

Kali ini, kita fokus KURSUS , alat untuk memindahkan data melalui sejumlah protokol Internet seperti HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP, dan banyak lagi.





Dalam istilah yang disederhanakan, cURL melakukan pelbagai permintaan dari klien ke pelayan, mewujudkan hubungan antara mereka dengan menggunakan protokol tertentu dan kaedah yang berkaitan. Sebagai contoh, sebagai klien HTTP, cURL dapat mengirim permintaan untuk melihat atau memuat turun konten (metode permintaan GET), atau untuk mengirim konten melalui formulir di laman web (metode permintaan POST). Banyak aplikasi dan perkhidmatan web yang membolehkan cURL berinteraksi dengan API mereka (Application Programming Interface).

Oleh kerana fungsi mereka bertindih sedikit sebanyak, cURL dan wget sering dibandingkan antara satu sama lain. Kedua-dua alat boleh memuat turun kandungan dari Internet, tetapi wget menyokong muat turun berulang, mengikis web, dan umumnya terasa lebih mudah digunakan. Sekiranya anda hanya mahu memuat turun fail dari terminal, wget mungkin merupakan pilihan yang lebih baik.





Sebaliknya, jika anda memerlukan kaedah pengesahan HTTP lanjutan, dan ingin memuat naik fail serta memuat turunnya, ada baiknya belajar bagaimana mengatasinya. Juga, wget hanya menyokong HTTP (S) dan FTP, sementara cURL merangkumi pelbagai protokol. Ini bermaksud cURL dapat melakukan perkara yang lebih menarik - dan berikut adalah sepuluh contoh untuk membuktikannya.

1. Dapatkan Laporan Cuaca

Sekiranya seseorang memberitahu anda untuk memeriksa cuaca dari terminal, anda pasti akan melihat beberapa nombor yang membosankan. Tidak dengan arahan ini.

curl http://wttr.in/LOCATION

Maklumat tersebut diberikan oleh aplikasi CLI yang dipanggil kita pergi , tetapi jika anda tidak mahu memasangnya, cURL dapat mengambil ramalan dari frontend webnya wttr.in. Yang diperlukannya adalah lokasi yang anda mahukan ramalannya. Cukup ketik nama bandar, kod lapangan terbangnya, atau alamat IP semasa anda. Ciri baru menunjukkan maklumat mengenai fasa bulan jika anda menaip:

curl wttr.in/Moon

2. Muat turun Fail dan Sambung semula Muat turun

Memuat turun fail adalah sesuatu yang biasa kita lakukan di penyemak imbas. Kadang kala anda mahu menggunakan pengurus muat turun; sebagai contoh, semasa memuat turun beberapa fail sekaligus, atau semasa anda mahu menjeda muat turun. Walaupun cURL bukanlah pilihan yang popular untuk muat turun serentak (wget disarankan sebaliknya), anda masih boleh menggunakannya untuk tujuan tersebut dengan menggabungkan pilihan (suis) yang kuat. Mula-mula anda memerlukan pautan terus ke fail. Dalam contoh ini, kami akan menggunakan PDF majalah Linux Voice.

curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

Suis huruf besar O (-O) menjadikan cURL menyimpan fail dengan nama fail lalai (biasanya yang dari pautan itu sendiri). Sekiranya anda ingin menyimpannya dengan nama lain, anda akan menggunakan huruf kecil o diikuti dengan nama baru:

curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

Secara lalai, fail disimpan di direktori semasa (periksa dengan

pwd

perintah). Untuk menyelamatkannya di tempat lain, sediakan jalan selepas suis -o. Suis -C - membolehkan cURL menyambung semula muat turun. Anda akan menghentikannya dengan menekan Ctrl + C di terminal, dan menyambung semula dengan menjalankan perintah muat turun yang sama sekali lagi:

cURL memaparkan kemajuan muat turun dalam format seperti jadual, dengan lajur yang mengandungi maklumat mengenai kelajuan muat turun, jumlah saiz fail, masa berlalu, dan banyak lagi. Sekiranya anda tidak menyukai ini, anda boleh memilih bar kemajuan yang lebih sederhana dengan menambahkan - # atau --progress-bar pada perintah cURL anda.

Untuk memuat turun banyak fail sekaligus, senaraikan pautan satu demi satu:

curl -O file1.txt -O file2.pdf -O file3.zip

Dengan bantuan alat baris perintah yang lain, kita dapat memuat turun secara keseluruhan semua gambar PNG dan JPG dari blog Tumblr:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

Dalam kes ini,

cut

dan

grep

mengumpulkan maklumat mengenai nama fail dan memformatnya sehingga hanya fail dengan peluasan tertentu yang dipaparkan. Sekiranya anda menjalankan perintah tanpa paip terakhir:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

anda hanya akan mendapat senarai fail yang memenuhi kriteria kami, tetapi fail tersebut sebenarnya tidak akan dimuat turun. cURL boleh mendapatkan senarai gambar dari pelbagai halaman, dengan syarat blog menggunakan penomboran standard:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

Anda boleh mengubah julat dengan menukar angka dalam tanda kurung. Sekali lagi, arahan ini hanya akan menyenaraikan gambar; untuk memuat turunnya, jalankan arahan penuh di direktori di mana anda ingin menyimpan gambar:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

Sekiranya anda mahir ungkapan biasa , anda boleh meningkatkan penampilan dan kecekapan arahan ini, dan berkongsi hasilnya dalam komen.

3. Urus Fail pada Pelayan FTP

Kami tidak banyak mendengar tentang FTP hari ini, tetapi itu tidak bermakna ia sudah usang. Sebenarnya, banyak projek sumber terbuka dan distribusi Linux berkongsi perisian mereka di pelayan FTP. Oleh kerana FTP disokong oleh cURL, anda dapat menggunakannya sebagai klien FTP sederhana untuk memuat naik dan memuat turun fail. Anda boleh melihat fail di pelayan FTP dengan mengakses direktori:

curl ftp://ftp.debian.org/debian/

Untuk memasukkan subdirektori, ketik namanya diikuti dengan garis miring ke depan (/).

Memuat turun fail serupa dengan muat turun HTTP yang dijelaskan di bahagian sebelumnya. Anda boleh menggunakan -o atau -O, dan menambah -C - jika anda mahu menjeda muat turun.

curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso

Walaupun cURL tidak menyokong muat turun berulang (ingat, wget tidak!), Ia masih boleh memuat turun pelbagai fail sekaligus. Satu-satunya syarat ialah nama fail mengikut corak. Sebagai contoh, kita boleh memuat turun dari pelayan hosting wallpaper di mana wallpaper semuanya dinamakan 'wallpaperNUMBER':

curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg

Beberapa pelayan FTP memerlukan pengesahan sebelum anda dapat memuat turun fail. cURL membolehkan anda log masuk dengan pilihan -u (pengguna):

curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt

Anda juga boleh memuat naik fail ke pelayan FTP dengan pilihan -T (transfer):

curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com

Di sini anda juga boleh menentukan beberapa fail sebagai julat. Ciri ini kadang-kadang dipanggil 'globbing'. Sekiranya nama fail tidak mengikut corak, senaraikannya dalam tanda kurung keriting (

-T '{file1.txt,image27.jpg}'

). Sebaliknya, jika mereka mempunyai nama yang serupa, gunakan logik yang sama dari contoh muat turun Tumblr dan gunakan tanda kurung persegi (

-T 'photo[1-50].jpg'

). Pastikan untuk memberikan jalan penuh ke fail jika fail tersebut tidak ada di direktori semasa anda.

4. Periksa sama ada laman web tidak berfungsi

Kami semua pernah ke sana. Laman web yang anda perlukan tiba-tiba berhenti berfungsi. Maka Facebook tidak akan dimuat. Menghadapi masalah dunia pertama yang sebenar, apa yang anda buat?

Anda boleh menggunakan Google, meminta rakan untuk mengujinya, atau menggunakan salah satu laman satu perkhidmatan yang memberitahu anda jika laman web tidak berfungsi. Atau anda boleh jalankan terminal dan jalankan cURL:

curl -Is https://www.twitter.com -L | grep HTTP/

Tukar huruf besar I (-I) memeriksa tajuk HTTP laman web, dan pilihan -L (lokasi) ditambahkan untuk membuat pengalihan cURL mengikuti. Ini bermaksud anda tidak perlu menaip URL Facebook penuh; tulis sahaja facebook.com dan cURL akan menguruskan selebihnya terima kasih kepada -L. Sekiranya terdapat pengalihan, mereka akan dipaparkan dengan status HTTP mereka sendiri.

Mesej yang kami minati adalah '200 OK', yang bermaksud semuanya baik-baik saja dengan laman web. Sekiranya ia benar-benar merosot, anda akan melihat perkara seperti ini:

Kod status HTTP hanya bersifat maklumat yang difahami oleh pemahaman anda tentangnya. Kaedah ini tidak boleh dipercayai sepenuhnya, kerana laman web mungkin mengembalikan kod status yang menunjukkan permintaan yang berjaya diproses, namun ia akan kosong ketika anda membukanya di penyemak imbas. Namun, dalam kebanyakan kes, ia harus sesuai dengan keadaan sebenar, dan memberitahu anda mengenai apa yang sedang berlaku - atau yang sedang menurun.

5. Luaskan URL yang Dipendekkan

URL yang dipendekkan tidak semestinya buruk. Tanpa mereka, sukar untuk berkongsi pautan di Twitter dan rangkaian sosial terhad watak lain. Beberapa perkhidmatan pemendekan URL juga menawarkan analisis yang berguna. Tetapi selalu ada risiko bahawa seseorang cuba menyembunyikan kandungan berniat jahat di sebalik URL yang dipendekkan, atau troll menyembunyikan Rickroll (atau sesuatu yang jauh lebih buruk). Sekiranya anda merasa curiga dengan URL yang dipendekkan dengan alasan apa pun, cURL dapat membantu anda memperluasnya dan mengetahui di mana ia mengarah ke:

curl -sIL http://buff.ly/1lTcZSM | grep ^Location;

atau

curl -sI http://buff.ly/1lTcZSM | sed -n 's/Location: *//p';

Anda boleh menggabungkan cURL dengan

grep

atau

sed

; perbezaan utama adalah dalam pemformatan. Sed adalah salah satu alat yang mesti diketahui oleh pengguna Linux, dan ia melengkapkan cURL dalam ini dan beberapa kes penggunaan lain. Jangan lupa bahawa cURL boleh memuat turun fail dari URL yang dipendekkan (dengan syarat bahawa URL itu sebenarnya menunjuk ke fail):

curl -L -o filename.txt http://short.url

Sintaksnya sama seperti muat turun cURL lain, dan pilihan -L menguruskan pengalihan dari URL yang dipendekkan ke yang asal.

6. Tunjukkan Penghargaan Anda untuk Seni ASCII

Diakui, ini tidak begitu berguna, tetapi kelihatan keren. Dengan bantuan

pv

, utiliti untuk memantau kemajuan data, cURL dapat memaparkan animasi ASCII di terminal.

curl -s http://artscene.textfiles.com/vt100/wineglas.vt | pv -L9600 -q

Pilihan -s dan -q menyimpan kedua-dua perintah dalam mod senyap (senyap). Pilihan -L di sini merujuk kepada perintah pv, dan membolehkan anda mengubah kadar pemindahan data dalam bait sesaat. Dengan kata lain, jika animasi bergerak terlalu cepat atau terlalu perlahan, cubalah bermain dengan nombor itu. Selain daripada animasi, cURL dapat menampilkan seni ASCII biasa, statik:

Web mempunyai banyak laman web dengan semua jenis seni ASCII di luar sana: dari kepingan berkualiti tinggi yang terperinci hingga bahan NSFW yang pelik, konyol, dan bahkan. Teknik seni digital ini wujud sejak tahun 1960-an, dan hari ini merupakan sebahagian daripada budaya dan sejarah Internet, terus hidup dalam banyak koleksi dan alat yang membolehkan anda menukar teks dan gambar menjadi seni ASCII . Anda boleh menggunakannya untuk menghiasi terminal anda atau mengolok-olok rakan anda - apa sahaja yang mengapung kapal anda.

7. Eksperimen dengan Media Sosial

Menggunakan media sosial dari terminal bukanlah perkara baru - kami telah menunjukkan kepada anda klien Twitter baris perintah untuk Linux. Walaupun anda mungkin tidak akan beralih ke cURL sebagai alat bersosial dalam talian anda, ada baiknya anda mengetahui bahawa anda boleh menghantarnya ke Facebook dengannya, seperti yang dijelaskan di sini. Anda akan melihat bahawa, secara teknikal, cURL tidak melakukannya sendiri; gabungan alat menyelesaikan tugas.

Adapun Twitter, biasanya dapat menguruskannya secara langsung dari terminal dengan cURL. Kemudian Twitter menukar APInya, dan sekarang ada klien cURL khas untuk Twitter yang disebut Twurl. Ini bukan perkara yang paling mudah digunakan, terutama untuk pemula, dan memerlukan pengesahan dengan Platform Iklan Twitter. Ini masuk akal jika anda seorang pembangun atau pengguna lanjutan, tetapi tidak begitu banyak jika anda hanya mahu tweet dari baris perintah. Masih ada cara untuk bersenang-senang dengan Twitter. Anda boleh menggunakan cURL untuk memeriksa jumlah pengikut pengguna:

curl -s https://twitter.com/username | grep -o '[0-9,]* Followers';

8. Cari Alamat IP Luaran Anda

Mencari alamat IP tempatan anda cukup mudah - jalankan sahaja

cara menyambungkan telefon saya ke komputer saya
ifconfig

atau rujuk applet Pengurusan Rangkaian anda. Untuk IP luaran, kebanyakan orang menggunakan laman web khusus untuk mendapatkan maklumat ini. Namun, beberapa perkara lebih mudah dilakukan dari terminal, dan ini mungkin salah satunya. Anda juga boleh membuat alias untuk perintah cURL. Terdapat beberapa perkhidmatan dalam talian yang bekerjasama dengan cURL:

curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com

Ada yang boleh memberitahu anda lebih banyak mengenai alamat IP luaran:

curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41

Yang mesti anda buat hanyalah memilih perkhidmatan. Sekiranya anda tidak tegas, masukkan semuanya dalam alias anda, sebagai penyelesaian sandaran.

9. Tampal Teks dan Kongsi Gambar

Memecahkan aliran kerja anda tidak pernah baik untuk produktiviti dan fokus. Sekiranya anda melakukan sebahagian besar kerja di terminal, beralih ke penyemak imbas hanya untuk berkongsi beberapa fail boleh menjadi tidak praktikal, jika tidak menjengkelkan. Nasib baik, beberapa perkhidmatan perkongsian pastebin dan fail dilahirkan untuk bekerja dengan cURL, jadi anda boleh menggunakannya terus dari terminal, tanpa akaun pengguna.

Clbin dan Sprunge.us mempunyai sintaksis yang serupa. Dengan Clbin, anda memasukkan fail tempatan atau output perintah, dan ia mengembalikan pautan ke teks yang anda muat naik:

cat textfile.txt | curl -F 'clbin=<-' https://clbin.com

Ia juga menyokong muat naik gambar (PNG, JPG, dan GIF):

curl -F 'clbin=@image.png' https://clbin.com

Sekiranya anda ingin menggunakan Sprunge.us, ketik:

cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us

Sprunge.us tidak menyokong muat naik gambar buat masa ini.

Ix.io didasarkan pada prinsip yang sama dengan dua perkhidmatan sebelumnya, dengan beberapa ciri tambahan. Untuk memuat naik fail, ketik:

cat file.txt | curl -F 'f:1=<-' ix.io

atau

curl -F 'f:1=@file.txt' ix.io

Apabila anda mendapat pautan ke teks yang dimuat naik, anda dapat mengubah URL-nya untuk menunjukkan sorotan sintaks (dengan

ix.io/yourpaste+

,

ix.io/yourpaste/

, atau

ix.io/yourpaste/language

untuk skrip atau bahasa pengaturcaraan tertentu). Anda juga boleh mengehadkan berapa kali pautan dapat dilihat dengan mengubah nombor selepas

'read:1'

nilai:

cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io

Ix.io terutama ditujukan untuk fail berasaskan teks seperti kod sumber atau log sistem. Sekiranya anda ingin memuat naik pelbagai format fail, gunakan Transfer.sh . Ia menyokong gambar, penyulitan fail, dan menyimpan fail anda dalam talian selama dua minggu. Anda boleh memuat naik hingga 5 GB data ke Transfer.sh. Ini caranya:

curl --upload-file bunnies.jpg https://transfer.sh/bunnies.jpg

Anda bebas menentukan nama fail yang dimuat naik. Untuk memuat naik beberapa fail, senaraikan satu demi satu dengan pilihan -F:

curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/

10. Periksa Surat yang Belum Dibaca di GMail

Terdapat potensi besar untuk dibuka dalam cURL jika anda bersedia menyelidiki perincian protokol berkaitan e-mel (SMTP, POP, IMAP). Untuk pemeriksaan e-mel cepat, arahan ini akan dilakukan. Ini menguraikan suapan GMail anda dan memformat output (subjek e-mel dan pengirim) dengan

tr

,

awk

,

sed

dan / atau

grep

arahan. Perhatikan bahawa penyelesaian ini sangat tidak selamat kerana ia memberikan bukti kelayakan masuk anda kepada sesiapa sahaja yang mempunyai akses ke terminal anda. Versi pertama menunjukkan nama pengirim, sementara yang kedua hanya mencetak subjek e-mel yang belum dibaca:


curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | tr -d '
' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n 's/

curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | grep -oPm1 '(?<=)[^<]+' | sed '1d'

Apa Yang Boleh Dilakukan CURL?

cURL jarang digunakan sebagai arahan mandiri. Sebilangan besar orang menggunakannya sebagai sebahagian daripada skrip atau aplikasi. Namun, boleh dibuat satu pelapik praktikal dengan cURL, seperti yang telah kami tunjukkan di sini. Sebilangan besar contoh ini diadaptasi dari CommandLineFu, sumber peretasan baris perintah pintar yang hebat, dan anda tidak boleh menganggapnya sebagai batu.

Dengan pengetahuan dan pengalaman yang cukup, kita dapat mengubah setiap perintah, memformatnya secara berbeza, atau menggantinya sepenuhnya dengan penyelesaian yang lebih baik. Bolehkah anda memperbaiki arahan cURL yang kami cadangkan? Adakah anda tahu ada kegunaan lain untuk cURL? Kongsi petua anda di komen.

Kredit Gambar: Pengenalan di dalam Garis Perintah oleh Osama Khalid melalui Flickr.

Berkongsi Berkongsi Tweet E-mel Padamkan Fail dan Folder Windows Ini untuk Mengosongkan Ruang Cakera

Perlu mengosongkan ruang cakera pada komputer Windows anda? Berikut adalah fail dan folder Windows yang dapat dihapuskan dengan selamat untuk mengosongkan ruang cakera.

Baca Seterusnya
Topik-topik yang berkaitan
  • Linux
  • FTP
  • Pengurusan Muat turun
  • Terminal
Mengenai Pengarang Ivana Isadora Devcic(24 Artikel Diterbitkan)

Ivana Isadora adalah penulis dan penterjemah bebas, pencinta Linux dan fangirl KDE. Dia menyokong dan mempromosikan perisian sumber terbuka & bebas, dan dia selalu mencari aplikasi baru yang inovatif. Ketahui cara untuk berhubung di sini .

Lagi Dari Ivana Isadora Devcic

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan