Sửa lỗi 'zsh: command not found' trên macOS: Hướng dẫn cấu hình PATH chi tiết

beginner🍎 macOS2026-04-06| macOS (từ Catalina đến Sonoma) sử dụng terminal Zsh

Error Message

zsh: command not found: <command_name>
#macos#zsh#terminal#homebrew#cong-cu-lap-trinh

Nỗi ám ảnh mang tên 'Command Not Found'

Bạn vừa cài đặt xong một công cụ mới, nhấn Enter và thay vì thấy số phiên bản, bạn lại nhận được dòng chữ đáng sợ zsh: command not found. Lỗi này giống như một "thử thách nhập môn" đối với các lập trình viên macOS. Nó thường xuất hiện ngay sau khi bạn thiết lập Node.js, Python, Flutter hoặc khi bạn chuyển dữ liệu sang một chiếc MacBook Pro M3 mới.

Điều gì thực sự đang xảy ra?

Kể từ phiên bản macOS Catalina, Apple đã sử dụng Zsh làm shell mặc định. Khi bạn nhập một lệnh, Zsh sẽ tìm kiếm trong một danh sách các thư mục cụ thể để tìm tệp thực thi. Danh sách này chính là $PATH của bạn. Nếu thư mục chứa công cụ mới không nằm trong danh sách đó, Zsh sẽ đơn giản là "bỏ cuộc". Để khắc phục, chúng ta chỉ cần chỉ đường cho terminal đến đúng vị trí.

Giải pháp 1: Sửa lỗi vĩnh viễn qua .zshrc

Chỉnh sửa tệp .zshrc là phương pháp đáng tin cậy nhất. Script này sẽ chạy mỗi khi bạn mở một cửa sổ terminal mới, đảm bảo các công cụ của bạn luôn sẵn sàng sử dụng.

Bước 1: Tìm vị trí cài đặt của công cụ

Đầu tiên, hãy xác định nơi phần mềm của bạn được lưu trữ. Dưới đây là 4 vị trí phổ biến nhất cho các công cụ trên macOS:

  • Homebrew (Mac Intel): /usr/local/bin
  • Homebrew (Apple Silicon M1/M2/M3): /opt/homebrew/bin
  • Flutter SDK: ~/development/flutter/bin
  • Python 3.12: ~/Library/Python/3.12/bin

Bước 2: Mở tệp cấu hình

Chúng ta sẽ sử dụng Nano, một trình soạn thảo văn bản đơn giản được tích hợp sẵn trong terminal. Chạy lệnh sau để mở cấu hình của bạn:

nano ~/.zshrc

Bước 3: Cập nhật chuỗi PATH

Đi xuống cuối tệp. Dán dòng sau vào, nhưng hãy đảm bảo thay thế phần giữ chỗ bằng đường dẫn thực tế bạn đã tìm thấy ở Bước 1:

export PATH="$PATH:/duong/dan/tuy/chinh/cua/ban"

Ví dụ, nếu bạn đang thiết lập Homebrew trên một chiếc MacBook Air M2 mới, dòng của bạn sẽ trông như thế này:

export PATH="$PATH:/opt/homebrew/bin"

Bước 4: Lưu và thoát

Nano sử dụng các phím tắt để lưu. Nhấn Ctrl + O rồi Enter để ghi các thay đổi vào ổ đĩa. Cuối cùng, nhấn Ctrl + X để quay lại dấu nhắc lệnh chính.

Bước 5: Buộc các thay đổi có hiệu lực ngay lập tức

Terminal của bạn sẽ không nhận ra thay đổi cho đến khi bạn khởi động lại nó hoặc làm mới cấu hình theo cách thủ công. Chạy lệnh này để áp dụng cập nhật ngay lập tức:

source ~/.zshrc

Giải pháp 2: Cách sửa nhanh cho Homebrew trên Apple Silicon

Mac chạy chip Apple Silicon xử lý Homebrew khác với các mẫu Intel cũ. Nếu brew là lệnh cụ thể đang bị lỗi, Homebrew có một cách tích hợp sẵn để tự sửa lỗi. Dán hai dòng này vào terminal của bạn và nhấn Enter:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"

Lệnh này sẽ thêm một script khởi tạo chuyên dụng vào tệp .zshrc của bạn để tự động xử lý logic PATH.

Giải pháp 3: Khôi phục trong trường hợp "khẩn cấp"

Tất cả chúng ta đều đã từng gặp tình huống này: bạn chỉnh sửa .zshrc, lưu lại và đột nhiên ngay cả các lệnh cơ bản như ls hay cd cũng không hoạt động. Điều này xảy ra nếu bạn vô tình ghi đè lên PATH thay vì thêm vào nó.

Đừng hoảng loạn. Bạn có thể tạm thời khôi phục các chức năng tiêu chuẩn bằng cách chạy lệnh này:

export PATH="/usr/bin:/bin:/usr/sbin:/sbin"

Bây giờ khi nano đã hoạt động trở lại, hãy mở ~/.zshrc và tìm lỗi sai. Đảm bảo bạn đã bao gồm phần $PATH: trong dòng export của mình. Đoạn mã nhỏ đó yêu cầu Zsh giữ lại tất cả các thư mục hiện có trong khi thêm thư mục mới của bạn vào cuối danh sách.

Xác minh: Lỗi đã được sửa chưa?

Sau khi đã nạp lại tệp cấu hình, hãy chạy một kiểm tra nhanh để xem danh sách các thư mục đang hoạt động:

echo $PATH

Bạn sẽ thấy đường dẫn mới của mình (như /opt/homebrew/bin) ở cuối chuỗi. Bạn cũng có thể hỏi Mac chính xác vị trí nó tìm thấy công cụ bằng cách nhập:

which <tên_lệnh>

Nếu nó trả về một đường dẫn tệp hợp lệ, bạn đã có thể tiếp tục công việc rồi.

Mẹo chuyên nghiệp để Terminal gọn gàng hơn

  • Quên .bash_profile đi: macOS đã không sử dụng Bash làm mặc định kể từ năm 2019. Nếu bạn thêm đường dẫn vào .bash_profile, chúng sẽ không có tác dụng trong Zsh.
  • Cẩn thận lỗi đánh máy: Chỉ cần thiếu một dấu hai chấm (:) hoặc thừa một khoảng trắng quanh dấu = sẽ làm hỏng toàn bộ cấu hình.
  • Lựa chọn "mạnh tay": Nếu lệnh source ~/.zshrc có vẻ không hiệu quả, hãy thoát hoàn toàn ứng dụng Terminal bằng Cmd + Q và khởi động lại. Điều này buộc môi trường phải tải lại sạch sẽ.

Related Error Notes