Onde o arquivo .bashrc é encontrado no Linux?

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 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *