Khác -bash: ls: lệnh không tìm thấy


30

Tôi đã cài đặt bản cập nhật gần đây nhất cho OS X Lion (10.7). Sau khi tôi làm điều đó, thiết bị đầu cuối của tôi sẽ không nhận ra các lệnh bình thường. Tôi đã gõ lsvà nhận:

-bash: ls: command not found

Tôi hình dung tôi sẽ cố gắng thêm usr / bin vào đường dẫn của mình, nhưng tôi không thể tìm thấy .bash_profile để chỉnh sửa nó vì việc gõ edit .bash_profilesẽ không hiệu quả. Tôi không thể đặt Finder để hiển thị tất cả các tệp vì thiết bị đầu cuối của tôi sẽ không nhận ra các lệnh cần thiết để làm điều đó.

tôi cần phải làm gì?


2
Chúng ta hãy đi một con đường và xem những gì rung chuyển. export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bindán phần tối (hoặc gõ nó RẤT CẨN THẬN) - vì hai lệnh bị thiếu - thứ gì đó đã phá hỏng đường dẫn của bạn. Trước khi làm bất cứ điều gì lớn, khởi động một bản sao lưu có thể là thận trọng.
bmike

1
@bmike cảm ơn! đã thêm nó vào .bash_profile và giờ nó đã hoạt động. đã phải mở .bash_profile như thế này: /usr/bin/vi ~/.bash_profileĐặt nó làm câu trả lời và tôi có thể chấp nhận!
LuxuryMode

Câu trả lời:


42

Vì hai lệnh bị thiếu một thứ gì đó, dậm chân trên đường đi của bạn.

Trước khi làm bất cứ điều gì lớn, khởi động một bản sao lưu có thể là thận trọng.

Đường dẫn mặc định trên Mac OS X 10.7 (Lion) giống như thế này:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Nếu bạn đặt lại đường dẫn bằng cách nhập ở trên vào một cửa sổ shell, và sau đó gõ export PATHnó sẽ sửa một cửa sổ đó.

Vì vậy, bạn có thể bắt đầu ở đó và xem những gì khác có thể không ổn và sửa nó trong các tệp chấm khởi động của bạn hoặc ở nơi khác mà nó được xác định.

Sự cố này hầu như luôn là thứ bạn cần sửa trong các tập tin dấu chấm của mình. Đối với bash, chỉnh sửa và sửa chữa .bash_profilevà / hoặc .bashrcbằng cách hoàn tác một thay đổi gần đây, nó chỉ cần thiết lập $ PATH mà bạn cần một lần nữa. Lỗi thông thường là gán một đường dẫn mới và không đề cập đến giá trị trước đó của biến ở phía bên phải của =


2
Đối với tôi, điều này cung cấp một sửa chữa tạm thời.
Etienne Low-Décarie

2
Cảm ơn bạn! Tôi đã tăng cường một chút khi lskhông hoạt động sau khi cập nhật .bash_profile😂
Adrian

Vâng @Adrian lỗi cú pháp hoặc PATH trống có thể gây ra sự lo lắng dữ dội 😅🤭🤬🔥
bmike

Điều này đã cho một sửa chữa tạm thời. Tôi đã phải làm lại tất cả các bước sau khi tôi khởi động lại CMD
Pawan

Điều này vẫn hoạt động cho Mac OS 10.14.3
Stephen Romero

11

Điều này sẽ khắc phục vấn đề hoàn toàn và vĩnh viễn.

đầu tiên, xuất đường dẫn môi trường bằng cách sử dụng lệnh dưới đây trong thiết bị đầu cuối.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in

bây giờ bạn có các lệnh bạn muốn. (ví dụ: thử ls. Bạn sẽ thấy lệnh đang hoạt động). Nhưng điều này chỉ dành cho phiên hiện tại. Nếu bạn đóng thiết bị đầu cuối và mở một thiết bị mới, bạn sẽ gặp vấn đề trước đó. Để thay đổi này vĩnh viễn, sử dụng lệnh bên dưới,

đi đến thư mục nhà

cd ~

mở tệp .bash_profile bằng nano / vim (Tôi đang sử dụng nano tại đây)

nano .bash_profile

Điều này sẽ mở trình soạn thảo nano. Trong một dòng mới, dán sau đây;

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:$PATH

nhấn 'control' + 'o' để lưu (WriteOut) và 'control' + 'x' để thoát nano.

Tất cả đã được làm xong ! Bây giờ hãy thử các lệnh.


3

Nghe có vẻ như tôi /etc/profilekhông chạy khi khởi động shell. Đây là tệp khởi động toàn cầu chịu trách nhiệm khởi tạo PATH. Kiểm tra xem có /etc/profiletồn tại hay không và có thể đọc và thực thi được bằng lệnh sau:

. /etc/profile

Nếu không có, bạn sẽ cần khôi phục nó từ bản sao lưu hoặc máy khác đã cài đặt Lion hoặc cài đặt lại Lion. Nếu nó tồn tại nhưng không thể thực thi được, hãy thử sử dụng Disk Utility để sửa chữa quyền của đĩa.

Nếu nó tồn tại và có thể thực thi được (và nó có chứa một số mã), thì nó có thể không được chạy khi nó được yêu cầu hoặc tập lệnh khởi động của bạn bằng cách nào đó có thể ghi đè lên nó. Như một giải pháp thay thế, hãy thử đặt . /etc/profileở đầu của bạn ~/.bash_profileđể đảm bảo nó được chạy. Nếu bạn vẫn gặp phải sự cố, hãy thêm echo $PATHsau khi chạy để xem PATH đã được khởi tạo đúng chưa. Nếu có, một cái gì đó trong kịch bản của bạn đang thay đổi nó.

Đây là nội dung mặc định của /etc/profile:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

path_helperxây dựng PATH mặc định. Bạn có thể thử chạy

unset PATH; /usr/libexec/path_helper -s

để xem những gì nó tạo ra.

Trong mọi trường hợp, nếu sự cố không nằm trong (các) tập lệnh khởi động của bạn, vui lòng liên hệ với bộ phận hỗ trợ của Apple http://www.apple.com/support/contact/ hoặc báo cáo lỗi tại https://bugreport.apple.com / để cho Apple biết có vấn đề.


unset PATH; /usr/libexec/path_helper -scho tôi thấy PATH không có trong tôi /etc/profile. Bất kỳ đề xuất?
Etienne Low-Décarie

Chạy . /etc/profiletạm thời khắc phục sự cố. Tôi đã dán vào đầu của tôi ~/.bash_profile, nhưng có vẻ như điều này cũng không chạy.
Etienne Low-Décarie

1
Kiểm tra trang bash man để biết danh sách đầy đủ các tệp khởi động và thứ tự chúng được tìm kiếm. Nếu bạn có một tệp đăng nhập, nó được ưu tiên hơn hồ sơ, ví dụ. Kiểm tra các tập tin khởi động khác.
Chris Trang

1

Để kiểm tra xem đó có thực sự là vấn đề với con đường của bạn không, kết quả của nó là /bin/lsgì?

Nếu nó hoạt động, hơn bạn nên khôi phục đường dẫn của mình /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin, bạn có thể sử dụng ví dụ VIđường dẫn của nó (trên máy mac của tôi) /usr/bin/vi.


0

Tôi đã nghĩ đến việc chia sẻ lỗi dẫn tôi đến lỗi này - ít nhất là trong trường hợp của tôi,

Khi tôi thêm một cái mới PATHvào ~/.bash_profile, tôi đã quên thêm :$PATHvào cuối con đường mà tôi vừa thêm.

Tôi đã sử dụng sửa lỗi tạm thời (lệnh sau trong thiết bị đầu cuối) mà các bậc thầy ở đây đã chỉ ra để quay lại bash_profile vì tôi không thể sử dụng các lệnh vi để mở nó ở vị trí đầu tiên.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Khi tôi bước vào, tôi đã sửa chữa sai lầm của mình.

(Vấn đề dữ liệu tiêu cực!)


-1

Tôi đã cố gắng thiết lập đường dẫn maven của mình thành các biến envoronment khi điều này xảy ra. Vì vậy, tôi chỉ cần chuyển tệp .profile và .bash_profile của mình vào thùng rác và thử lại và nó đã hoạt động.


-1

Đặt lại thiết bị đầu cuối của bạn sẽ làm việc. Nó sẽ thiết lập lại cấu hình cơ bản của bạn.

Đặt lại thiết bị đầu cuối của bạn. Từ điều hướng hàng đầu đi đến Shell >> Đặt lại.

nhập mô tả hình ảnh ở đây


1
Làm thế nào để thiết lập lại Terminal giải quyết vấn đề với bash?
nohillside

-2

Có vẻ như biến PATH của bạn bị hỏng. Kiểm tra xem có bất kỳ cơ hội nào bạn đang sửa đổi biến PATH trong tập lệnh của mình không hoặc chỉ cần kiểm tra PATH bằng cách nói echo $ PATH và bạn có thể chắc chắn nếu không có gì bị hỏng.


-3

bạn có thể xuất đường dẫn như sau:

xuất PATH = $ PATH: / bin: / usr / local / bin


3
Chào mừng bạn đến hỏi khác nhau! Câu hỏi này đã có câu trả lời được chấp nhận và câu trả lời của bạn không khác biệt nhiều so với câu trả lời được chấp nhận. Xin vui lòng xem Câu hỏi Thường Gặp về cách cung cấp một câu trả lời tốt: apple.stackexchange.com/help/how-to-answer
FSB
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.