Apa perbedaan antara / usr / bin / login dan / usr / bin / bash?


3

Terminal.app memiliki pengaturan untuk memilih dengan shell yang digunakannya, dan pengaturan default adalah "Shell login default (/ usr / bin / login)".
Apa perbedaan antara / usr / bin / login dan / usr / bin / bash?


Selain jawaban untuk pertanyaan ini, perhatikan bahwa terlepas dari pengaturan preferensi, Terminal selalu berjalan /usr/bin/loginuntuk membuat sesi terminal. Preferensi hanya mengontrol apakah ia memberitahu loginuntuk menggunakan shell default Anda atau perintah kustom. Jika Anda melihat jendela Inspektur untuk terminal aktif Anda akan melihat daftar Proses Menjalankan selalu dimulai dengan logindiikuti oleh shell default atau perintah kustom.
Chris Page

Jawaban:


3

Griffo benar. Sekarang dalam skenario Anda, perbedaannya adalah sebagai berikut:

  1. jika Anda memilih /bin/login, maka program ini akan memeriksa dalam database pengguna apa shell default Anda dan menjalankan shell itu sebagai shell login, dengan demikian memanggil file rc yang dijalankan hanya ketika shell dijalankan sebagai shell login (dalam kasus bash mereka adalah /etc/profile, ~/.bash_profile, ~/.bash_login and , dan ~/.profile.
  2. jika Anda memilih /bin/bash, shell itu akan dieksekusi sebagai shell login, terlepas dari shell apa yang diatur dalam database pengguna. Ini bisa berguna ketika shell di database pengguna tidak berfungsi dengan baik, atau Anda ingin dapat menggunakan shell yang berbeda.

Sesuai komentar oleh Chris Page , shell dijalankan sebagai shell login dalam kedua kasus.

Jika Anda belum mengubah shell login Anda dari default, yaitu /bin/bash, dan Anda belum mengubah file rc shell ini, maka perbedaannya tidak akan terlihat.


Sejauh yang saya tahu # 2 salah: Terminal selalu membuat shell login. Bahkan, jika Anda mengaturnya ke perintah seperti /usr/bin/emacsitu akan dipanggil sebagai proses login. (Nama proses diawali dengan -.) Saya baru saja mencoba ini dengan baik versi Leopard dan Lion Terminal.
Chris Page

1

/usr/bin/loginadalah program yang digunakan untuk masuk ke sistem dan bukan sesuatu yang Anda panggil secara manual dalam keadaan normal. Lihatlah info / halaman manual dengan mengeluarkan salah satu dari perintah berikut:

info login atau man login

/usr/bin/bashadalah shell dan tugasnya adalah menginterpretasikan input dari pengguna dan menjalankan program. Anda juga dapat melihat lebih banyak info tentang bash dengan menggunakan perintah di bawah ini:

info bash atau man bash

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.