apa yang anda maksud dengan shell interaktif?

25

UNIX: Referensi Lengkap, Edisi Kedua oleh Kenneth H. Rosen et al.

Anda dapat memulai shell lain setelah masuk dengan menggunakan nama shell sebagai perintah; misalnya, untuk memulai shell Korn, Anda bisa mengetikkan ksh di command prompt. Jenis shell ini bukan shell login, dan Anda tidak perlu masuk lagi untuk menggunakannya, tetapi itu masih shell interaktif, artinya Anda berinteraksi dengan shell dengan mengetikkan perintah (sebagai lawan dari menggunakan shell untuk jalankan skrip, seperti yang dibahas di Bab 20). Contoh dari shell yang berjalan di jendela terminal ketika Anda menggunakan antarmuka grafis juga shell non-login interaktif. Ketika Anda memulai shell non-login, itu tidak membaca file .profile, .bash_profile, atau .login Anda (tetapi file .logout) Anda, tetapi masih akan membaca file konfigurasi shell kedua (seperti .bashrc). Ini berarti bahwa Anda dapat menguji perubahan Anda.

Saya telah melalui baris di atas dan saya tidak mengerti apa artinya dengan shell interaktif. Benarkah .profile tidak dibaca jika saya menggunakan terminal?

Selain itu, apa artinya ketika Anda mengatakan bahwa bourne bukan merupakan shell interaktif sedangkan bash / csh adalah shell interaktif?

munish
sumber

Jawaban:

27

Shell interaktif hanyalah proses shell yang Anda gunakan untuk mengetik perintah, dan mendapatkan kembali output dari perintah itu. Yaitu, shell yang dengannya Anda berinteraksi.

Jadi, shell login Anda bersifat interaktif, seperti halnya shell lain yang Anda mulai secara manual, seperti yang dijelaskan dalam kutipan yang Anda kutip dalam pertanyaan Anda. Sebaliknya, ketika Anda menjalankan skrip shell, shell non-interaktif dimulai yang menjalankan perintah dalam skrip, dan kemudian keluar ketika skrip selesai.

Shell Bourne dapat digunakan sebagai shell interaktif, seperti bashatau tcsh. Bahkan, banyak sistem, seperti FreeBSD, digunakan shsebagai shell pengguna default. Kerang yang modern seperti bash, zsh, tcsh, dll memiliki banyak fitur yang Bourne shell tidak memiliki, yang membuat mereka lebih nyaman dan nyaman untuk digunakan interaktif (sejarah perintah, selesai, dll).

Kerang interaktif non-login (yaitu, kerang Anda mulai manual dari shell lain atau dengan membuka jendela terminal) tidak membaca Anda .loginatau .profilefile. Ini hanya dibaca dan dieksekusi oleh shell login (shell dimulai oleh loginproses sistem, atau oleh manajer tampilan X Anda), sehingga perintah dan pengaturan yang dikandungnya hanya diterapkan sekali, pada awal sesi login Anda. Jadi, ketika Anda memulai terminal, shell yang ia hasilkan untuk Anda tidak membaca file login Anda ( .loginuntuk shell gaya-c, .profileuntuk shell gaya bourne), tetapi ia membaca file .cshrc, .bashrcdll.

D_Bye
sumber
Dimungkinkan untuk menjalankan shell sebagai shell login non-interaktif.
jw013
Benar, tetapi berpotensi membingungkan!
D_Bye
ksh juga merupakan shell modern :-) Lihat www2.research.att.com/sw/download dan gunakan menu pada margin sebelah kiri untuk menavigasi ke AST-> ksh-> ikhtisar. Rilis baru keluar beberapa kali setahun dari David Korn dan Glen Fowler. Semoga beruntung untuk semua.
kerang
1
@shellter - ya, memang. Tapi itu bukan yang pernah saya gunakan, dan saya harus berhenti menghitung kerang di suatu tempat! ;-)
D_Bye
Anda sudah mengatakan The Bourne shell can be used as an interactive shell, just like bash or tcsh. Bukankah Bourne shell sama dengan bash?
Mr.Web