NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
01/09/2024
Lượt xem

Hướng dẫn 5 cách sửa lỗi Bash: command not found trên Linux đơn giản, chi tiết

01/09/2024
16 phút đọc
Lượt xem

Đánh giá

5/5 - (2 bình chọn)

Lỗi bash: command not found là một lỗi bạn sẽ thường gặp phải trên môi trường bash và khiến bạn không thể thực thi các lệnh trên hệ điều hành Linux. Trong bài viết này Vietnix sẽ giúp bạn tìm hiểu rõ hơn về nguyên nhân xảy ra cũng như cách khắc phục lỗi này qua 5 ví dụ đơn giản và nhanh chóng để giúp bạn tiếp tục làm việc mà không bị gián đoạn.  

Path variable – hiểu đúng về biến Path trong Bash shell

Biến Path (hay còn được gọi là biến đường dẫn) có tính năng trong việc thông báo cho hệ thống shell về các vị trí cụ thể để tìm kiếm script (tập lệnh). Biến path bao gồm các đường dẫn như /usr/local/sbin, /usr/bin, /usr/local/bin khi thực hiện các script trong môi trường Bash, đặc biệt thường thấy trên hệ điều hành Linux.

Path variable - hiểu đúng về biến Path trong Bash shell
Path variable – hiểu đúng về biến Path trong Bash shell

Thực tế, bạn không cần phải chỉ định biến path mỗi lần, vì nó được cấu hình sẵn để tìm kiếm chương trình trong tất cả các thư mục.

Nguyên nhân nào gây ra lỗi Bash: command not found?

Khi bạn gặp phải thông báo lỗi bash: command not found, tức hệ thống không thể định vị lệnh mà bạn đang cố gắng thực thi. Điều này có thể xảy ra do 3 nguyên nhân thường thấy như:

  1. Lỗi chính tả: Đôi khi, chỉ một sai sót nhỏ trong cách gõ tên lệnh hoặc cú pháp không đúng cũng đủ để Bash không nhận ra lệnh bạn muốn chạy.
  2. Lệnh chưa được cài đặt: Nếu bạn cố gắng sử dụng một lệnh mà hệ thống của bạn chưa từng biết đến, chắc chắn Bash sẽ báo lỗi “command not found”.
  3. Biến môi trường PATH chưa chính xác: Bash sử dụng biến PATH để tìm kiếm các chương trình thực thi, nếu PATH chưa được cấu hình đúng hoặc thiếu các thư mục quan trọng, Bash sẽ không thể tìm thấy lệnh bạn cần.
Nguyên nhân nào gây ra lỗi Bash: command not found?
Nguyên nhân nào gây ra lỗi Bash: command not found?

Bên cạnh đó, bạn có thể tham khảo qua các câu lệnh trong Linux để hiểu chi tiết hơn khi thực hiện các script trong môi trường Bash.

Đặc biệt, nếu như bạn là một người mới bắt đầu tìm hiểu về Bash Script thì có thể tham khảo qua 2 chủ đề về cách thực thi script trong Bash để nắm bắt cách vận hành khi thực hiện các tập lệnh.

  • Chạy tập lệnh Bash: Kỹ năng bắt đầu sử dụng Bash Script với cách tạo script Bash chi tiết, dễ hiểu.
  • Chạy song song lệnh Bash với nhiều script: Kỹ thuật chạy nhiều lệnh cùng lúc trong script – tính năng phổ biến khi thực hiện lệnh.

Ví dụ 1: Kiểm tra lỗi chính tả, sai sót trong cú pháp lệnh

Khi bạn gõ sai một tập lệnh Script Bash bất kỳ, bạn sẽ không nhận diện được và trả về thông báo lỗi Bash: command not found trên terminal.

Ví dụ, bạn hãy kiểm tra bằng cách nhập sai lệnh ls như sau:

lss
Kiểm tra lỗi chính tả, sai sót trong cú pháp lệnh
Kiểm tra lỗi chính tả, sai sót trong cú pháp lệnh

Sau khi bạn gõ lệnh trên, bạn sẽ thấy kết quả trả về thông báo lỗi “Command ‘lss’ not found”. Điều này xảy ra do lỗi gõ sai hoặc nói cách khác, thư mục /bin không chứa lệnh lss. Vì vậy, để tránh lỗi “Bash: command not found”, bạn cần đảm bảo nhập lệnh chính xác lệnh ls như sau:

ls
Để tránh lỗi "bash: command not found", bạn cần đảm bảo nhập lệnh chính xác lệnh ls
Để tránh lỗi “Bash: command not found”, bạn cần đảm bảo nhập lệnh chính xác lệnh ls

Như bạn có thể thấy như hình trên, lệnh ls bây giờ có thể trả về danh sách các file và thư mục của thư mục hiện tại mà không có bất kỳ lỗi nào.

Ví dụ 2: Cài đặt và xác minh dòng lệnh trên hệ thống

Một nguyên nhân phổ biến khác gây ra lỗi Bash: command not found là lệnh chưa được cài đặt trên hệ thống của bạn. Bạn hãy đảm bảo rằng lệnh bạn muốn chạy đã được cài đặt trên hệ thống.

Ví dụ, bạn muốn kiểm tra phiên bản của trình phát video VLC bằng cách sử dụng terminal. Nhưng, bạn gặp lỗi command not found khi chạy lệnh vlc --version như hình dưới đây:

Cài đặt và xác minh dòng lệnh trên hệ thống
Cài đặt và xác minh dòng lệnh trên hệ thống

Như hình ở trên bạn có thấy rằng VLC chưa được cài đặt trên hệ thống. Vì vậy, bạn cần cài đặt VLC sau đó mới thực hiện kiểm tra phiên bản.

Để cài đặt trình phát VLC trong terminal, bạn sử dụng lệnh sudo theo cú pháp sau:

sudo apt install vlc
Cài đặt trình phát VLC trong terminal
Cài đặt trình phát VLC trong terminal

Sau khi nhập mật khẩu sudo (nếu được yêu cầu), bạn hãy đợi vài giây để quá trình cài đặt hoàn tất. Sau đó, bạn gõ lệnh vlc --version để kiểm tra phiên bản của trình phát VLC đã cài đặt trong terminal.

Quá trình cài đặt hoàn tất
Quá trình cài đặt hoàn tất

Trong hình ở trên có thể thấy lệnh đã trả về phiên bản của trình phát VLC cùng với thông tin liên quan.

Ví dụ 3: Tìm vị trí dòng lệnh trong biến PATH

Trong Linux, PATH là một biến môi trường cho hệ thống biết nơi tìm kiếm các file hoặc lệnh cụ thể. Thông thường, khi bạn nhập một lệnh trên terminal, Linux sẽ lần lượt tìm kiếm lệnh đó trong các thư mục được liệt kê trong biến PATH. Nếu không tìm thấy, bạn sẽ gặp phải lỗi Bash: command not found.

Ví dụ, lệnh ls nằm trong thư mục /usr/bin. Nếu đường dẫn này không có trong biến PATH, bạn có thể gặp lỗi command not found khi chạy lệnh ls.

Dưới đây là hình ảnh minh họa lỗi command not found khi /usr/bin không có trong PATH

lỗi "command not found" khi /usr/bin không có trong PATH
Lỗi command not found khi /usr/bin không có trong PATH

Để khắc phục, bạn hãy đảm bảo thư mục chứa lệnh /usr/bin nằm trong biến PATH. Bạn có thể thêm đường dẫn vào biến PATH bằng cách sử dụng lệnh export với cú pháp sau:

export PATH="/bin:$PATH"

Để kiểm tra xem lệnh đã hoạt động hay chưa, bạn hãy thử chạy lại lệnh ls trong terminal.

chạy lại lệnh ls trong terminal
Chạy lại lệnh ls trong terminal

Như bạn có thể thấy, lệnh ls đã có thể liệt kê các file và thư mục hiện tại vì /usr/bin đã được thêm vào biến PATH.

Ví dụ 4: Kiểm tra dòng lệnh có phải là alias không?

Alias (bí danh, biệt danh) là một tính năng cho phép bạn tạo ra các phiên bản rút gọn của các lệnh phức tạp, giúp tiết kiệm thời gian và nâng cao hiệu suất làm việc.

Ví dụ, trên Ubuntu, các bí danh phổ biến như ll (viết tắt của ls -l) và la (viết tắt của ls -a) đã được cài đặt sẵn.

Tuy nhiên, khi bạn đã quen sử dụng ll và la trên hệ thống của mình, nhưng khi chuyển sang một máy chủ Linux khác, ll lại không được nhận diện. Nguyên nhân là do lệnh này không phải là một lệnh gốc và không thể được cài đặt riêng biệt. Trong những trường hợp như vậy, bạn hãy kiểm tra xem lệnh có tồn tại ở nơi khác hay không bằng cách tìm kiếm trên internet. Nếu không, có thể đó là một alias chỉ dành riêng cho một số hệ thống nhất định.

Để kiểm tra các alias đã được định nghĩa trong hệ thống của bạn, bạn có thể chạy lệnh alias trong terminal:

Kiểm tra dòng lệnh có phải là alias không?
Kiểm tra dòng lệnh có phải là alias không?

Như bạn thấy, các lệnh ll và la đã tồn tại trong hệ thống dưới dạng alias. Tuy nhiên, nếu cả 2 không có trong hệ thống, bạn có thể tự tạo alias bằng lệnh sau:

alias alias_name='command'

Trong đó:

  • alias_name: Tên bạn muốn đặt cho alias.
  • command: Lệnh đầy đủ mà bạn muốn gán cho alias.

bất cứ khi nào alias year được gọi trong terminal sẽ trả về năm hiện tại.
bất cứ khi nào alias year được gọi trong terminal sẽ trả về năm hiện tại.

Trong hình minh hoạ ở trên, một alias có tên year đã được tạo, chứa lệnh date | tail -c 5. Vì vậy, bất cứ khi nào alias year được gọi trong terminal sẽ trả về năm hiện tại.

Ví dụ 5: Thực thi file Bash trong directory hiện tại

Bạn có thể gặp lỗi Bash: command not found khi muốn chạy một script Bash mà sử dụng đường dẫn không đầy đủ hoặc cú pháp lệnh không chính xác. 

Ví dụ, bạn muốn chạy script Bash có tên “Greetings” ngay trong thư mục hiện tại. Trường hợp bạn quên thêm dấu ./ hoặc lệnh bash trước tên file, hệ thống sẽ không thể định vị script và hiển thị lỗi. Trong trường hợp này, bạn sẽ gặp lỗi như hình dưới đây:

bash command not found 11
Hướng dẫn 5 cách sửa lỗi Bash: command not found trên Linux đơn giản, chi tiết 35

Để sửa lỗi “bash: command not found”, bạn hãy sử dụng dấu ./ hoặc lệnh bash theo sau là tên của file Bash khi thực thi trong thư mục hiện tại:

bash command not found 12
Hướng dẫn 5 cách sửa lỗi Bash: command not found trên Linux đơn giản, chi tiết 36

Như bạn có thể thấy trong hình minh hoạ phía trên, cả hai cách sử dụng dấu ./ và lệnh bash đều chạy file “Greetings” thành công.

Cách sửa lỗi sudo: [command name]: command not found”?

Khi gặp phải lỗi sudo: [command name]: command not found” trong môi trường Bash, điều này thường chỉ ra rằng lệnh bạn đang cố gắng thực thi với quyền quản trị (sudo) hoặc chưa được cài đặt trên hệ thống, hoặc không có trong biến môi trường PATH.

Để sửa lỗi này, trước tiên hãy đảm bảo rằng lệnh bạn muốn chạy tồn tại trên hệ thống. Nếu có, bạn có thể sử dụng sudo để chỉ định toàn bộ đường dẫn đến lệnh. Nếu không, bạn có thể thêm thư mục chứa lệnh vào biến môi trường PATH.

Ví dụ, bạn gặp lỗi sudo: vim: command not found khi muốn chạy trình soạn thảo văn bản Vim nguyên nhân là vì  bạn chưa cài đặt Vim hoặc đường dẫn đến Vim chưa được thêm vào biến PATH.

sửa lỗi sudo: [command name]: command not found
Sửa lỗi sudo: [command name]: command not found

Bây giờ để sửa lỗi này, bạn cần cài đặt Vim bằng lệnh sau:

sudo apt install vim
Cài đặt Vim bằng lệnh sudo
Cài đặt Vim bằng lệnh sudo

Sau đó, bạn sử dụng lệnh vim --version để xác minh quá trình cài đặt:

Sử dụng lệnh vim --version để xác minh quá trình cài đặt
Sử dụng lệnh vim –version để xác minh quá trình cài đặt

Như bạn thấy trong hình ở trên, Vim đã được cài đặt thành công và bạn có thể sử dụng mà không gặp lỗi command not found nữa.

Lưu ý: Nếu bạn vẫn gặp lỗi “sudo: [command name]: command not found” sau khi đã cài đặt lệnh, bạn cần thêm thư mục chứa lệnh vào biến PATH. Bạn có thể thực hiện việc này bằng cách sửa đổi file cấu hình shell (ví dụ: ~/.bashrc hoặc ~/.bash_profile) và thêm một dòng như export PATH=$PATH:/path/to/directory. Sau khi lưu thay đổi và cập nhật file cấu hình (ví dụ: bằng cách chạy source ~/.bashrc), bạn sẽ có thể sử dụng sudo với lệnh đó mà không gặp lỗi nữa.

So sánh Bash: command not found vs sudo: command not found

Dưới đây là bảng so sánh chi tiết hơn về hai lỗi “bash: command not found” và “sudo: command not found”:

Loại lỗiNguyên nhânNgữ cảnhVí dụ
bash [command name] not foundLệnh không được tìm thấy trong đường dẫn tìm kiếm của shell Bash.Xảy ra khi chạy một lệnh trong shell Bash nhưng lệnh đó chưa được cài đặt hoặc không có trong biến PATH.Gõ một lệnh không xác định hello_world trong shell Bash.
sudo [command name] not foundLệnh sudo được tìm thấy nhưng lệnh được chỉ định sau sudo không được tìm thấy.Xảy ra khi chạy một lệnh với sudo nhưng lệnh được chỉ định sau sudo không được tìm thấy hoặc chưa được cài đặt.Gõ sudo apt-get update nhưng apt-get chưa được cài đặt hoặc không có trong PATH, trong khi sudo thì có sẵn.

Cách 1: Kiểm tra tính khả dụng của các shell khác

Hãy thử sử dụng các shell khác như sh, dash, hoặc zsh để xem liệu chúng có hoạt động không. Điều này giúp xác định liệu vấn đề có nằm ở Bash hay không.

Cách 2: Kiểm tra, cập nhật PATH của hệ thống bằng lệnh echo

Đảm bảo rằng đường dẫn đến thư mục chứa Bash (thường là /bin) đã được thêm vào biến PATH. Sử dụng lệnh echo để kiểm tra và cập nhật PATH nếu cần thiết bằng lệnh export PATH="/bin:$PATH".

echo $PATH

Cách 3: Cài đặt lại Bash để khắc phục sự cố

Nếu bạn đã cài đặt Bash nhưng không tìm thấy đường dẫn đến Bash trong PATH, bạn có thể thử cài đặt lại Bash để khắc phục sự cố. Để cài đặt hoặc cài đặt lại Bash trong Ubuntu, bạn hãy chạy các lệnh sau:

sudo apt update

sudo apt install --reinstall bash

Cách 4: Khởi động vào môi trường Live từ thiết bị ngoài

Nếu các cách trên không hiệu quả, hãy khởi động vào môi trường Live từ USB hoặc CD/DVD. Từ đây, bạn có thể truy cập hệ thống file và sửa chữa trực tiếp vấn đề.

Như vậy, bằng cách làm theo các bước này, bạn sẽ có thể khắc phục sự cố nếu tập lệnh Bash không được tìm thấy trong Linux.

Câu hỏi thường gặp

Bash Error: command not found chỉ xảy ra với người mới bắt đầu sử dụng Linux không?

Câu trả lời là không. Không chỉ giới hạn với những người bắt đầu sử dụng Linux, lỗi này thường gặp với những người đang tập làm quen với dòng lệnh.

Có sự khác biệt giữa lỗi bash: command not found và lỗi command not found không?

Không có quá nhiều điểm khác biệt giữa hai lỗi. Ngoài ra, có những điểm khác biệt như: môi trường thực hiện lệnh (shell) hoặc môi trường thực thi lệnh (script hoặc chương trình khác)

Lời kết

Bài viết của Vietnix đã giới thiệu đến bạn những cách khắc phục lỗi “bash: command not found” thường gặp trên hệ điều hành Linux. Hy vọng với những hướng dẫn chi tiết trên, bạn đã có thể tự tin giải quyết sự cố và tiếp tục sử dụng hệ thống một cách trơn tru. Nếu bạn còn bất kỳ câu hỏi nào, hãy để lại bình luận bên dưới để được giải đáp cụ thể hơn.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG