Cách đặt lại Bash trên Mac OSX, .bash_profile bị hỏng và bash không còn hoạt động


17

Tôi đang dùng MacBook Pro, chạy phiên bản Mountain Lion mới nhất.

Tôi thực sự cần một số trợ giúp, tôi đã quản lý một số cách làm hỏng .bash_profile của tôi (tôi nghĩ) để mỗi lần tôi mở thiết bị đầu cuối, tôi nhận được lỗi được liệt kê bên dưới.

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found

Tôi không chắc chắn những gì đã xảy ra, tôi không có lệnh sudo, cd hoặc bất kỳ lệnh bình thường nào. Cách duy nhất tôi có thể truy cập vào bất kỳ thư mục chính nào là thông qua lệnh đi đến thư mục trong công cụ tìm và cố gắng tìm tệp không có kết quả.

Trên hết, tôi nghĩ rằng tôi đã tạo một tệp có thể gây ra sự cố, tôi muốn chỉnh sửa .bash_profile vì vậy tôi đã nhập

sudo nano ./bash_profile

Điều này mở một tệp mới trong nano mà tôi nghĩ sau đó đã được lưu. Sau này, tôi đã mở .bash_profile thực để thêm vào đường dẫn cho node.js.

Nếu tôi có thể truy cập .bash_profile, tôi nghĩ rằng tôi có thể đưa nó trở lại đúng hướng nhưng tôi không thể tìm thấy nó, tôi có nên cài đặt lại bash không? Nếu vậy tôi sẽ làm điều đó như thế nào trên máy Mac, tôi đã thử sử dụng

brew install bash

mà tôi nhận được

-bash: brew: command not found

Điều đầu tiên tôi sẽ thử là thay đổi sang một trình bao khác để có thể giải quyết vấn đề: xem ở đây về cách thực hiện hỗ trợ đó.apple.com / kb / TM27005 . Điều này sẽ cho phép bạn sửa đổi / xóa tệp vi phạm và thay đổi trình bao trở lại bash.
Gjallar

Cảm ơn bạn, tôi đã thử cài đặt lại bash nhưng điều duy nhất đã thay đổi là nó -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifierđã biến mất. Điều duy nhất tôi đang vật lộn là dòng đầu tiên có thể được lưu trữ, tôi đã xem trong .bash_profile, .profile và .bashrc của tôi nhưng không có gì.
Strangeone

Ok vì vậy tôi đã thêm vào /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin.bash_profile của mình và nó dường như đã sửa lỗi bash nhưng tôi vẫn gặp lỗi này -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier.
Strangeone

Bạn có thể thử như sau: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotesVà trên một dòng mới export PATH.
Gjallar

Cảm ơn bạn, điều đó dường như đã làm việc. Xin vui lòng tôi có thể hỏi tại sao bạn nghĩ rằng sẽ làm việc?
Strangeone

Câu trả lời:


12

Chỉ cần đặt tất cả các ý kiến ​​của tôi với nhau cho một câu trả lời:

Điều đầu tiên bạn nên làm là thay đổi trình bao, bằng cách này, bạn có thể đặt trình bao không tải bash init-scripts ( .bashrc, .bash_profile) - cách thực hiện việc này cho ứng dụng đầu cuối Mac OS X có thể xem tại đây: Hỗ trợ của Apple

Bây giờ bạn sẽ có thể mở một thiết bị đầu cuối một lần nữa và sử dụng biên tập dòng lệnh mà bạn yêu thích để mở .bash_profiletập tin (ví dụ nanohay vi):

Trong tệp này, bạn phải đặt lại PATHbiến của mình được thiết bị đầu cuối sử dụng để tìm các chương trình mà nó có thể thực thi.

Điều này có thể được thực hiện với hai dòng sau:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

Điều này trước tiên sẽ thiết lập các thư mục mà bạn muốn có trên PATH của bạn và xuất PATH này để làm cho nó có sẵn cho tất cả các chương trình bắt đầu từ shell này (thông qua xuất).


21

⇧⌘. hiển thị các tập tin ẩn trong hộp thoại tập tin. Bạn có thể thử mở ~ / .bash_profile bằng TextEdit và tạm thời để trống.


+1 cho phím tắt hữu ích mà tôi không biết :)
Michel

lưu ý: .bash_profile nằm trong thư mục chính của bạn (Người dùng / [tên người dùng] /. bash_profile
Amos

cảm ơn @Lri, đã cứu ngày của tôi!
Vicky_Vignesh

4

Tôi đang chạy trên cùng một vấn đề và tôi chỉ tìm thấy giải pháp đơn giản hơn:

/usr/bin/nano .bash_profile

xóa tất cả mớ hỗn độn của bạn, sau đó lưu tập tin


Câu trả lời tốt nhất. Dễ dàng và đảm bảo để làm việc.
nikk wong 17/03/2017

3

Tôi biết đây là một chủ đề cũ nhưng chỉ muốn rời khỏi đây giải pháp của tôi với hy vọng người khác xảy ra vấn đề tương tự.

Khi tôi chạy thiết bị đầu cuối từ MacOS, nó vẫn ổn với người dùng của tôi, nhưng khi đổi thành sudo thì không thể hoạt động (không tìm thấy lệnh).

Tôi đã kết thúc việc sửa nó bằng:

nano ~/.bashrc

Chỉ cần xóa đường dẫn gây ra lỗi. Khởi động lại thiết bị đầu cuối và mọi thứ đang hoạt động tốt.


0

Gần đây tôi phát hiện ra rằng các tệp kiểu DOS gây ra sự cố cho cả hai tập lệnh .bash * trong OS-X. Tôi phải sử dụng kết thúc tệp DOS cho một số mã được chia sẻ với người dùng Windows, vì vậy nếu tôi chỉnh sửa .bash_profile trong khi trong git repo đó, tôi nhận được rất nhiều thông báo lỗi khi chạy tập lệnh (khi đăng nhập). Tiện ích dos2unix đã sửa nó.


-1

Ngoài việc hiển thị các tệp ẩn và sử dụng trình soạn thảo văn bản được đề cập trước đó, còn có một cách dễ dàng hơn để mở trình bao mới mà không thay đổi trình bao mặc định của bạn. Bạn có thể nhấp vào ứng dụng Terminal và chọn "Lệnh mới ...". Sau đó gõ "sh" vào hộp thoại và chạy nó. Điều này sẽ mở một vỏ không bash và bạn có thể chỉnh sửa tệp ở đó. Trong tương lai, sẽ là một ý tưởng tốt để giữ một shell mở hoặc thử nghiệm chạy .bash_profile mới trước khi thoát.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.