shell與kernel的理解

Shell 的英文釋義是外殼,與kernel 內核名詞遙相呼應,一外一內,一殼一核。內核就像瑞士銀行的金庫,存放著客戶的黃金等眾多的(硬件)資產,閑雜人等(包括客戶)當然是嚴格禁止入內的,而作為客戶要存取金庫中的資產則需要通過專門的特定管理人員代為操作完成,并把存?。ú僮鳎┑慕Y果呈現給客戶。在Linux操作系統中,shell的職能就類似于金庫的操作人員,客戶就是計算機使用者,使用者只需要告訴shell相應的操作需求,shell會把操作需求提交給內核,并把結果返回給操作者,至于過程是怎么實現,對操作者而言是無需可見的。

 

  當然去過銀行的都知道,干啥事都得填表,表就相當于一種規范,操作員與shell交流也需要遵循規范,這個規范就是所謂的命令。比方客戶要更改自己銀行賬戶的密碼,如果是本人,驗明正身后按規范只需要寫passwd,shell就會提示你把你的新密碼在鍵盤上輸入,shell將轉交給內核;如果不是本人,請獲得授權后,并在passwd 命令后面加上你代為更改的賬戶名稱,如passwd centos,centos就是我們所說的命令參數。至于shell編程則是相當于客戶一次性把需求寫紙上都提交給金庫操作人員,金庫操作人員來回一趟就能完成,減少了等待,提高了效率。當然作為操作者,只需要填表,不需要把表翻譯成shell與內核交流的黑話,這就是說我們無需編譯。

 

Shell腳本的按龜腚必須有一個開頭字段 #!,叫Shebang。它的名字來自于sharpbang ,分別代指#、!兩個符號的Unix名稱。相當于上文打的比方中的金庫操作員的工作牌,通過這個,金庫知道這是什么身份的內部人員,戴著工作牌的就是客戶指定的金庫操作員——通常是/bin/bash,當然客戶也可以指定其他自己喜歡的,比如/bin/csh。操作員后面長長的一串就是客戶的一列操作需求。

 

   Shell編程既然叫做編程,那么也算做一種語言。對計算機編程語言來說,就勢必要有一個概念叫做變量,這玩意就類似于初中所學的幾元幾次方程組里的XY。也用金庫的例子來打比方,就像客戶說我要在瑞士銀行的金庫里存個東西,但我還不知道要存的東西是什么類型的,是美刀還是金條,金庫先給我留個位吧。于是銀行就會在金庫存放東西的地方(內存)給先劃一塊空間,既然不知道是什么類型,那就叫個籠統的名字(類型):東西(字符串),總是不會錯的。至于最終存進去并且按客戶的需要拿美刀投資增值還是把金條變現(運算),金庫到時候會自行按類型隱式轉換。

原創文章,作者:喵,如若轉載,請注明出處:http://www.www58058.com/10366

(2)
喵
上一篇 2016-02-14 10:15
下一篇 2016-02-14 10:18

相關推薦

  • 推薦-BtrFS學習總結

    一、原理介紹1.可擴展性2.數據一致性的相關特性3.多設備管理及快照二、命令介紹與實戰1.命令介紹2.命令實戰1)環境準備,添加3塊磁盤/dev/sd{b,c,d}如下:2)創建btrfs文件系統3)查看已創建的btrfs文件系統4)掛載btrfs文件系統,啟用壓縮功能5)在線調整文件系統大小6)往當前btrfs文件系統添加設備,以達到在線擴容擴容目的7)執…

    Linux干貨 2016-06-03
  • 程序包管理rpm

    Linux程序包管理      API:Application Program Interface      ABI:Application Binary Interface         Unix…

    Linux干貨 2016-08-23
  • 馬哥教育網絡班19期+第7周課程練習

    1.創建一個10G分區,并格式為ext4文件系統:   (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl;   (2)掛載至/data/mydata目錄,要求掛載時禁止程序自行運行,且不更新文件的訪問時間戳;   fdisk /dev/sdb    part…

    Linux干貨 2016-06-22
  • 進程管理

    一、進程概述 1、進程的概念        用戶通過執行命令,將程序提起到內存中運行,運行中的程序即稱為進程。內核為了方便管理,根據內核發起者的權限、屬性等參數,為每個進程設置一個獨立的PID號,通過PID號來判斷進程的權限。 2、進程的分類:    &nbs…

    Linux干貨 2016-09-07
  • screen和ehco命令常用選項

    screen的用法 screen 是個外部命令,用之前需要安裝。      安裝方式之一:yum 源 安裝      yum install -y screen screen 是基于VT100/ANSI的仿真終端屏幕管理器    …

    Linux干貨 2016-07-26
  • 計算機組成原理

    計算機組成原理 計算機概述 計算機的基本組成: ·         存儲器:     實現記憶功能的部件用來存放計算程序及參與運算的各種數據 ·         運算器:     負責數據的算術運算和…

    Linux干貨 2016-10-31
欧美性久久久久