GNU/Linux >> Belajar Linux >  >> Linux

Apa Pembacaan File Conf Antara Shell Login dan Non-login?

Saya menemukan bahwa itu adalah .bash_profile , .bashrc , .bash_login , .profile .

Apa urutan membaca di antara mereka?

Jawaban yang Diterima:

Pada dasarnya, jika itu adalah shell login, itu sumber /etc/profile lalu .bash_profile . Jika itu bukan shell login, tetapi Anda berada di terminal, itu sumber /etc/bash.bashrc lalu .bashrc .

Tapi sebenarnya jauh lebih rumit.

Cara saya membaca halaman manual:

if bash_mode; then
    if login_shell; then
        if test -e /etc/profile; then source /etc/profile; fi
        if test -e .bash_profile; then source .bash_profile
        elif test -e .bash_login; then source .bash_login
        elif test -e .profile; then source .profile; fi
    elif interactive_shell || remote_shell; then
        if test -e /etc/bash.bashrc; then source /etc/bash.bashrc
        if test -e .bashrc; then source .bashrc; fi
    elif test -n "$BASH_ENV"; then
        source "$BASH_ENV"
    fi
elif sh_mode; then
    if login_shell; then
        if test -e /etc/profile; then source /etc/profile; fi
        if test -e .profile; then source .profile; fi
    elif interactive_shell; then
         if test -n "$ENV"; then
             source "$ENV"
         fi
    fi
fi

Ini adalah shell login setiap kali shell dijalankan sebagai -bash (perhatikan tanda minus) atau dengan -l pilihan. Ini biasanya terjadi ketika Anda masuk menggunakan login perintah (konsol virtual Linux melakukan ini), melalui ssh, atau jika emulator terminal Anda mengaktifkan opsi "login shell".

Ini adalah shell interaktif setiap kali input standar adalah terminal, atau bash dimulai dengan -i pilihan. Perhatikan bahwa jika shell juga merupakan shell login, bash tidak memeriksa apakah shell tersebut interaktif. Untuk alasan ini, .bash_profile biasanya berisi kode ke sumber .bashrc , sehingga Anda dapat berbagi pengaturan yang sama antara shell interaktif dan login.


Linux
  1. Apa Perbedaan Antara $(stuff) dan `stuff`?

  2. Perbedaan Antara Perintah Bawaan Dan Yang Tidak?

  3. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  1. Perbedaan Antara "du -sh *" Dan "du -sh ./*"?

  2. Perbedaan Antara .exrc Dan .vimrc?

  3. Apa Perbedaan Antara Pengguna Biasa dan Pengguna Sistem?

  1. Linux – Apa Perbedaan Antara `su -` Dan `su –login`?

  2. Apa Perbedaan Antara Print Dan Printf Dalam Awk?

  3. Apa perbedaan antara fsync dan syncfs?