Onde é encontrado o arquivo .bashrc no Linux?

8

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:~# 

Existe sempre apenas um arquivo .bashrc e .bash_profile para cada usuário?

E, .bashrc e .bash_profile são sempre encontrados no diretório / home / "user name"?

    
por Jeff Schaller 24.06.2015 / 02:06

4 respostas

5

Os únicos que o bash examina por padrão estão no diretório inicial do usuário, sim. Há também tipicamente uma única fonte para eles no Linux - / etc / skel. O diretório pessoal do usuário não precisa estar em / home, no entanto.

Vejo que você editou sua pergunta para saber onde estão seus arquivos .bash_login e .bash_profile. Com base 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 em relação ao diretório pessoal de um usuário - nem sempre é / home; Nesse caso, o diretório inicial do root é /root .

    
por 24.06.2015 / 02:31
9

De acordo com man bash :

When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.

~/.bash_profile
    The personal initialization file, executed for login shells

~/.bashrc
    The individual per-interactive-shell startup file

Existe também /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-login.

EDITAR:

O tilde nos caminhos indica o home directory do usuário atualmente conectado. O Bash só pode usar um ~/.bash_profile, ~/.bash_login, or ~/.profile (por usuário atualmente logado), nessa ordem, para ler e executar comandos. (Geralmente, os sistemas operacionais baseados no Debian não têm ~/.bash_profile or ~/.bash_login. . Eles usam o arquivo ~/.profile . Esse arquivo explica que ele será lido e usado, a menos que ~/.bash_profile or ~/.bash_login seja criado.

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

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

    
por 24.06.2015 / 02:35
4

A localização do seu arquivo bashrc 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 usuário único privado bashrc , que, na maior parte, é armazenado em ~/.bashrc para basicamente todas as distros ... Se você não tiver uma das distribuições listadas, ou tiver um sistema especial, você pode sempre procure bashrc localização no google para essa distro ou sistema ...
Atenciosamente,
Interessante ...

    
por 24.06.2015 / 18:29
1

Como as pessoas já afirmaram, você pode encontrar um esqueleto de bashrc em /etc/skel/.bashrc. Se usuários diferentes quiserem configurações bash diferentes, você deverá colocar um arquivo .bashrc na pasta inicial desses usuários.

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 que você carrega. Pessoalmente, mantenho todos os meus aliases no bash_profile, por isso não tenho que resolver uma confusão no 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
    
por 30.07.2015 / 00:22