Anda dapat melakukan ini hanya dengan mendeklarasikannya sebagai baru di baris perintah atau menyatakannya kembali. Misalnya, jika Anda ingin menambahkan ~/testfolder
ke variabel path Anda, Anda bisa memasukkannya di terminal Anda saat ini (ini hanya sebuah contoh):
PATH="$HOME/testfolder:$PATH"
Ini tentu saja hanya akan mengubahnya untuk waktu yang Anda katakan sesi terminal terbuka. Perhatikan $
penggunaannya di sini, Anda tidak perlu deklarasi, tetapi jika Anda ingin menampilkannya, Anda perlu menambahkan $
untuk memperluas isinya.
Jika Anda ingin mendeklarasikannya lebih tahan lama dan umum, Anda dapat menambahkannya ke dalam ~/.bashrc
file Anda (hanya untuk Anda) atau di /etc/bash.bashrc
(seluruh sistem) misalnya jika Anda ingin mereka menghitung hanya untuk Anda atau untuk semua pengguna. Pilihan lain adalah menambahkannya ke .profile
file Anda (hanya untuk diri Anda sendiri) di mana ia akan layak dari saat Anda masuk. Anda dapat melakukan ini dengan echo
misalnya jika Anda yakin variabel ini belum disetel atau jika Anda membuat yang baru (hanya sebuah contoh):
echo "variable=value" >> /path/filename
Namun jika Anda ingin mengedit file di luar direktori pengguna Anda yang merupakan kasus ketika Anda ingin mengedit /etc/bash.bashrc
Anda perlu menggunakan sudo
dan jadi Anda tidak bisa cukup menggunakan 'di sini dokumen' karena ini tidak akan berfungsi, alih-alih gunakan kemudian baris seperti di bawah ini:
echo "variable=value" | sudo tee -a /path/filename
Namun jika variabel sudah ada, Anda dapat mengubahnya dengan sed
perintah (juga hanya sebuah contoh):
sed -i.bak 's/variable=value/variable=new-value/' /path/filename
Ini akan mengedit variabel dalam file tetapi membuat cadangannya sebelum diedit. Jika Anda mengubah file di luar direktori pengguna Anda dengan sed, Anda perlu menggunakan sudo
sebagian besar kasus sehingga barisnya adalah:
sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename
Menghapus variabel dari file juga dapat dilakukan sed
, biarkan bagian kedua dari regex kosong:
sed -i.bak 's/variable=value//' /path/filename
Jika Anda tertarik dengan variabel lingkungan mana yang disetel, Anda dapat menggunakan env
perintah untuk mencantumkannya, ( set -o posix ; set ) | less
atau sh -c set
. Ketiganya memberikan berbagai jumlah output, dengan ( set -o posix ; set ) | less
memberikan kembali sebagian besar variabel yang sebenarnya ditetapkan.
( set -o posix ; set )
itu lebih sederhana untuk dikatakansh -c set
. Ini akan berfungsi meskipunsh
symlinkbash
(yang biasanya tidak pada versi Ubuntu modern).sh -c set
tidak menunjukkan benar-benar semua variabel lingkungan yang ditetapkan pada sistem. Namun saya akan memasukkannya sebagai cara ketiga untuk menunjukkan beberapa dari mereka.sh -c set
menunjukkan semua variabel lingkungan . Itu hanya tidak menunjukkan variabel shell dari shell panggilan, tetapi ini tidak pernah diwarisi oleh proses yang Anda jalankan dari shell itu, kecuali Andaexport
mereka./etc/environment
? Sepertinya itu jalan pintas menuju kebingungan.Tidak ada padanan langsung
setx /m
, tetapi ada cara untuk mencapai apa yang berhasilsetx /m
.setx /m
menempatkanvariable=value
diHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
. Non- / m (yaitu per-pengguna)setx
hanya menempatkanvariable=value
diHKCU\Environment
.Anda secara khusus meminta 'sistem lebar'. Untuk itu, Anda akan menambahkan pasangan nilai variabel ke
/etc/environment
OR atau/etc/profile.d/<yourfile>
. Yang pertama dievaluasi oleh pam, sedangkan yang terakhir dievaluasi oleh/bin/sh
. Jadi, dalam/etc/profile.d/<yourfile>
, Anda akan menambahkanvariable=value; export variable
. (pesta juga memungkinkanexport variable=value
). Untuk/etc/environment
Anda akan menambahkanvariable=value
.Setara per pengguna adalah
~/.pam_environment
dan~/.profile
.Lihat juga: https://help.ubuntu.com/community/EnvironmentVariables
sumber
Anda dapat mengekspor variabel lingkungan pada baris perintah, tetapi itu tidak akan mempengaruhi lingkungan yang efektif dalam proses yang sudah dimulai, hanya dalam proses saat ini dan subprosesnya. Jadi dalam praktiknya Anda sering perlu login kembali ketika mengubah variabel lingkungan.
sumber