Dove si trova il file .bashrc in Linux?

Non trovo i miei .bash_login e .bash_profile

root@linux:~# locate .bash* /etc/bash.bashrc /etc/skel/.bashrc /etc/skel/.bashrc.original /home/noroot/.bashrc /home/noroot/.bashrc.original /root/.bash_history /root/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc /usr/share/kali-defaults/.bashrc root@linux:~# 

Cè sempre solo un file .bashrc e .bash_profile per ogni utente?

Inoltre .bashrc e .bash_profile si trovano sempre nella directory / home / “nome utente”?

Risposta

Gli unici che bash guarda per impostazione predefinita si trovano nella directory home dellutente, sì. Di solito cè anche ununica fonte per loro in Linux – / etc / skel. La home directory dellutente non ha bisogno di essere sotto / home, però.

Vedo che hai modificato la tua domanda per chiedere dove sono i tuoi file .bash_login e .bash_profile. al prompt #, presumo che tu lo stia eseguendo come root. In tal caso, i tuoi file sono

/root/.bash_history /root/.bashrc 

Vedi la mia risposta originale sopra relativa alla directory home di un utente – non è sempre / home; in questo caso, la home directory di root è /root .

Risposta

Secondo man bash:

Quando viene invocato bash come shell di login interattiva, o come shell non interattiva con lopzione –login, prima legge ed esegue i comandi dal file / etc / profile, se quel file esiste. Dopo aver letto quel file, cerca ~ / .bash_profile, ~ / .bash_login e ~ / .profile, in questordine, e legge ed esegue i comandi dal primo esistente ed è leggibile.

~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file 

Cè anche /etc/bashrc ( /etc/bash.bashrc in Linux basato su Debian) che contiene System wide functions and aliases. Per impostazione predefinita, questo è impostato, anche per shell non interattive e non di accesso.

EDIT:

Il tilde nei percorsi indica il home directory dellutente attualmente connesso. Bash è in grado di utilizzare solo uno dei ~/.bash_profile, ~/.bash_login, or ~/.profile (per utente attualmente connesso), in questordine, per leggere ed eseguire comandi. (I sistemi operativi basati su Debian in genere non hanno ~/.bash_profile or ~/.bash_login. utilizzano il file ~/.profile. Questo file spiega che verrà letto e utilizzato a meno che ~/.bash_profile or ~/.bash_login vengono creati.

#~/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login esiste.

Commenti

  • In che modo questo risponde alla mia domanda?
  • @BROY Risponde alla domanda che avresti dovuto farmi piuttosto che a quella che hai fatto.
  • Ho visto alcune persone inserire un file .bash_profile nelle directory del progetto, viene davvero rilevato da bash? Non ' penso che ' dovrebbe accadere per impostazione predefinita.

Risposta

Il tuo bashrc dipende dalla distribuzione … Ecco un elenco di base per il sistema bashrc:
/etc/bashrc (Redhat, Fedora, ecc.)
/etc/bash.bashrc (Debian, Ubuntu, Linux Mint, Backtrack, Kali ecc.)
/etc/bash.bashrc.local (Suse, OpenSuse, ecc.)
Poi cè il bashrc privato per utente singolo, che, per la maggior parte, è memorizzato in ~/.bashrc praticamente per ogni distribuzione … Se non hai una delle distribuzioni elencate o hai un sistema speciale, puoi sempre cercare bashrc posizione su Google per quella distribuzione o sistema …
Saluti,
Interessante …

Risposta

Come le persone hanno già affermato, puoi trovare uno scheletro di bashrc in /etc/skel/.bashrc. Se utenti diversi vogliono configurazioni bash diverse, è necessario inserire un file .bashrc nella cartella home di tale utente.

Quando si tratta di .bash_profile e .bash_login, lutente deve crearli manualmente e collegarli tramite bashrc . bash_profile e bash_login esistono per creare unatmosfera più organizzata per le diverse impostazioni caricate. Personalmente tengo tutti i miei alias in bash_profile, quindi non devo ordinare un pasticcio in bashrc per apportare una modifica rapida.

Ecco un esempio di ciò che avresti nel tuo file .bashrc:

if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *