Nó phụ thuộc vào những gì bạn đặt làm vỏ (login-) mặc định cho hệ thống, cho Terminal, cho iTerm. Cập nhật bash
cài đặt và thiết lập để thực thi trong một trong số họ cho kết quả khác nhau.
Lỗi này xuất phát từ cái gọi là tệp chấm bạn đã cài đặt. Đây là những tập tin có dấu chấm ở phía trước (vì thế tên) như thế nào .bashrc
. Điều đó có nghĩa là chúng vô hình với Finder và đơn giản ls
. Các tệp chấm trong câu hỏi được đọc bởi shell của bạn khi nó khởi động. Chúng chứa các hướng dẫn, cài đặt, tùy chỉnh; có thể ít đoạn mã chương trình.
Không phải tất cả các tệp chấm trong thư mục nhà người dùng của bạn đều được đọc bởi trình bao. Những người đọc bằng bash có thể bao gồm:
.bash_history
.bash_profile
.bash_prompt
.bash_sessions
.bashrc
.editorconfig
.exports
.functions
.inputrc
.profile
(Danh sách này không đầy đủ)
Những tệp đó có thể do bạn tạo, do bạn thao tác hoặc bởi một số chương trình nhất định như fink, homebrew hoặc cổng. Bạn có thể vừa sao chép chúng từ mạng để "nâng cấp" / cá nhân hóa vỏ của bạn.
Bất kể bạn đến tình huống hiện tại như thế nào. Mở Terminal / iTerm của bạn từ một người dùng khác và các triệu chứng có thể sẽ không được quan sát.
Điều đó có nghĩa là: tất cả các tệp đó theo nghĩa 'an toàn để xóa': theo nghĩa là chúng không cần thiết để chạy Terminal hoặc shell của bạn. Tạo một bản sao lưu của những cái đó trong trường hợp chúng thực sự chứa các cài đặt được cá nhân hóa mà bạn có thể phụ thuộc vào công việc hàng ngày. Ví dụ cho điều đó bao gồm bổ sung cho các $PATH
biến của bạn . Không có những cái đó bạn có thể thấy các chương trình như fink không còn hoạt động.
Tuy nhiên, thông báo lỗi thực tế bạn đã đăng cho biết hai điều:
Nội dung kết hợp của các tệp chấm của bạn không hoạt động để thực hiện những gì chúng phải làm. Chính xác hơn: một lệnh (compdef) đã được gọi và điều đó không có sẵn.
Rằng bạn rất có thể đã lấy một loạt các tệp chấm từ một nguồn trên mạng như holman-dotfiles . Chúng bao gồm một lỗi có cùng thông báo lỗi.
Vì vậy, bạn nên xem qua tất cả các tệp chấm cho người dùng hiện tại của mình và chỉ giữ lại những thứ bạn nhận ra khi cần thiết (hãy nhớ các bản sao lưu). Sau đó, bạn có thể sử dụng các tệp được cập nhật từ nguồn của bạn một lần nữa. Nhưng hãy nhớ rằng những thứ này khá 'toàn diện'. Sẽ là khôn ngoan khi không sử dụng tất cả chúng một cách mù quáng và thực sự kiểm tra và chọn một tập hợp con của tất cả các tùy chọn đó.
Sử dụng tất cả chúng một cách mù quáng hoặc bừa bãi có thể không chỉ dẫn đến các vấn đề như câu hỏi gây ra câu hỏi này mà còn khi làm theo các hướng dẫn khác hoặc tư vấn khắc phục sự cố.
Cập nhật: Câu trả lời này đã được đưa ra cho phiên bản trước của câu hỏi không chỉ ra zsh là vỏ được sử dụng. -> Thay thế zsh nơi bạn đọc bash ở trên.
bash
không?