Android

Bagaimana untuk menambah direktori ke laluan di linux

How to Add a Program to Your Path Environment Variable in Linux

How to Add a Program to Your Path Environment Variable in Linux

Isi kandungan:

Anonim

Apabila anda menaip perintah pada baris arahan, anda pada dasarnya memberitahu shell untuk menjalankan fail boleh laku dengan nama yang diberikan. Di Linux program-program yang boleh dilaksanakan seperti ls , find , file dan lain-lain, biasanya tinggal di dalam beberapa direktori yang berbeza pada sistem anda. Sebarang fail dengan kebenaran boleh laku yang disimpan dalam direktori ini boleh dijalankan dari mana-mana lokasi. Direktori yang paling biasa yang memegang program yang boleh dilaksanakan ialah /bin , /sbin , /usr/sbin , /usr/local/bin dan /usr/local/sbin .

Tetapi bagaimana shell tahu, apa direktori untuk mencari program boleh laku atau melakukan pencarian shell melalui seluruh sistem fail?

Jawapannya mudah. Apabila anda menaip perintah, shell mencari melalui semua direktori yang dinyatakan dalam pembolehubah $PATH pengguna untuk fail yang boleh laku nama itu.

Artikel ini menunjukkan cara menambah direktori ke $PATH dalam sistem Linux.

Apa itu $PATH di Linux

Pembolehubah persekitaran $PATH adalah senarai direktori-kolon yang dibatasi oleh kolon yang menceritakan shell yang direktori untuk mencari fail yang dapat dieksekusi.

Untuk menyemak direktori apa dalam $PATH anda, anda boleh menggunakan sama ada perintah printenv atau echo :

echo $PATH

Output akan kelihatan seperti ini:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Menambah Direktori ke $PATH

Terdapat situasi di mana anda mungkin mahu menambah direktori lain yang pembolehubah $PATH . Contohnya, sesetengah program mungkin dipasang di lokasi yang berlainan atau anda mungkin ingin mempunyai direktori khusus untuk scrips peribadi anda, tetapi dapat menjalankannya tanpa menentukan jalan mutlak ke fail yang boleh dieksekusi. Untuk melakukan ini anda hanya perlu menambah direktori ke $PATH .

Katakan anda mempunyai direktori dipanggil bin terletak di direktori Rumah anda di mana anda menyimpan skrip shell anda. Untuk menambah direktori ke jenis $PATH di:

export PATH="$HOME/bin:$PATH"

Perintah export akan mengeksport pemboleh ubah yang diubahsuai kepada persekitaran proses kanak-kanak shell.

Anda kini boleh menjalankan skrip anda hanya dengan menaip nama skrip yang boleh dijalankan tanpa perlu menentukan laluan penuh yang boleh dilaksanakan.

Walau bagaimanapun, perubahan ini hanya bersifat sementara dan sah hanya dalam sesi shell semasa.

Untuk membuat perubahan kekal, anda perlu menentukan pembolehubah $PATH dalam fail konfigurasi shell. Dalam kebanyakan pengedaran Linux apabila anda memulakan sesi baru, pembolehubah persekitaran dibaca dari fail berikut:

  • Fail konfigurasi khusus shell global seperti /etc/environment dan /etc/profile . Gunakan fail ini jika anda mahu direktori baru ditambah kepada semua pengguna sistem $PATH .

    Per-pengguna shell fail konfigurasi tertentu. Sebagai contoh, jika anda menggunakan Bash, anda boleh menetapkan pembolehubah $PATH dalam fail ~/.zshrc dan jika anda menggunakan Zsh nama fail ialah ~/.zshrc .

Dalam contoh ini, kami akan menetapkan pembolehubah dalam fail ~/.bashrc . Buka fail dengan editor teks anda dan tambahkan baris berikut pada akhirnya:

nano ~/.bashrc ~ /.bashrc

export PATH="$HOME/bin:$PATH"

Simpan fail dan muatkan $PATH baru ke dalam sesi shell semasa menggunakan arahan source :

source ~/.bashrc

Untuk mengesahkan bahawa direktori telah berjaya ditambah, cetak nilai $PATH dengan menaip:

echo $PATH

Kesimpulannya

Menambah direktori baru kepada pengguna anda atau pembolehubah $PATH global agak mudah. Ini membolehkan anda melaksanakan arahan dan skrip yang disimpan di lokasi yang tidak standard tanpa perlu mengetik laluan penuh ke laku yang boleh dieksekusi.

Arahan yang sama berlaku untuk setiap pengedaran Linux, termasuk Ubuntu, CentOS, RHEL, Debian dan Linux Mint.

Jangan ragu untuk meninggalkan komen jika anda mempunyai sebarang pertanyaan.

terminal