Di mana file .bashrc ditemukan di Linux?

13

Saya tidak menemukan .bash_login dan .bash_profile saya

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

Apakah selalu ada satu file .bashrc dan .bash_profile untuk setiap pengguna?

Dan, apakah .bashrc dan .bash_profile selalu ditemukan di direktori / home / "nama pengguna"?

Jeff Schaller
sumber

Jawaban:

14

Satu-satunya yang bash lihat secara default ada di direktori home pengguna, ya. Ada juga biasanya satu sumber untuk mereka di Linux - / etc / skel. Direktori home pengguna tidak perlu di bawah / home.

Saya melihat Anda telah mengedit pertanyaan Anda untuk menanyakan di mana file .bash_login dan .bash_profile Anda berada. Berdasarkan #prompt, saya akan menganggap Anda menjalankan ini sebagai root. Dalam hal ini, file Anda adalah

/root/.bash_history
/root/.bashrc

Lihat jawaban asli saya di atas tentang direktori home pengguna - tidak selalu / home; dalam hal ini, direktori home root adalah /root.

Jeff Schaller
sumber
9

Menurut man bash:

Ketika bash dipanggil sebagai shell login interaktif, atau sebagai shell non-interaktif dengan opsi --login, bash pertama kali membaca dan mengeksekusi perintah dari file / etc / profile, jika file itu ada. Setelah membaca file itu, ia mencari ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dalam urutan itu, dan membaca serta mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca.

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

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

Ada juga /etc/bashrc( /etc/bash.bashrcdi Linux berbasis Debian) yang berisi System wide functions and aliases. Secara default, ini diatur, bahkan untuk shell non-interaktif, non-login.

EDIT:

Di tildejalur menunjukkan pengguna home directoryyang saat ini masuk. Bash hanya dapat menggunakan salah satu ~/.bash_profile, ~/.bash_login, or ~/.profile(per pengguna yang saat ini masuk), dalam urutan itu, untuk membaca dan menjalankan perintah. (Sistem operasi berbasis Debian biasanya tidak memiliki ~/.bash_profile or ~/.bash_login. Mereka menggunakan file ~/.profile. File ini menjelaskan bahwa itu akan dibaca dan digunakan kecuali ~/.bash_profile or ~/.bash_logindibuat.

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

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

Timothy Martin
sumber
Bagaimana cara ini menjawab pertanyaan saya?
1
@ BROY Ini menjawab pertanyaan yang seharusnya Anda tanyakan daripada yang Anda lakukan.
Shadur
Saya telah melihat beberapa orang menaruh file .bash_profile di direktori proyek, apakah itu benar-benar diambil oleh bash? Saya tidak berpikir itu seharusnya terjadi secara default.
Alexander Mills
5

Lokasi bashrcfile Anda tergantung pada distro ... Berikut adalah daftar dasar untuk sistem bashrc:
/etc/bashrc(Redhat, Fedora, dll)
/etc/bash.bashrc(Debian, Ubuntu, Linux Mint, Backtrack, Kali dll)
/etc/bash.bashrc.local(Suse, OpenSuse, dll)
Lalu ada pengguna tunggal pribadi bashrc, yang, sebagian besar disimpan pada ~/.bashrcdasarnya untuk setiap distro ... Jika Anda tidak memiliki salah satu distro yang terdaftar, atau memiliki sistem khusus, Anda selalu dapat mencari bashrclokasi di google untuk distro itu atau sistem ...
Salam,
Menarik ...

Menarik...
sumber
1

Seperti yang telah dinyatakan orang, Anda dapat menemukan kerangka bashrc di /etc/skel/.bashrc. Jika pengguna yang berbeda menginginkan konfigurasi bash yang berbeda maka Anda harus meletakkan file .bashrc di folder home pengguna tersebut.

Ketika datang ke .bash_profile dan .bash_login, pengguna perlu membuatnya secara manual dan menautkannya melalui bashrc. bash_profile dan bash_login ada untuk menciptakan nuansa yang lebih teratur untuk berbagai pengaturan yang Anda muat. Saya pribadi menyimpan semua alias saya di bash_profile jadi saya tidak perlu memilah-milah kekacauan di bashrc untuk melakukan edit cepat.

Berikut adalah contoh dari apa yang akan Anda miliki di file .bashrc Anda:

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