Không tìm thấy trả về thiết bị đầu cuối cho hầu hết các lệnh Mac OSX


16

Tôi thực sự mới đối với các hệ thống dựa trên Mac OSX và UNIX. Tôi muốn chạy một vài trò chơi Windows trên Mac Mini vì vậy tôi bắt đầu cài đặt Wine và MacPorts.

Làm xong, tôi gõ vào sudo port install winevà thiết bị đầu cuối trả về lỗi không tìm thấy. Tôi cố gắng lệnh cơ bản khác như sayclearvà tất cả trong số họ trả lại lỗi không tìm thấy. Tôi đã googled điều này và tất cả những gì tôi đã hiểu cho đến nay là PATH có thể được đặt không chính xác. Vì vậy, tôi đã chạy lệnh này: echo $PATHvà nó trả về điều này:

/ opt / local / bin: / opt / local / sbin: / opt / local / bin: / opt / local / sbin: / opt / local / bin

Bất cứ ai có thể cho tôi biết làm thế nào để thiết lập đường dẫn này một cách chính xác? Tôi là một người mới hoàn toàn với mac và không biết .bash_profile hoặc bất kỳ tệp nào trong số đó. Nếu có ích, tôi cũng đã cài đặt Xcode và các công cụ Dòng lệnh cho Xcode. Tôi đang chạy Mountain Lion.


3
Thật không may, tôi nghĩ rằng bạn cần một hướng dẫn về Unix vì mặc dù chúng tôi có thể trả lời câu hỏi mà có lẽ chúng tôi không thể cung cấp đủ nền tảng để giúp bạn hiểu về nó. Đối với Wine - dễ nhất là thử Crossover (chi phí) hoặc Winekin (miễn phí) không yêu cầu sử dụng thiết bị đầu cuối
user151019

Câu trả lời:


12

$ PATH nên chứa các thư mục này : /usr/bin:/usr/sbin:/bin:/sbin.

Hãy thử chỉnh sửa ~/.bash_profile, ~/.profilehoặc ~/.bash_login(ví dụ /usr/bin/open ~/.bash_profile -a TextEdit) và nhận xét bất kỳ dòng nào sửa đổi đường dẫn.

Nếu công trình đó, bạn có thể thêm một dòng như export PATH=/opt/local/bin:/opt/local/sbin:$PATHđể ~/.bash_profile.


Tôi đã thử xuất PATH = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin và nó hoạt động nhưng một khi tôi đóng và mở lại thiết bị đầu cuối, nó lại quay trở lại cùng một lỗi. Tôi là một người mới hoàn toàn và tôi không biết ~ / .bash_profile hoặc bất kỳ tệp nào được đặt. Tôi cho rằng họ đang ẩn?
Jack Copeland

~/là thư mục nhà ( /Users/username/). Các tệp bắt đầu bằng một khoảng thời gian bị ẩn, nhưng bạn có thể hiển thị chúng với ví dụ ls -la.
Lri

.bash_profile của tôi đã chứa tất cả những thứ này rồi nhưng tôi vẫn gặp vấn đề tương tự với các lệnh như ng hoặc mssql khi tôi phát hành chúng từ terminal
dbnex14

3

Vấn đề tương tự đã xảy ra với tôi, vì vậy những gì tôi đã làm là:

1) gõ xuất PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"vào thiết bị đầu cuối để làm cho nó tạm thời hoạt động

2) Chỉnh sửa bash_profile bằng cách nhập /usr/bin/open ~/.bash_profile -a TextEdit

3) Khi tôi mở tệp bash_profile của mình, tôi nhận ra việc xuất dòng cuối cùng trông rất lộn xộn với một số biểu tượng lạ, vì vậy tôi đã thay đổi hoàn toàn thành export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Tôi là người mới bắt đầu hoàn toàn về vấn đề này nhưng tôi đã xoay sở để có được những bước đó bằng cách đọc những mẩu giải pháp từ các câu hỏi khác nhau trên SE, vì vậy hy vọng nó có thể giúp đỡ người khác.


2

Có vẻ như bạn ghi đè lên đường dẫn của mình thay vì chỉ thêm vào đó.

Hãy chắc chắn rằng khi bạn thiết lập PATH của bạn, bạn cũng bao "${PATH}"gồm cả đường dẫn hiện tại của mình.

Theo mặc định, $ PATH được đặt trong một vài tệp. Về mặt kỹ thuật, bạn nên thêm vào $ PATH của mình trong tệp .bash_profile trong thư mục chính của bạn.

Một gợi ý nếu kiểm tra nếu một thư mục nhất định tồn tại trước khi bạn thêm chúng vào PATH của bạn.

Ví dụ tôi có:

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

( -d directoryLệnh kiểm tra xem thư mục có tồn tại không)


1

Đối với tôi, tôi đã gặp phải vấn đề chính xác này khi tôi cố gắng thêm một thư mục mới vào PATH bằng lệnh xuất không chính xác trong tôi ~/.bash_profile. Cả hai ví dụ dưới đây.

export PATH=/some/new/path:PATH (incorrect, note missing $)

đấu với

export PATH=/some/new/path:$PATH (correct)

0

Ngoài cách khắc phục câu trả lời, tôi cũng muốn gọi ra một điều để kiểm tra.

Nếu cửa sổ hiện tại của bạn đơn giản có biến PATH xấu và hệ thống của bạn không bị hỏng nhiều hơn, bạn có thể sửa đường dẫn dễ dàng:

echo $PATH
/usr/libexec/path_helper

So sánh đầu ra của hai lệnh trên. Nếu bạn muốn quay lại đường dẫn "an toàn", chỉ cần sao chép và dán dòng path_helpercung cấp vào thiết bị đầu cuối đó. Trên hệ thống Mac 10.11 chưa sửa đổi, bạn nên có đầu ra này từ công cụ trợ giúp:

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

Nếu đường dẫn của bạn cần được tùy chỉnh, thì hãy tìm đến câu trả lời xuất sắc cho câu hỏi này.


1
Hoặc bạn có thể phát hành PATH=$(/usr/bin/getconf PATH)để có được một PATH có thể sử dụng trong trình bao hiện tại. /usr/localkhông tồn tại trên một hệ thống chưa sửa đổi.
fd0

Tuyệt vời @fdo - Tôi không nhận thức được điều gì có thể gây rối cho getconf vì vậy điều đó có thể tốt như những thứ mã hóa cứng. Nó cũng ngắn hơn bản sửa lỗi "vũ phu" của tôi.
bmike

path_helperxây dựng PATH từ PATH hiện tại, /etc/pathstệp và bất kỳ tệp nào trong /etc/paths.d. Nó cũng có thể bị ảnh hưởng bởi bất kỳ cài đặt PATH nào trong /etc/launchd.conf. getconfin hệ thống PATH cứng được mã hóa trong kernel- sysctl user.cs_path.
fd0

0

./Bash_profile của thiết bị đầu cuối của bạn có thể đã bị ghi đè.

Sử dụng export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/bintrong thiết bị đầu cuối để tạm thời viết lại các cài đặt PATH hiện tại. Điều này sẽ cung cấp cho bạn quyền truy cập sudonanosau đó bạn sẽ sử dụng nano .bash_profile. Đối với tôi, xóa tất cả mọi thứ trong tập tin làm việc.

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.