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