Não estou encontrando meu .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:~#
Sempre há apenas um arquivo .bashrc e .bash_profile para cada usuário?
E, .bashrc e .bash_profile sempre são encontrados no diretório / home / “nome do usuário”?
Resposta
Os únicos que o bash olha por padrão estão no diretório inicial do usuário, sim. Normalmente, há também uma única fonte para eles no Linux – / etc / skel. O diretório inicial do usuário não precisa estar em / home, no entanto.
Vejo que você editou sua pergunta para perguntar onde estão seus arquivos .bash_login e .bash_profile. Baseado no prompt #
, presumo que você “esteja executando isso como root. Nesse caso, seus arquivos são
/root/.bash_history /root/.bashrc
Veja minha resposta original acima com relação ao diretório inicial do usuário – nem sempre é / home; neste caso, o diretório inicial do root é /root
.
Resposta
De acordo com man bash
:
Quando o bash é invocado como um shell de login interativo ou como um shell não interativo com a opção –login, ele primeiro lê e executa comandos do arquivo / etc / profile, se esse arquivo existir. Depois de ler esse arquivo, ele procura ~ / .bash_profile, ~ / .bash_login e ~ / .profile, nessa ordem, e lê e executa os comandos do primeiro que existe e é legível.
~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file
Também há /etc/bashrc
( /etc/bash.bashrc
no Linux baseado em Debian) que contém System wide functions and aliases
. Por padrão, isso é definido, mesmo para shells não interativos e não de login.
EDITAR:
O tilde
nos caminhos indica o home directory
do usuário atualmente conectado. O Bash só pode usar um dos ~/.bash_profile, ~/.bash_login, or ~/.profile
(por usuário conectado no momento), nessa ordem, para ler e executar comandos. (Os sistemas operacionais baseados em Debian normalmente não têm ~/.bash_profile or ~/.bash_login.
Eles usam o arquivo ~/.profile
. Este arquivo explica que será lido e usado a menos ~/.bash_profile or ~/.bash_login
são criados.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
existe.
Comentários
- De que forma isso responde à minha pergunta?
- @BROY Responde à pergunta que você deveria estar fazendo, e não a que fez.
- Já vi algumas pessoas colocarem um arquivo .bash_profile nos diretórios do projeto, isso realmente é captado pelo bash? Eu não ' não acho que ' deve acontecer por padrão.
Resposta
Sua bashrc
a localização do arquivo “depende da distribuição … Aqui está uma lista básica para o sistema bashrc
:
/etc/bashrc
(Redhat, Fedora, etc)
/etc/bash.bashrc
(Debian, Ubuntu, Linux Mint, Backtrack, Kali etc)
/etc/bash.bashrc.local
(Suse, OpenSuse, etc)
Depois, há o único usuário privado bashrc
, que, em sua maior parte, é armazenado em ~/.bashrc
para basicamente todas as distros … Se você não tiver uma das distros listadas ou se tiver um sistema especial, pode sempre pesquisar bashrc
localização no google para essa distro ou sistema …
Atenciosamente,
Interessante …
Resposta
Como as pessoas já declararam, você pode encontrar um esqueleto do bashrc em /etc/skel/.bashrc. Se diferentes usuários quiserem configurações bash diferentes, você deve colocar um arquivo .bashrc na pasta inicial do usuário.
Quando se trata de .bash_profile e .bash_login, o usuário precisa criá-los manualmente e vinculá-los via bashrc . bash_profile e bash_login existem para criar uma sensação mais organizada para as diferentes configurações carregadas. Pessoalmente, mantenho todos os meus aliases em bash_profile para não ter que organizar uma bagunça em bashrc para fazer uma edição rápida.
Aqui está um exemplo do que você teria em seu arquivo .bashrc:
if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi