Lỗi “curl: command not found” là một trong những lỗi phổ biến khi làm việc với Linux, macOS hoặc môi trường server. Lỗi này xuất hiện khi hệ thống không nhận diện được lệnh curl, thường do chưa cài đặt hoặc biến môi trường bị lỗi.
Bài viết này sẽ giúp bạn hiểu rõ bản chất lỗi, nguyên nhân và cách xử lý triệt để trong từng trường hợp thực tế.
1. Curl là gì và dùng để làm gì?
Curl là một công cụ dòng lệnh (command-line tool) dùng để truyền dữ liệu giữa client và server thông qua nhiều giao thức mạng khác nhau như HTTP, HTTPS, FTP, SFTP…
Trong môi trường Linux/Unix, curl gần như là một công cụ “mặc định” đối với developer, sysadmin và DevOps vì tính linh hoạt và khả năng xử lý trực tiếp qua terminal mà không cần giao diện đồ họa.
Về bản chất, curl hoạt động như một client gửi request và nhận response từ server, cho phép bạn kiểm tra, tương tác và xử lý dữ liệu mạng một cách nhanh chóng.

Trong thực tế, curl không chỉ là một công cụ tải file đơn giản mà còn phục vụ rất nhiều mục đích quan trọng:
- Gọi API (REST API, Webhook): Gửi GET, POST, PUT, DELETE request để test backend hoặc tích hợp hệ thống
- Tải file từ internet: Download file, script hoặc dữ liệu trực tiếp từ URL
- Kiểm tra phản hồi server (debug): Xem header, status code, response time để kiểm tra hệ thống
- Test endpoint trong DevOps / CI/CD: Dùng trong script để verify service có hoạt động hay không
- Upload dữ liệu lên server: Gửi file hoặc dữ liệu form qua HTTP/FTP
Tham khảo thêm: 5 Lỗi hệ thống AV thường gặp và cách khắc phục | Hướng dẫn đầy đủ
2. Nguyên nhân chính dẫn đến lỗi curl: command not found
Lỗi này xảy ra khi hệ thống không thể nhận diện hoặc thực thi lệnh curl. Dưới đây là các nguyên nhân phổ biến, mỗi nguyên nhân tương ứng với một tình huống thực tế:
- Chưa cài đặt curl: Đây là nguyên nhân phổ biến nhất, thường gặp trên các hệ điều hành Linux bản tối giản hoặc container, nơi curl không được cài sẵn nên hệ thống hoàn toàn không có lệnh để thực thi
- Biến môi trường PATH chưa đúng: Curl đã được cài nhưng thư mục chứa binary chưa được khai báo trong $PATH, khiến terminal không thể tìm thấy lệnh khi người dùng nhập
- Không đủ quyền truy cập: Người dùng hiện tại không có quyền thực thi curl hoặc bị giới hạn bởi chính sách hệ thống, dẫn đến việc lệnh không thể chạy dù đã tồn tại
- File thực thi bị thiếu hoặc bị lỗi: Binary của curl có thể bị xóa, hỏng hoặc lỗi trong quá trình update hệ thống, khiến lệnh không còn hoạt động đúng
- Sai cú pháp lệnh: Người dùng nhập sai tên lệnh (ví dụ:
culr,crul) hoặc copy lệnh bị lỗi, khiến shell hiểu đây là một lệnh không tồn tại
Tất cả nguyên nhân trên đều do hệ thống không thể ánh xạ lệnh curl tới một file thực thi hợp lệ, dẫn đến lỗi “command not found”.
Tham khảo thêm: Fix lỗi Zoom không nghe được âm thanh trên máy tính – thành công
3. Cách kiểm tra curl có tồn tại trên hệ thống hay không
Trước khi cài đặt lại curl, bạn nên kiểm tra xem chương trình đã tồn tại trên máy hay chưa. Đây là bước quan trọng để tránh cài đặt lại package trong khi vấn đề thực tế chỉ nằm ở PATH.
Bạn có thể sử dụng:
command -v curl
Hoặc:
which curl
Nếu hệ thống trả về:
/usr/bin/curl
thì curl đã tồn tại và bạn nên kiểm tra tiếp cấu hình PATH.
Nếu không có kết quả, khả năng cao curl chưa được cài đặt hoặc shell hiện tại không thể tìm thấy file thực thi.
Bạn cũng có thể kiểm tra phiên bản:
curl --version
Nếu lệnh này tiếp tục trả về command not found, hãy chuyển sang bước cài đặt curl.
4. Cách xử lý lỗi Bash: curl: command not found
Khi gặp lỗi curl: command not found, bạn nên xử lý theo đúng thứ tự từ cơ bản đến nâng cao để tránh mất thời gian debug. Dưới đây là 3 cách phổ biến và hiệu quả nhất trong thực tế.
4.1. Cài đặt lại curl trên hệ thống
Trong nhiều trường hợp, lỗi xảy ra đơn giản vì hệ thống chưa được cài curl, đặc biệt trên server mới, bản Linux tối giản hoặc Docker container. Bạn có thể kiểm tra nhanh bằng lệnh:
which curl
Nếu không có kết quả, tiến hành cài đặt curl theo hệ điều hành đang sử dụng.
Ubuntu / Debian:
sudo apt update
sudo apt install -y curl
CentOS / RHEL / Rocky Linux:
sudo dnf install -y curl
Với các hệ thống cũ vẫn sử dụng YUM, có thể dùng:
sudo yum install -y curl
Alpine Linux:
apk add --no-cache curl
Arch Linux:
sudo pacman -S curl
Sau khi cài đặt xong, kiểm tra lại bằng:
curl --version
Nếu terminal hiển thị phiên bản curl cùng các giao thức được hỗ trợ, điều đó có nghĩa là curl đã được cài đặt và có thể sử dụng bình thường.
4.2. Thiết lập lại biến môi trường PATH
Trong một số trường hợp, curl đã được cài đặt nhưng hệ thống vẫn báo command not found. Khi đó, nguyên nhân có thể đến từ biến môi trường PATH không chứa thư mục đặt file thực thi curl.
Trước tiên, hãy kiểm tra vị trí của curl:
command -v curl
Hoặc:
which curl
Nếu kết quả trả về một đường dẫn như:
/usr/bin/curl
nhưng lệnh curl vẫn không chạy trong shell hiện tại, hãy kiểm tra biến PATH:
echo $PATH
Thông thường, các thư mục như /usr/bin hoặc /usr/local/bin phải nằm trong PATH. Nếu thiếu, bạn có thể thêm lại bằng cách mở file cấu hình Bash:
nano ~/.bashrc
Sau đó thêm dòng:
export PATH="$PATH:/usr/bin:/usr/local/bin"
Lưu file và áp dụng lại cấu hình:
source ~/.bashrc
Cuối cùng, kiểm tra lại:
curl --version
Nếu sử dụng Zsh thay vì Bash, bạn nên chỉnh file ~/.zshrc thay cho ~/.bashrc.
4.3. Tạo alias hoặc symbolic link cho curl
Nếu curl đã tồn tại trên hệ thống nhưng bạn cần một cách xử lý nhanh trong môi trường tạm thời, có thể tạo alias hoặc symbolic link để shell gọi đúng file thực thi.
Tạo alias:
alias curl='/usr/bin/curl'
Cách này chỉ có hiệu lực trong phiên terminal hiện tại. Nếu muốn lưu lâu dài, thêm dòng trên vào file ~/.bashrc rồi chạy:
source ~/.bashrc
Tạo symbolic link:
Nếu curl nằm ở một thư mục không có trong PATH, bạn có thể tạo symbolic link đến một thư mục đã nằm trong PATH, ví dụ:
sudo ln -s /duong-dan-thuc-te/curl /usr/local/bin/curl
Sau đó kiểm tra lại:
curl --version
Phương pháp alias hoặc symbolic link chỉ nên sử dụng khi bạn đã xác định rõ vị trí thật của curl. Nếu curl chưa được cài đặt, việc tạo alias hoặc symlink sẽ không giải quyết được vấn đề.
Tham khảo thêm: Kết nối OTG là gì? Lợi ích và cách sử dụng kết nối OTG
5. Một số lưu ý khi cài đặt và sử dụng curl
Trong môi trường server, việc cài curl nên được thực hiện thông qua package repository chính thức của hệ điều hành thay vì tải binary không rõ nguồn gốc. Ubuntu cũng khuyến nghị sử dụng các kho phần mềm chính thức khi cài đặt phần mềm.
Nếu cần tải curl trực tiếp, dự án curl duy trì trang download chính thức với các bản phát hành và package cho nhiều nền tảng. Tại thời điểm hiện tại, trang chính thức của dự án liệt kê curl 8.22.0 là bản stable mới nhất.
Ngoài ra, không nên tùy tiện cấp quyền thực thi hoặc thay đổi PATH toàn hệ thống nếu chưa xác định nguyên nhân. Với server production, mọi thay đổi nên được thực hiện có kiểm soát để tránh ảnh hưởng đến các ứng dụng và script khác.
FAQs
1. Curl command not found có phải lỗi Internet không?
Không. Đây là lỗi cho thấy shell không tìm thấy chương trình curl. Kết nối Internet có thể vẫn hoạt động bình thường.
2. Tại sao Ubuntu lại báo curl command not found?
Thông thường là do package curl chưa được cài đặt hoặc môi trường shell không tìm thấy file thực thi. Bạn có thể kiểm tra bằng command -v curl trước khi cài đặt.
3. Có cần cài lại Linux khi gặp lỗi này không?
Không. Trong hầu hết trường hợp, chỉ cần cài package curl hoặc điều chỉnh lại PATH. Không cần cài đặt lại toàn bộ hệ điều hành.
4. Có thể sử dụng wget thay cho curl không?
Có thể trong một số trường hợp tải dữ liệu hoặc kiểm tra URL, nhưng wget và curl có mục đích và tập tính năng khác nhau. Nếu script hoặc ứng dụng yêu cầu chính xác lệnh curl thì việc cài wget không thay thế được dependency đó.
5. Curl có hoạt động trên Windows và macOS không?
Có. Curl hỗ trợ rất nhiều hệ điều hành, bao gồm Linux, macOS và Windows. Trang download chính thức của dự án hiện liệt kê các bản curl cho nhiều nền tảng và kiến trúc khác nhau
























