Apa $PATH
?
Bagaimana saya bisa memiliki perintah / program yang hanya tersedia untuk saya?
Saya telah melihat jalan ini ~/bin
disebutkan sebelumnya, tetapi apa gunanya, dan bagaimana saya menggunakannya?
environment-variables
Braiam
sumber
sumber
Jawaban:
$ PATH adalah variabel lingkungan yang digunakan untuk mencari perintah. ~ Adalah direktori home Anda, jadi ~ / bin akan menjadi / home / user / bin; itu adalah direktori normal.
Ketika Anda menjalankan "ls" di shell, misalnya, Anda benar-benar menjalankan program / bin / ls; lokasi yang tepat mungkin berbeda tergantung pada konfigurasi sistem Anda. Ini terjadi karena / bin ada dalam $ PATH Anda.
Untuk melihat lintasan dan menemukan di mana perintah tertentu berada:
Untuk memiliki direktori bin pribadi Anda sendiri, Anda hanya perlu menambahkannya ke path. Lakukan ini dengan mengedit ~ / .profile (file tersembunyi) untuk menyertakan baris di bawah ini. Jika baris-baris tersebut dikomentari, Anda hanya perlu menghapus komentarnya; jika mereka sudah ada di sana, Anda sudah siap!
Sekarang Anda perlu membuat direktori ~ / bin Anda dan, karena. Profil dijalankan saat login dan hanya menambahkan ~ / bin jika ada pada saat itu, Anda perlu masuk lagi untuk melihat PATH yang diperbarui.
Mari kita mengujinya:
sumber
type
untuk melihat bagaimana perintah aktual akan diselesaikan oleh shell; misalnya:which echo
dantype echo
akan melaporkan hal-hal yang berbeda,which
mengembalikan '/ bin / echo' tetapi 'ketik' mengembalikan bahwa itu adalah builtin shell, yang shell lebih suka daripada file dalam '/ bin'.which
lebih baik diganti olehtype
ataucommand
di shell interaktif, dan itu benar-benar tidak berguna dalam skrip.$HOME
variabel$PATH
untuk beberapa alasan tidak berfungsi, yaitu kita harus menggunakan~
tanda.Mengenai
~/bin
dan perintah / program hanya tersedia untuk pengguna AndaVersi Ubuntu terbaru menyertakan
~/bin
direktori di Anda$PATH
, tetapi hanya jika~/bin
direktori itu ada.Jika tidak ada:
Pastikan bahwa Anda
~/.profile
berisi bait berikut (standarnya~/.profile
sudah berlaku):Buat
~/bin
direktori:Mulai ulang komputer Anda, atau paksa bash untuk membaca kembali
~/.profile
:sumber
exec -l bash
tip "reboot atau ". Apa yang dilakukan-l
bendera? Saya tidak menemukan penjelasan diman exec
.exec -l
akan mengeksekusi bash sebagai shell login [ wiki.bash-hackers.org/commands/builtin/exec] . Singkatnya, ini memaksa bash untuk membaca kembali/etc/profile
dan~/.profile
. Hanya berlariexec bash
hanya akan membaca ulang~/.bashrc
.