Kapan saya melakukannya
which pip3
saya mendapat
/usr/local/bin/pip3
tetapi ketika saya mencoba mengeksekusi pip3
saya mendapatkan kesalahan sebagai berikut:
bash: /usr/bin/pip3: No such file or directory
Ini karena saya baru saja menghapus file itu. Sekarang which
perintah menunjuk ke versi lain dari pip3
yang terletak di dalam /usr/local/bin
tetapi shell masih mengingat jalan yang salah. Bagaimana saya membuatnya melupakan jalan itu?
The which
pengguna mengatakan
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in
a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not follow
symbolic links.
Keduanya /usr/local/bin
dan /usr/bin
berada di PATH
variabel saya , dan /usr/local/bin/pip3
bukan tautan simbolis, ini merupakan executable. Jadi mengapa tidak dieksekusi?
/usr/local/bin/pip3
?pip3
shell itu ketika itu di/usr/bin
dan kemudian memindahkannya?hash -t pip3
?hash -t pip3
mencetak/usr/bin/pip3
type
eather daripadawhich
.type
dibangun menjadi shell posix dan memberi tahu Anda apa yang akan dilakukan shell, daripadawhich
mencoba menebak apa yang akan dilakukan shell.Jawaban:
Ketika Anda menjalankan perintah di
bash
dalamnya akan mengingat lokasi yang dapat dieksekusi sehingga tidak perlu mencariPATH
lagi setiap kali. Jadi jika Anda menjalankan executable, maka ubah lokasi,bash
masih akan mencoba menggunakan lokasi yang lama. Anda harus dapat mengonfirmasi ini denganhash -t pip3
yang akan menunjukkan lokasi lama.Jika Anda menjalankannya
hash -d pip3
akan memberitahu bash untuk melupakan lokasi lama dan harus mencari yang baru saat Anda mencoba.sumber
hash -r
untuk menghapus seluruh tabel.which
.help
daripada pria, jadi di sinihelp hash
type hash
akan memberi tahu Anda bahwa itu adalah shell builtin, sehingga tidak memiliki halaman manualnya sendiri. Sebagai gantinya, gunakanhelp hash
atau carihash
di halaman manual bash.man
... karenahash
ini adalahbash
builtin, Anda inginman bash
menemukannya. Tapi apa yang dikatakan halaman manual pada dasarnya adalah apa yanghelp hash
ingin dikatakan bash