Hingga saat ini saya digunakan untuk mengatur variabel lingkungan saya di bash.bashrc
file. Baru-baru ini saya disuruh menggunakan /etc/environment
file tersebut. Keduanya bekerja dengan baik.
Jadi, apa perbedaan di antara mereka?
Saya mencari ini di Google dan saya menemukan "bashrc digunakan untuk lingkungan dan pengguna tertentu, sistem luas". Apa yang dimaksud dengan sistem lebar di sini? /etc/bash.bashrc
Saya juga menerapkan perubahan sistem yang luas. Koreksi saya jika saya salah. Segala jenis bantuan akan dihargai ..
sumber
The
/etc/environment
berkas menetapkan variabel sistem yang luas untuk setiap pengguna pada boot. Perintah di dalam/etc/bash.bashrc
dieksekusi jikabash
shell dibuka oleh pengguna mana pun. Jadi variabel tidak akan diatur kecualibash
shell dibuka setidaknya satu kali.sumber
Dan ketika Anda bertanya tentang " sistem ":
File konfigurasi yang terletak di
/etc
direktori berlaku untuk semua pengguna di sistem. Untuk/etc/bash.bashrc
ini akan berarti untuk semua dan semua yang menggunakan "Borne Again SHell" alias Bash pada mesin itu. Bahkan jika Anda satu-satunya manusia yang menggunakannya, mungkin ada "pengguna teknis" yang terpengaruh (lihat saja/etc/passwd
dan periksa seberapa sering istilah "/ bin / bash" dinyatakan di sana - atau gunakangrep bash /etc/passwd | wc -l
, yang seharusnya memberi Anda angka itu secara langsung (artinya: "ambil" semua baris yang berisi string "bash" dari file "/ etc / passwd", dan kirim hasilnya ("|") ke perintah "wc" (jumlah kata) untuk menghitung baris ("-l").Jadi untuk pengguna Anda, lebih aman untuk memodifikasi
~/.bashrc
saja (artinya file ".bashrc" - dengan titik terkemuka, ya - di direktori home Anda, misalnya/home/ankur/.bashrc
), yang kemudian hanya mempengaruhi pengguna Anda dan meninggalkan yang lainnya sendirian. . File dalam/etc
seharusnya hanya diubah jika perubahan seluruh sistem benar-benar dimaksudkan.Selain itu: Kedua konfigurasi akan digunakan jika ada. Pertama, file sistem-lebar (di sini
/etc/bash.bashrc
:) dibaca dan "bersumber" (pengaturannya diterapkan pada sesi saat ini), dan kemudian pengguna/home/username/.bashrc
ditangani sama, dan dengan demikian dapat menambah atau bahkan mengubah / menimpa pengaturan dari global/etc/bash.bashrc
mengajukan.sumber
Di luar diskusi sistem dan lingkup pengguna, satu perbedaan yang paling signifikan
/etc/environment
adalah bukan skrip~/.bashrc
.Anda tidak dapat
/etc/environment
mengubah variabel di dalam , penugasan variabelnya yang mengambil nilai garis secara harfiah (seperti yang telah disebutkan oleh roadmr).Ubuntu Anda akan mengunci Anda jika Anda mengacaukan bagian
$PATH
dalamnya/etc/environment
dengan mencoba menambahkan jalur baruJika halaman login Ubuntu Gnome atau Unity Anda gagal membiarkan Anda masuk tanpa mengeluh kata sandi yang salah. Dan Anda baru saja dimodifikasi
/etc/environment
, kemungkinan besar terjadi.Cara mengatasinya adalah dengan masuk ke konsol virtual CTRL+ ALT+ F1masuk konsol, memeriksa secara manual
$PATH
, dan memperbaiki/etc/environment
file.Menurut ini ,
/etc/environment
dimuat oleh tumpukan PAM, yang mengisi variabel lingkungan baris demi baris.sumber
Perbedaan antara keduanya adalah bahwa
/etc/enivironment
file tersebut akan berfungsi untuk semua pengguna sedangkan file bash.bashrc akan bekerja hanya untuk pengguna itu saja. Dan jika Anda melakukan kesalahan pada/etc/environment
file maka konsekuensinya mungkin parah sementara Anda dapat dengan mudah membatalkan perubahan pada file bash.bashrc dengan menyalin isi file / etc / environment. Tetapi preferensi pertama adalah memberikan kebash.bashrc
file dan kemudian ke / etc / file environment. Bukannya jika Anda membuat perubahan padabash.bashrc
file maka terminal akan memberikan preferensi pertama ke file pengguna lokal (yaitu,bash.bashrc
) dan kemudian ke file utama (yaitu,/etc/environment
).sumber