Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Cách dùng lệnh CURL trên Linux (Ubuntu/Debian/CentOS / Fedora)

Trong bài này mình sẽ hướng dẫn các bạn cách cài đặt và sử dụng lệnh Curl trên Linux, thư viện curl command-line này dùng để truyền dữ liệu đến một máy chủ khác với nhiều tùy chọn khác nhau.

Nếu bạn là lập trình viên đang làm ở lĩnh vực website thì không xa lạ gì với các thư viện Curl, nó được dùng để tạo những request đến website khác với mục đích lấy kết quả mà website đó trả về để xử lý theo yêu cầu cụ thể nào đó.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong Linux cũng hỗ trợ một package curl sử dụng bằng dòng lệnh, mục đích là giúp Unix/Linux có thể download các files và các package trên internet bằng dòng lệnh trên terminal.

Curl không được tích hợp trong một số bản phối của Linux, vì vậy trước khi sử dụng thì bạn phải cài đặt nó trước nhé.

1. Cài đặt Curl trên Linux

Cài đặt Curl trên Ubuntu/Debian

Trong các hệ thống Linux mới nhất thì curl được cài đặt sẵn. Tuy nhiên, nếu bạn đang chạy phiên bản Ubuntu hoặc Debian thì cần chạy lệnh sau để cài đặt.

# apt-get install curl

Chạy lệnh sau để kiểm tra xem đã cài đặt thành công chưa.

dpkg -l | grep curl

Cài đặt Curl trên RHEL / CentOS / Fedora

Để cài đặt curl trên các phiên bản RHEL, CentOS Fedora thì bạn hãy đăng nhập qua SSH với quyền root và chạy lệnh sau.

# yum install curl

Tương tự, hãy chạy lệnh sau để kiểm tra xem đã cài đặt Curl trên CentOS thành công hay chưa.

# rpm -qa | grep curl

Cài đặt Curl trên OpenSUSE

Trên OpenSUSE, cài đặt curl bằng cách chạy lệnh sau.

# zypper install curl

Chạy lệnh sau để xem đã cài thành công hay chưa.

# zypper se curl

Cài đặt Curl trên ArchLinux

Để cài đặt Curl trên ArchLinux thì chạy lệnh sau.

# pacman -Sy curl

Và cuối cùng, hãy chạy lệnh sau để kiểm tra.

# pacman -Qi curl

Trên là 3 cách cài đặt Curl trên Linux, bài này đã hướng dẫn bạn cài đặt ở hầu hết các phiên bản của nó.

2. Cách sử dụng Curl trên Linux

Cú pháp chung của lệnh Curl trong Linux như sau:

curl [options] [URL...]

Trong đó tham số URL là bắt buộc, còn OPTIONS thì có thể có hoặc không.

URL là đường dẫn trỏ đến thư viện / mã nguồn trên internet, thường là đường dẫn các website.

Ví dụ: Lấy thông tin mã nguồn của website freetuts.net.

# curl freetuts.net

Lệnh sẽ trả kết quả về là nội dung mã HTML của website. Nếu bạn không chỉ rõ sử dụng phương thức HTTP hay HTTPS thì nó sẽ lấy giá trị mặc định là HTTP.

3. Lưu kết quả Curl vào file trên Linux

Ở ví dụ phần 2 mình chỉ hiển thị mã HTML trên màn hình terminal. Để lưu nó vào một file thì bạn cần thêm option -o hoặc -O nhé.

Ví dụ: Lưu file vue.js về và đặt cho nó cái tên mới.

curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Nếu bạn muốn giữ nguyên tên thì sử dụng tùy chọn -O.

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Nó sẽ lưu ngay chính thư mục mà bạn đang đứng.

4. Sử dụng Curl download nhiều file trên Linux

Để tải nhiều file cùng lúc thì hãy sử dụng tùy chọn -o nhiều lần.

Ví dụ dưới đây mình tải Arch Linux Debian cùng lúc.

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \
     -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

5. Resume download với Curl

Trong quá trình tải, đôi khi xảy ra tình trạng máy tính bị ngắt kết nối mạng. Lúc này nếu bạn muốn Linux tiếp tục tải ngay thời điểm đó thay vì tải lại từ đầu thì sử dụng tùy chọn -C.

Ví dụ: Nếu bạn đang tải Ubuntu 18.04 bằng lệnh sau.

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

Đột nhiên bị ngắt kế nối mạng, và sau khi phục hồi lại mạng thì bạn chạy lệnh sau để tiếp tục download.

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

6. Xem thông tin Header bằng Curl trong Linux

HTTP Header là những thông tin truyền tải giữa máy chủ và máy khác, nó gồm những cặp key : value.

Nếu bạn là một web developer thì không còn xa lạ gì với HTTP Header. Để xem nó trong Curl Linux thì bạn sử dụng thêm tùy chọn -I nhé.

Ví dụ: Lấy thông tin Header của đường dẫn sau: https://www.ubuntu.com/

curl -I --http2 https://www.ubuntu.com/

Kết quả như sau:

curl header JPG

7. Kiểm tra xem website có hỗ trợ HTTP/2 không?

Để kiểm tra xem một URL có hỗ trợ giao thức HTTP / 2 hay không thì chúng ta sẽ kiểm tra trong header, vì vậy mình sẽ kết hợp lệnh Grep để lọc thông tin.

curl -I --http2 -s https://linuxize.com/ | grep HTTP

Tùy chọn -s yêu cầu Curl chạy trong im lặng, ẩn các thông tin lỗi ...

Nếu server của URL trên có hỗ trợ HTTP/2 thì kết quả sẽ là:

HTTP/2 200

Ngược lại nó sẽ in ra là:

HTTP/1.1 200 OK

Kể từ phiên bản Curl 7.47.0 thì bạn không cần dùng tùy chọn --http2 bởi mặc định HTTP/2 được bật cho tất cả các kết nối.

8. Kiểm tra chuyển hướng redirect URL khi dùng Curl Linux

Mình sẽ lấy một ví dụ đó là truy xuất vào trang web google.com.

Khi bạn nhập url đó vào trình duyệt thì google sẽ chuyển hướng sang domain www.google.com.

Nhưng trong Curl thì khác, kết quả bạn sẽ nhận là một thông báo là click vào để chuyển sang version có www.

curl google.com

curl redirect JPG

Để giúp Curl nhận được kết quả chuyển hướng cuối cùng thì ta thêm tùy chọn -L.

curl -L google.com

9. Thay đổi User Agent trong Curl Linux

Có một số website họ chặn bot đọc nên yêu cầu request phải có User Agent. Đây chính là thông tin của trình duyệt đang sử dụng để truy cập vào website.

Khi bạn sử dụng Curl thì chúng ta không có dùng trình duyệt, vì vậy phải khai báo giả lập một thông tin User Agent bằng cách thêm tùy chọn -A.

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

Về User Agent thì mỗi trình duyệt và mỗi version khác nhau, vì vậy bạn nên tìm trên internet để nhập cho đúng.

10. Truyền file qua FTP

Để truy cập vào một máy chủ được bảo vệ bằng tài khoản FTP thì bạn phải xin thông tin tên đăng nhập và mật khẩu FTP của website đó, sau đó sử dụng tùy chọn -U với cú pháp như sau:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Ví dụ: Mình cần tải một file ftp://ftp.example.com/file.tar.gz

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

Tươgn tự, để upload file lên server sử dụng tài khoản FTP bằng Curl thì ta dùng tùy chọn -T đặt vào file bạn muốn upload.

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Trên là một số cách sử dụng Curl trong Linux, nó tương đối cơ bản nhưng cũng phục vụ được rất nhiều công việc trong quá trình quản trị server Linux. Hẹn gặp lại các bạn bài tiếp theo nhé.

Debian

Cùng chuyên mục:

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Các ví dụ học Bash Script trong Linux cơ bản nhất

Các ví dụ học Bash Script trong Linux cơ bản nhất

Bash Script đuọc xem là mã code lập trình trên Linux ...

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Vòng lặp while trong Shell Script

Vòng lặp while trong Shell Script

Trong Linux script, vòng lặp while được sử dụng trong ...

Top