Sebelum dikembangkannya GUI (Graphical User Interface), Linux hanya menyediakan contextual interface, Command Line Interface, atau CLI. Saat ini contextual interface dapat diakses melalui terminal, emulator, ataupun virtual console. saat bekerja dengan contextual interface atau ketika menggunakan terminal emulator pada GUI, interpreter command yang digunakan ialah shell.
Fungsi shell menampilkan sebuah prompt yang mengindikasikan suatu instruksi dapat dijalankan atau tidak. Untuk menjalankan prompt dengan menuliskan suatu perintah yang sesuai. Selanjutnya shell akan menjalankannya dan menampilkan prompt lainnnya.
Penggunaan CLI ini cukup menyulitkan bagi beberapa orang, terutama yang hanya terbiasa dengan GUI. CLI sendiri ditujukan untuk sistem yang memang tidak dilengkapi GUI, atau eksekusi GUI tidak sebaik bila menggunakan CLI.
Untuk Linux sendiri ada beberapa jenis shell yakni:
- Bourne Shell, sh.
- C Shell, csh.
- Korn Shell, ksh.
- TC Shell, tcsh.
- Z Shell, zsh.
- Bourne Again Shell, bash.