GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara Login dan Non-Login Shell

Shell adalah lapisan penting arsitektur Linux. Shell adalah antarmuka yang mengambil input dari Pengguna dan mengirimkan instruksi ke Kernel, Juga mengambil output dari Kernel dan mengirimkan hasilnya kembali ke shell keluaran.

Dalam tutorial ini, kami menggunakan Bash shell sebagai contoh. Pada dasarnya shell terdiri dari dua jenis, Login Shell dan Cangkang Non-Login . Setiap shell menjalankan beberapa set skrip yang telah ditentukan untuk mengonfigurasi lingkungan shell.

Login Shell

Shell Login dibuat setelah pengguna berhasil login. Misalnya, saat Anda masuk ke sistem Linux melalui terminal, SSH atau beralih ke pengguna dengan perintah “su -”.

Saat shell login dimulai, shell menjalankan serangkaian skrip yang telah ditentukan sebelumnya untuk mengonfigurasi lingkungan shell. Untuk mengidentifikasi shell login, jalankan perintah di bawah ini pada terminal.

echo $0

Jika Anda mendapatkan hasil seperti "-bash" atau "-su" berarti, Anda berada di shell login. Pastikan memiliki tanda hubung (-) sebagai awalan.

Cangkang Masuk mengeksekusi skrip berikut:

  • Login shell mengeksekusi /etc/profile
  • /etc/profile mengeksekusi semua skrip di /etc/profile.d/
  • Kemudian jalankan pengguna ~/.bash_profile
  • ~/.bash_profile mengeksekusi pengguna ~/.bashrc
  • ~/.bashrc mengeksekusi /etc/bashrc

Cangkang Non-Login

Non Login Shell adalah shell, yang dimulai dengan shell login. Misalnya, shell yang Anda mulai dari shell lain atau dimulai dengan program dll.

Shell non-login mengeksekusi skrip berikut untuk mengatur lingkungan shell.

  • Shell yang tidak masuk terlebih dahulu mengeksekusi ~/.bashrc
  • Kemudian ~/.bashrc mengeksekusi /etc/bashrc
  • /etc/bashrc memanggil skrip di /etc/profile.d

Periksa Login vs Shell Non Login

Untuk menemukan shell saat ini adalah shell login atau shell non login cukup jalankan perintah di bawah ini. Lihat hasilnya dan temukan perbedaannya.

echo $0

Keluaran shell login akan menjadi -bash atau -su .

Keluaran shell non-login akan menjadi bash atau su


Linux
  1. Apa perbedaan antara InnoDB dan MyISAM?

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

  3. Apa Perbedaan Antara Git Switch dan Checkout?

  1. Apa perbedaan antara fsck dan e2fsck?

  2. Apa perbedaan antara ls dan l?

  3. Apa perbedaan antara $(CC) dan $CC?

  1. Perbedaan Antara Shell Login dan Shell Non-login?

  2. Perbedaan Penggunaan Antara Variabel Shell Dan Variabel Lingkungan?

  3. Apa perbedaan antara unlink dan rm?