selama pekerjaan saya, saya harus terus-menerus menambahkan perintah alias ke bashrc, sebagian besar perintah itu harus dijalankan oleh pengguna lain. apakah ada cara saya bisa menambahkan perintah alias ke bashrc dari sumber eksternal?
selama pekerjaan saya, saya harus terus-menerus menambahkan perintah alias ke bashrc, sebagian besar perintah itu harus dijalankan oleh pengguna lain. apakah ada cara saya bisa menambahkan perintah alias ke bashrc dari sumber eksternal?
Jawaban:
Banyak file konfigurasi di direktori home pengguna hanya menimpa / menambah yang ada di /etc
- misalnya pengaturan untuk GIMP di home pengguna berada ~/.gimp-2.*
, yang menambah konfigurasi seluruh sistem /etc/gimp/2.0
.
Jadi untuk ~/.bashrc
, Anda dapat mengedit file konfigurasi sistem /etc/bash.bashrc
(untuk fungsi / alias ) atau /etc/profile
(untuk hal-hal lingkungan) - Anda dapat daftar lengkap dari man bash
:
FILES
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
/etc/bash.bash_logout
The systemwide login shell cleanup file, executed when a login shell exits
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file
Peringatan ini diberikan untuk beberapa sistem Linux dalam file:
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
Jadi Anda dapat mengedit file-file itu, Anda mungkin ingin mencadangkannya terlebih dahulu ( cp /etc/bash.bashrc /etc/bash.bashrc-backup
misalnya), atau membuat skrip shell di /etc/profile.d
- misalnya Anda dapat membuat satu dengan perintah ini (dengan sudo / sebagai root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
Lalu buka dengan nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
Dan periksa apakah itu bekerja dengan melihat apakah itu muncul di output alias
- Perhatikan bahwa Anda mungkin harus keluar / masuk atau reboot untuk melihat perubahan (jika Anda tidak mau, berjalan source /etc/profile
setelah perubahan mungkin berhasil)
[sunting: menghapus tautan mati ini] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]
~/.bash_logout
dan /etc/bash.bash_logout
tidak berhasil. :(
/etc/profile.d/
akan tidak dijemput oleh sub-proses yang benar? Jadi alias hanya tersedia saat Bash adalah shell login?
Pergi ke /etc/bash.bashrc
vim /etc/bash.bashrc
dan buat alias Anda di sana.
tambahkan alias Anda di baris terakhir.
alias abc = "terserah"
Alias itu akan menjadi global untuk semua pengguna.
tetapi untuk alasan keamanan, kami tidak menyarankan Anda demikian.
ada profile.d
direktori yang berisi file lingkungan pengguna
pergi ke
cd /etc/profile.d/
alias alias
dan tambahkan alias Anda di sini.
tanpa memengaruhi file sistem Anda. Ini aman dan cara yang tepat untuk bekerja dengan file lingkungan Anda.
Sudah ada jawaban yang diterima di sini, tetapi Anda mungkin mempertimbangkan untuk menggunakan beberapa bentuk modul lingkungan untuk menangani konfigurasi seluruh sistem dari lingkungan pengguna alih-alih mengacaukan file di /etc/profile.d, dll. Ini terutama benar jika Anda ingin kelola kontrol ini di satu tempat di banyak kerang. Lmod (dalam pengembangan yang sangat aktif), modul C / TCL (solusi klasik), atau Cmod (ringan).
Tidak tahu apakah saya melakukannya dengan benar, tetapi berfungsi bagi saya untuk menyimpan direktori / home / ComunAtodos (ditulis dengan huruf besar dan dalam bahasa Spanyol untuk membuktikan bahwa itu bukan direktori asli linux) dan meletakkan .bashrc, .nanorc dan .bash_aliases di sana. Lalu saya mereferensikan mereka di /etc/skel/.profile sehingga pengguna baru menunjuk ke mereka, dan hanya menambahkan ekstra untuk pengguna tertentu yang membutuhkannya.
Saya benar-benar baru dalam sistem operativ Linux, tetapi saya membuat sketsa skrip bash yang berfungsi untuk memodifikasi semua file .bashrc pengguna dan bukan file sistem /etc/.bashrc.
#!/bin/bash
X=$( cat etc/passwd | cut -f1 -d: ) #All-users
For X in /home/*/.bashrc ; do
echo "alias ls='ls -al'" >> $X
2>/dev/null
done
source $X
exit 0
Oke jadi saya tahu bahwa skrip itu berfungsi, tetapi saya tidak melakukannya jika bebas dari kesalahan :) Anda juga dapat memodifikasinya sehingga tidak melibatkan semua pengguna, mungkin Anda membuat file untuk semua pengguna yang membutuhkan file .bashrc mereka disesuaikan.
.bashrc
file, dan selalu menambahkan terlepas dari apakah baris sudah ada di file mereka.
/etc/skel/.bashrc
untuk mengubah seperti apa konten~/.bashrc
untuk pengguna yang baru dibuat.