2013年10月22日 星期二

[Linux] 什麼是Shell_what is shell


Shell概述


要讓系統執行一個動作,可以將此動作簡單分為三個部分:硬體(Hardware)、核心(kernel)、應用程式(application)


以下這張鳥哥哥的圖示表示的很清楚


而我們就是要在使用者介面這個部分,對核心下達命令,透過他控制硬體來完成我們指定的動作。這次介紹的 shell 也是一種應用程式軟體,藉由解析輸入的文字指令來與 kernel 溝通。


Shell優點


其實我個人不是很喜歡文字介面的操控方式,但還是得學的原因有幾個如下:
1. 一致性:由於各家Linux distributions都不盡相同,容易造成使用上的困難。但是他們使用的bash卻是一致的,所以使用文字介面的shell來設定,便能夠輕鬆轉換各種distributions。
2. 速度:文字的傳輸速度比圖形介面要來的快,而且不容易出現斷線的問題或是資訊外流的問題

※distributions:早期的Linux僅具有Kernel與Kernel提供的工具,但是這樣對一般使用者操作起來相當困難,所以有些公司或組織會將Linux Kernel及Kernel tools再加上一些其他軟體整合起來,讓使用者可以直接安裝或使用他們已經整合好的套件。(更加詳細介紹)



Shell種類


早期的UNIX發展出了許多版本,最常聽到的幾種如下:
Bourne shell : sh,已被bash取代
C shell : csh,Sun預設,已被tcsh取代
Tenex C shell : tcsh,整合C shell
Korn shell : ksh,商業常用
Bourne Again shell : bash,base on GNU,Linux預設

以上皆可以到 /etc/shells 檔案下搜尋到,此處我們將學習Linux預設的 Bash



參考資料:
[1] http://linux.vbird.org/linux_basic/0320bash.php

沒有留言:

張貼留言