Ada dua cara untuk memungkinkan Anda menjalankan biner tanpa menentukan jalurnya (tidak termasuk membuat alias atau fungsi shell untuk menjalankannya dengan jalur absolut untuk Anda):
- Salin ke direktori yang ada di
$PATH
Anda . - Tambahkan direktori tempatnya ke
$PATH
Anda .
Untuk menyalin file ke direktori di jalur Anda, misalnya /usr/local/bin
(di mana perangkat lunak yang dikelola secara lokal seharusnya berada), Anda harus memiliki hak superuser, yang biasanya berarti menggunakan sudo
:
$ sudo cp -i mybinary /usr/local/bin
Harus berhati-hati untuk tidak menimpa file yang ada di direktori target (inilah mengapa saya menambahkan -i
di sini).
Untuk menambahkan direktori ke $PATH
Anda , tambahkan baris di ~/.bashrc
Anda file (jika Anda menggunakan bash
):
PATH="$HOME/bin:$PATH"
... jika biner ada di $HOME/bin
.
Ini memiliki keuntungan bahwa Anda tidak perlu memiliki hak superuser atau mengubah/menambahkan apa pun di sistem dasar pada mesin Anda. Anda hanya perlu memindahkan biner ke bin
direktori direktori home Anda.
Perhatikan, ubah ke .bashrc
berlaku ketika file bersumber lain kali, yang terjadi jika Anda membuka terminal baru atau logout dan masuk lagi, atau menjalankan source ~/.bashrc
secara manual.
Anda harus membaca lebih lanjut tentang variabel PATH. Saya sangat curiga bahwa Anda harus menggunakan (atau mengubahnya) dengan tepat.
Saya ingin dapat memasukkannya ke dalam direktori bin
Saya kira maksud Anda /bin/
atau /usr/bin/
. Saya tidak yakin apakah bijaksana untuk menambahkan program Anda sendiri di sana. Mungkin akan lebih baik untuk meletakkan symlink di dalamnya (misalnya menggunakan sesuatu seperti ln -sv $(realpath foobar.out) /usr/bin/
), jika Anda benar-benar ingin program Anda muncul di sana (yang mungkin merupakan kesalahan IMHO karena Anda mengacaukan manajer paket distribusi Anda).
Mungkin menginstal program Anda di /usr/local/bin/
jauh lebih bijaksana (meninggalkan keduanya /bin/
dan /usr/bin/
utuh, seperti yang disediakan dan dikelola oleh distribusi Linux Anda). Lihat LSB dan baca selengkapnya tentang Standar Hierarki File.
... seperti perintah di seluruh sistem misalnya ....
cd
Ini adalah kesalahpahaman yang kuat dari pihak Anda (dalam varian asli pertanyaan Anda, Anda dengan benar menghapus cd
nanti). cd
bukan dan tidak dapat dieksekusi, ini (dan harus) merupakan perintah bawaan dari shell Anda.
Anda mungkin ingin membaca Pemrograman Linux Lanjutan yang dapat diunduh secara gratis untuk memahami mengapa cd
tidak dapat dieksekusi (direktori kerja saat ini adalah bagian dari status setiap proses, dan setiap proses memiliki prosesnya sendiri dan dapat mengubahnya menggunakan chdir(2)...)
install /path/to/oobar.out /usr/local/bin/