GNU/Linux >> Belajar Linux >  >> Linux

Belajar Menggunakan Perintah CURL di Linux Dengan Contoh Ini

Apa itu CURL ?

CURL adalah alat untuk transfer data. Ini juga tersedia sebagai perpustakaan untuk pengembang dan sebagai CLI untuk kasus penggunaan berbasis terminal. Keduanya memiliki mesin yang sama di dalamnya (Kenyataannya adalah bahwa alat CLI hanyalah program yang menggunakan perpustakaan di bawah kap).

CURL bekerja dengan setiap protokol yang mungkin Anda gunakan. Buka situs ini untuk memeriksa apakah CURL berfungsi dengan protokol target Anda atau tidak.

Apa yang dapat dilakukan CURL?

Hmm… Segala sesuatu yang berhubungan dengan transfer data. Setiap orang pasti pernah menggunakan browser. Bahkan sekarang, Anda membaca artikel ini melalui browser Anda. Apa yang dilakukan browser, ia meminta halaman dan mendapatkannya sebagai tanggapan. Itu bisa menulis dan membaca cookie. Dan kemudian merender (menampilkan konten, gambar, dan mengeksekusi skrip JS).

CURL dapat melakukan semua hal yang dilakukan browser kecuali rendering bagian terakhir karena tidak terkait dengan transfer data.

Sebagai penutup, CURL dapat mengunduh halaman HTML, mengisi formulir HTML dan mengirimkannya, mengunduh file dari server FTP/HTTP dan mengunggah file ke cookie yang sama dan membaca/menulis.

Ini menjadikannya alat yang sangat baik untuk digunakan dalam skrip, debugging, dan analisis forensik, dll.

Contoh perintah ikal

Mari kita lihat apa yang dapat Anda lakukan dengan Curl.

1. Dapatkan tanggapan dari server

Segala sesuatu dari server adalah respons terhadap permintaan. Jadi mendapatkan halaman HTML sama dengan mendownload file.

Untuk mendapatkan respons HTML dari http://info.cern.c,

curl http://info.cern.ch/

Untuk mendapatkan daftar posting sebagai tanggapan dari server ( https://jsonplaceholder.typicode.com/posts),

curl https://jsonplaceholder.typicode.com/posts

Karena kami tahu cara mendapatkan respons dari server, Anda dapat mengunduh file (misalnya logo Google).

curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

Perintah di atas akan membuang data gambar biner yang tidak dapat Anda lihat di terminal. Anda perlu menyimpannya dan kemudian menggunakan penampil foto untuk melihatnya.

Perhatikan bahwa berbagai tanda opsi dapat ditempatkan di mana saja pada perintah alih-alih urutan yang ketat. Jadi jangan khawatir jika Anda menempatkan opsi apa pun di bagian terakhir sementara contoh memiliki tanda di awal.

2. Simpan file dengan nama file default

Setiap file yang disajikan di internet memiliki nama file. Untuk menggunakan nama file yang sama dengan nama file yang diunduh, gunakan tanda -O.

curl -O http://www.google.com/robots.txt

3. Simpan file dengan nama khusus

Untuk menyimpan nama file dengan nama kustom Anda sendiri, gunakan tanda -o diikuti (secara ketat) dengan nama kustom.

curl -O http://www.google.com/robots.txt googleRobots.txt

4. Unduh banyak file

Untuk mengunduh banyak file, pisahkan dengan spasi.

curl url1 url2 url3

Jika Anda ingin menggunakan tanda -O untuk semua URL, gunakan

curl url1 url2 url3 -O -O -O 

Solusi yang sama harus dilakukan untuk bendera apa pun. Ini karena kemunculan pertama dari tanda tertentu adalah untuk URL pertama, tanda kedua untuk URL kedua dan seterusnya.

5. Unduh berbagai file

curl memiliki kemampuan bawaan untuk mengunduh berbagai file dari server. Hal ini dapat diilustrasikan dari contoh berikut.

curl http://www.google.com/logo/logo[1-9].png

Perintah di atas mengunduh file dari logo1.png, logo2.png, logo3.png dan hingga logo9.png.

6. Unduh file hanya jika terbaru

Untuk mengunduh file hanya jika waktu modifikasi file lebih lama dari waktu yang ditentukan.

curl url -z "DD MMM YY MM:HH:SS"

7. Lanjutkan Mengunduh

Jika Anda telah mentransfer sebagian file, Anda dapat melanjutkan transfer dengan menggunakan flag -C. Offset dari mana transfer perlu dilanjutkan harus diteruskan sebagai parameter ke flag -C.

curl -C 1024 http://seeni.linuxhandbook.org/files/largeFile.mpv -O

8. Unggah file

Untuk mengunggah file ke server, seseorang perlu menggunakan flag -T diikuti dengan jalur file di sistem lokal Anda.

curl -T uploadFile.txt http://upload.linuxhandbook.org/files

9. Hapus file

Untuk menghapus file bernama deleteFile.txt di server, seseorang dapat menggunakan flag -X yang ditujukan untuk kata kerja/metode HTTP apa pun (seperti GET, POST, PUT, DELETE, PATCH). Sebagian besar server FTP akan mengonfigurasi metode DELETE jika tidak semua metode HTTP lanjutan.

curl -X DELETE http://upload.linuxhandbook.org/files/deleteFile.txt

Anda juga dapat memodifikasi perintah di atas untuk metode HTTP apa pun untuk melakukan tugas yang sesuai. Misalnya, jika server Anda mengizinkan metode TRUNCATE ( ini adalah metode HTTP yang dibuat-buat, bukan metode standar) yang hanya menghapus konten dalam file dan bukan file, seseorang dapat menggunakan perintah yang mirip dengan yang di bawah ini.

curl -X  TRUNCATE http://upload.linuxhandbook.org/files/mysql.dump

Disebutkan di atas adalah kegunaan utama curl. Tetapi mungkin ada kesulitan yang perlu diatasi seperti pengalihan, otentikasi pengguna, sertifikat SSL, dll., Kami dapat menyebutnya add-on karena hanya opsional tetapi tetap penting untuk tujuan tertentu. Mari kita lihat beberapa add-on tersebut dan cara menanganinya dengan curl di bagian selanjutnya.

10. Hindari pengalihan

Saat Anda meminta http://www.google.com , Anda hanya akan disajikan laman regional seperti www.google.co.in. Ini dilakukan dengan bantuan pengalihan (paket HTTP dengan kode status dalam kisaran 300-399).

Anda dapat menghindari pengalihan dengan opsi L.

curl -L  http://www.google.com

11. Otentikasi

Ketika server dikonfigurasi untuk melayani hanya individu tertentu dengan kredensial, mereka akan diberikan nama pengguna dan kata sandi. Seseorang dapat melakukan login dengan bantuan flag -u.

curl -u username:password http://seeni.linuxhandbook.org/files/tasks.txt

12. Batasi transfer data

Jika Anda ingin menerapkan batas transfer data, gunakan flag –limit-rate. Perintah berikut mencoba mengunduh file dengan batas kecepatan 10K.

curl --limit-rate 10K http://seeni.linuxhandbook.org/files/logoDetails.tgz

13. Tampilkan/Sembunyikan Status transfer

Jika respons dialihkan dari terminal seperti mengunduh, mengunggah, lalu curl secara otomatis menunjukkan status/pengukur kemajuan untuk transfer.

Jika Anda tidak ingin melihat pengukur kemajuan, cukup tambahkan perintah dengan tanda -s. Kemajuan tidak akan ditampilkan untuk respons yang diarahkan ke terminal.

14. Abaikan sertifikat SSL

Apakah Anda ingat situasi di mana Anda perlu memberikan pengecualian sertifikat keamanan untuk mengunjungi beberapa situs web? Jika Anda mempercayai sumbernya dan ingin melakukan transfer data, Anda dapat mengabaikan validasi sertifikat SSL dengan menggunakan tanda -k.

curl -k https://notSoSecure.org/files/logoDetails.tgz

15. Dapatkan Informasi Header juga

Untuk menampilkan informasi header bersama dengan data yang ditransfer, gunakan tanda -i.

curl -i http://www.google.com/robots.txt

16. Dapatkan informasi Header Saja

Jika Anda hanya menginginkan header dan bukan data, gunakan tanda -I

curl -I http://www.google.com/robots.txt

17. Ubah Agen Pengguna

Beberapa situs web dan server tidak mengizinkan jenis perangkat tertentu untuk mengakses sistem mereka. Tapi bagaimana mereka tahu bahwa kita menggunakan jenis perangkat tertentu? Ini karena bidang header HTTP Agen-Pengguna. Kami dapat mengubah Agen Pengguna ini dengan tanda -A.

curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png

18. Mengirim data ke Server

Jika server membutuhkan beberapa data seperti token atau kunci API, gunakan flag -d untuk mengirim data. Data yang perlu dikirim harus mengikuti tanda pada perintah. Seseorang dapat menggunakan "&" untuk menggabungkan banyak data. Ini biasanya dilakukan oleh permintaan GET dan POST di browser. Ini adalah salah satu cara untuk mengirimkan informasi formulir Anda.

curl -d "token=34343abvfgh&name='seeni'" http://api.restful.org/getcontent

19. Menulis Cookie ke File

Cookie adalah beberapa informasi kecil yang memungkinkan pemeliharaan sesi dengan protokol HTTP stateless. Jika Anda ingin tahu lebih banyak tentang Cookie, lihat sumber yang bagus ini.

Untuk menulis cookie ke file, tanda -c diikuti dengan nama file cookie harus digunakan.

curl -c googleCookie.txt http://www.google.com/files

20. Membaca Cookie dari File

Untuk membaca cookie dari file, tanda -b diikuti dengan nama file cookie dapat digunakan.

curl -b googleCookie.txt http://www.google.com/files

Perhatikan bahwa -b flag hanya membaca cookie dari file. Jadi jika server mengirim ulang cookie lain, Anda mungkin perlu menggunakan opsi -c untuk menulisnya.

21. Mulai Sesi baru

Jika Anda ingin memulai sesi baru dengan membuang cookie, gunakan tanda -j. Ini memulai sesi baru bahkan jika Anda telah menyediakan file cookie untuk dibaca dengan tanda -b.

curl -b googleCookie.txt http://www.google.com/files -j

Selamat! Anda berhasil sampai akhir. Jika Anda merasa artikel ini bermanfaat, bagikan dengan teman Anda dan ikuti kami di media sosial. Jika Anda memiliki saran tentang artikel ini atau topik lainnya, jangan ragu untuk menyampaikannya di bawah.


Linux
  1. Perintah wc Linux dengan Contoh

  2. Urutkan Perintah di Linux dengan Contoh

  3. perintah chattr di Linux dengan contoh

  1. Cara Menggunakan Perintah IP di Linux dengan Contoh

  2. Perintah alias Linux:Cara Menggunakannya Dengan Contoh

  3. 10 Perintah Cepat Linux Tail dengan Contoh

  1. Perintah Curl di Linux dengan Contoh

  2. Perintah ip Linux dengan Contoh

  3. 15 Perintah Linux ps dengan Contoh