Pengembalian terminal tidak ditemukan untuk sebagian besar perintah Mac OSX


16

Saya benar-benar baru untuk sistem berbasis Mac OSX dan UNIX. Saya ingin menjalankan beberapa game Windows di Mac Mini, jadi saya mulai menginstal Wine dan MacPort.

Setelah melakukannya, saya mengetik sudo port install winedan terminal mengembalikan kesalahan yang tidak ditemukan. Saya mencoba perintah dasar lainnya seperti saydan cleardan semuanya mengembalikan kesalahan yang tidak ditemukan. Saya sudah mencarinya di Google dan yang saya mengerti sejauh ini adalah bahwa PATH mungkin salah diatur. Jadi saya menjalankan perintah ini: echo $PATHdan mengembalikan ini:

/ opt / lokal / bin: / opt / lokal / sbin: / opt / lokal / bin: / opt / lokal / sbin: / opt / lokal / bin

Adakah yang bisa memberi tahu saya cara mengatur jalur ini dengan benar? Saya seorang pemula yang lengkap untuk mac dan tidak tahu di mana .bash_profile atau salah satu file tersebut. Jika ini membantu, saya juga telah menginstal Xcode dan alat-alat Baris Perintah untuk Xcode. Saya menjalankan Mountain Lion.


3
Sayangnya saya pikir Anda memerlukan tutorial tentang Unix karena walaupun kami dapat menjawab pertanyaan, kami mungkin tidak dapat memberikan latar belakang yang cukup untuk membantu Anda memahaminya. Sedangkan untuk Wine - yang paling mudah adalah coba Crossover (biaya) atau Kulit Anggur (gratis) yang tidak memerlukan penggunaan terminal
user151019

Jawaban:


12

$ PATH harus berisi folder ini: /usr/bin:/usr/sbin:/bin:/sbin.

Cobalah mengedit ~/.bash_profile,, ~/.profileatau ~/.bash_login(misalnya dengan /usr/bin/open ~/.bash_profile -a TextEdit) dan mengomentari setiap baris yang memodifikasi jalur.

Jika berhasil, Anda dapat menambahkan garis seperti export PATH=/opt/local/bin:/opt/local/sbin:$PATHke ~/.bash_profile.


Saya mencoba mengekspor PATH = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin dan ia berfungsi tetapi begitu saya menutup dan membuka kembali terminal, ia kembali ke kesalahan yang sama lagi. Saya noob yang lengkap dan saya tidak tahu di mana ~ / .bash_profile atau file-file itu berada. Saya berasumsi mereka disembunyikan?
Jack Copeland

~/adalah folder rumah ( /Users/username/). File yang dimulai dengan titik disembunyikan, tetapi Anda dapat menunjukkannya dengan contoh ls -la.
Lri

.bash_profile saya sudah berisi semua ini tetapi saya masih memiliki masalah yang sama dengan perintah-perintah seperti ng atau mssql ketika saya mengeluarkannya dari terminal
dbnex14

3

Masalah serupa terjadi pada saya, jadi yang saya lakukan adalah:

1) mengetik ekspor PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"ke terminal untuk membuatnya berfungsi sementara

2) Mengedit bash_profile dengan mengetik /usr/bin/open ~/.bash_profile -a TextEdit

3) Ketika saya membuka file bash_profile saya, saya menyadari ekspor baris terakhir terlihat sangat berantakan dengan beberapa simbol aneh, jadi saya mengubahnya sepenuhnya menjadi export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Saya benar-benar pemula dalam hal ini, tetapi saya berhasil mendapatkan langkah-langkah itu dengan membaca potongan-potongan solusi dari berbagai pertanyaan tentang SE, jadi harap ini bisa membantu orang lain.


2

Sepertinya Anda menimpa jalur Anda alih-alih hanya menambahkannya.

Pastikan ketika Anda mengatur PATH Anda Anda sertakan "${PATH}"untuk memasukkan jalur yang ada, juga.

Secara default $ PATH diatur dalam beberapa file. Secara teknis Anda harus menambahkan $ PATH Anda di file .bash_profile di direktori home Anda.

Satu saran jika memeriksa apakah folder tertentu ada sebelum Anda menambahkannya ke PATH Anda.

Misalnya saya punya:

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 directoryPerintah memeriksa untuk melihat apakah direktori ada)


1

Bagi saya, saya masuk ke masalah ini ketika saya mencoba untuk menambahkan direktori baru ke PATH menggunakan perintah ekspor yang salah di ~/.bash_profile. Kedua contoh di bawah ini.

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

vs.

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

0

Selain jawaban perbaikannya, saya juga ingin memanggil satu hal untuk diuji.

Jika jendela Anda saat ini hanya memiliki variabel PATH buruk dan sistem Anda tidak lebih rusak, Anda dapat memperbaiki jalur dengan mudah:

echo $PATH
/usr/libexec/path_helper

Bandingkan output dari kedua perintah di atas. Jika Anda ingin kembali ke jalur "aman", cukup salin dan tempel baris yang path_helperdisediakan oleh terminal itu. Pada sistem Mac 10.11 yang tidak dimodifikasi, Anda harus memiliki output ini dari alat pembantu:

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

Jika jalur Anda perlu diubahsuaikan, lihat juga jawaban yang bagus tentang pertanyaan ini.


1
Atau Anda bisa mengeluarkan PATH=$(/usr/bin/getconf PATH)untuk mendapatkan PATH yang dapat digunakan di shell saat ini. /usr/localtidak ada pada sistem yang tidak dimodifikasi.
fd0

Excellent @fdo - Saya tidak tahu apa yang mungkin mengacaukan getconf sehingga mungkin sama bagusnya dengan hanya mengkodekan hal-hal yang sulit. Ini juga lebih pendek dari perbaikan "brute force" saya.
bmike

path_helpermembangun PATH dari PATH saat ini, /etc/pathsfile, dan file apa pun di dalamnya /etc/paths.d. Ini juga dapat dipengaruhi oleh pengaturan PATH di /etc/launchd.conf. getconfmencetak sistem PATH hard coded di kernel- sysctl user.cs_path.
fd0

0

Terminal ./bash_profile Anda mungkin telah ditimpa.

Gunakan export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/bindi terminal untuk sementara menulis ulang pengaturan PATH saat ini. Ini akan memberi Anda akses ke sudodan nanoyang kemudian akan Anda gunakan nano .bash_profile. Bagi saya, menghapus semua yang ada di file berfungsi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.