Qual è la differenza tra /etc/bash.bashrc e ~ / .bashrc? Quale dovrei usare?


20

Quando dovrei usare ciascuno dei due file .bashrc per impostare i miei alias, prompt, ecc.?

Risposte:


34

/etc/bash.bashrc si applica a tutti gli utenti

~/.bashrc si applica solo all'utente in cui si trova la cartella principale.


3
E implicito nella risposta di Dex è ... Usa il tuo ~ / .bashrc locale in tutti i casi tranne dove vuoi far valere la tua volontà su tutti coloro che usano quella macchina.
dacracot,

A rigor di termini, non stai imponendo nulla in /etc/bash.bashrc perché gli utenti possono sempre modificarlo nel proprio ~ / .bashrc
Kim

... tranne quando qualcuno decide di creare tutte le variabili readonlyin /etc/bash.bashrc: \
gravità

1
Sotto Ubuntu, questo file, come commentato all'inizio, deve essere "ricavato" dal file / etc / profile. Ho aggiunto un comando alias alla fine di /etc/bash.bashrc e ho aggiunto il comando "source /etc/bash.bashrc" alla fine del file / etc / profile. Funziona come un fascino.
jfmessier,

2

Secondo la documentazione GNU Bash :

Quando Bash viene invocato come shell di login interattiva o come shell non interattiva con l'opzione --login, legge ed esegue prima i comandi dal file / etc / profile , se quel file esiste. Dopo aver letto quel file, cerca ~ / .bash_profile , ~ / .bash_login e ~ / .profile, in quell'ordine, e legge ed esegue i comandi dal primo che esiste ed è leggibile. L'opzione --noprofile può essere usata all'avvio della shell per inibire questo comportamento.

Richiamato come shell interattiva non di accesso Quando viene avviata una shell interattiva che non è una shell di accesso, Bash legge ed esegue i comandi da ~ / .bashrc , se quel file esiste. Questo può essere inibito usando l'opzione --norc. L'opzione --rcfile forzerà Bash a leggere ed eseguire comandi dal file invece di ~ / .bashrc.

Quindi, in genere, il tuo ~ / .bash_profile contiene la linea

if [-f ~ / .bashrc]; poi . ~ / .Bashrc; fi

dopo (o prima) qualsiasi inizializzazione specifica per il login.


1
Non proprio. Guarda questo file git.savannah.gnu.org/cgit/bash.git/tree/shell.c , nella funzione run_startup_files () dove viene utilizzato SYS_BASHRC, definito in git.savannah.gnu.org/cgit/bash.git/ tree / config-top.h
mloskot

1

Per le tue preferenze personali e script personali o funzioni bash dovresti usare .bashrc (alias, Funzioni aggiunte per bash ...)

Nel momento in cui desideri condividere qualcosa con tutti gli utenti (o la maggior parte degli utenti) o per cose di uso generale (percorso per eseguibili condivisi, percorso per la documentazione ...) inseriscilo in /etc/bash.bashrc

Ho detto la maggior parte degli utenti perché anche diciamo che si specifica uno script greetings.sh che stampa "Hello world!"per tutti gli utenti, ma l'utente Pepe vuole usare invece lo script greetings.sh che stampa "Hola el mundo!". Può modificare il suo percorso nel suo .bashrc per indicare la sua sceneggiatura anziché la tua. In altre parole, l'utente può sempre personalizzare la propria sessione in .bashrc in base a ciò che desidera.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.