Bagaimana saya bisa mengatur file .bashrc tunggal untuk beberapa pengguna?

30

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?

pengguna309584
sumber

Jawaban:

40

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-backupmisalnya), 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/profilesetelah perubahan mungkin berhasil)

[sunting: menghapus tautan mati ini] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]

Wilf
sumber
5
Banyak saran bagus di sana. Saya pikir ada satu opsi lain, yang layak disebut juga. Orang dapat mengedit /etc/skel/.bashrcuntuk mengubah seperti apa konten ~/.bashrcuntuk pengguna yang baru dibuat.
kasperd
@kasperd - ide bagus (Anda bisa menjawabnya jika mau)
Wilf
Dalam pengalaman saya, ~/.bash_logoutdan /etc/bash.bash_logouttidak berhasil. :(
Paddy Landau
AFAIK alias di /etc/profile.d/akan tidak dijemput oleh sub-proses yang benar? Jadi alias hanya tersedia saat Bash adalah shell login?
Franklin Yu
Saya pikir beberapa dari mereka hanya bekerja ketika digunakan di katakanlah TTY sebagai satu-satunya lingkungan, di terminal desktop beberapa dari mereka mungkin tidak digunakan. Saya harus menguji ini untuk memverifikasi ini dan tidak dapat saat ini!
Wilf
7

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.ddirektori 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.

Dishank Jindal
sumber
3

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).

Bill Barth
sumber
1

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.

Fik dari borg
sumber
-1

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.

Farhad Rahimi
sumber
3
Baris pertama (tempat Anda membaca / etc / passwd) sepertinya tidak melakukan apa-apa. Baris ke-4 Anda tampaknya merupakan kesalahan (dan saya tidak melihat mengapa Anda ingin menekan kesalahan). "exit 0" berlebihan. Ini mengharuskan semua pengguna sudah memiliki .bashrcfile, dan selalu menambahkan terlepas dari apakah baris sudah ada di file mereka.
thomasrutter
Saya berpikir untuk mendapatkan nama semua pengguna dengan garis itu? Tapi sekarang saya berpikir tentang hal itu saya hanya bisa memotong </ etc / passwd, ada banyak nama di daftar itu jadi saya tidak ingin IT membuat kesalahan bagi mereka yang tidak memiliki bashrc filé. Bagaimana kamu bisa menambahkan hanya jika garis tidak ada? Dan bisakah Anda menulis skrip yang tepat untuk jenis rask ini, harap saya hanya menggunakan Linux selama seminggu.
Farhad Rahimi
Sepertinya Anda sudah memiliki beberapa keterampilan tetapi tutorial ini bagus untuk skrip shell: shellscript.sh . Untuk pertanyaan lain seperti cara menambahkan baris hanya jika belum ada, jangan ragu untuk menanyakannya sebagai pertanyaan baru di sini.
thomasrutter