Linux前世今生(三)Unix Shell

2020-09-14 諸葛運帷

文 | 諸葛運帷 豹頭環眼的飛哥


Shell是什麼?它是怎麼來的?

好像幾乎沒有人能很清晰的解答這個問題。有人說,Shell(又被稱為殼)是相對於Kernel(核)來說的。Kernel是作業系統的核心組件,它是作業系統程序的一部分,駐留在內存當中,處理應用程式與計算機硬體之間的交互。那麼Shell就是計算機用戶與應用程式之間的&34;for ~ do ~ done&34;for ~ in ~ do ~ done&34;case ~ in ~ esac& as comment character – System III shell (1981)

Colon in parameter substitutions &34; – System III shell (1981)

continue with argument – System III shell (1981)

cat <<-EOF for indented here documents – System III shell (1981)

Functions and the return builtin – SVR2 shell (1984)

Built-ins unset, echo, type – SVR2 shell (1984)

Source code de-ALGOL68-ized – SVR2 shell (1984)

Modern &34; – SVR3 shell (1986)

Built-in getopts – SVR3 shell (1986)

Cleaned up parameter handling allows recursively callable functions – SVR3 shell (1986)

8-bit clean – SVR3 shell (1986)

Job control – SVR4 shell (1989)

Multi-byte support – SVR4 shell (1989)

從Bourne shell開始,Shell「市場」開始了百家爭鳴時代。這裡面包括Korn shell(ksh)、Almquist shell (ash)以及最著名的Bourne Again Shell (or Bash)。一個比較個別的shell產品是C shell (csh),它讓Shell的腳本看上去更像用C語言編寫。下圖是Shell的族譜。

參考資料

https://www.multicians.org/mgs.html

https://developer.ibm.com/technologies/linux/tutorials/l-linux-shells/#artrelatedtopics

http://linuxcommand.org/lc3_adv_othershells.php




運維就是服務的創造者和維護者!

IT運維之眼-「諸葛運帷」 業務級運維監控管理平臺,企業端到移動端的運維監控整體解決方案。系統以業務系統監控為主線,基於「業務、軟體、網絡、設備、動環」多個監控視角的運維體系架構,打造了一個多維度可視化的綜合運維監控管理平臺。系統以故障提前預警、問題快速定位為核心。切實保障信息系統的安全穩定運行。

相關焦點

  • Linux前世今生(四)作繭自縛
    1977年,Bill Joy開始搞第一個專屬於伯克利的Unix發行版(1BSD)。這個版本在1978年3月正式發布。當然,1BSD並不是一個完整的全新版本,它更像是在Version 6 Unix上加了一些擴展。
  • Linux前世今生(六)Kernel(上)
    在CTSS系統席捲計算機界的年月,有很多計算機水平較高的「黑客」可以通過侵入系統內核的方式竊取更多的「時間片」,從而使自己的程序獲得更高的執行效率(有點類似於今天入侵別人計算機偷偷挖礦)。這讓硬體廠商和作業系統的開發者們開始從更高的維度考慮系統內核的安全性。首先動手的是硬體廠商。他們為新的計算機設備引入了「保護環」的體系。
  • 「乾貨」Linux環境下一句話反彈shell總結
    主機環境,而在獲取linux主機shell是我們經常需要做的是工作內容之一,其中經常會遇到以下幾個場景。2.5.1 查詢 payload 具體路徑我們直接可以使用 msfvenom -l 結合關鍵字過濾(如cmd/unix/reverse),找出我們需要的各類反彈一句話payload的路徑信息。
  • Lua新奇玩法,讓Nginx也可以執行linux的shell命令
    圖/文:迷神讓Nginx使用url訪問的模式,也可以執行linux的shell命令是一件很爽的事情。本文就是使用小巧的lua腳本,Nginx我使用春哥的 openresty,當然如果你自己使用原版nginx,那需要編譯下lua環境。
  • shell是什麼?
    bash shell執行shell一、shell是一個命令解釋器,是人與作業系統之間的橋梁。人與作業系統怎麼關聯?通過shell。人通過shell向作業系統發出操作指令。二、shell腳本:shell命令的集合。從上而下的執行。三、常見的shell:1、bourne shell.2、C shell.3、bourne-Again shell:bash是一個為gun項目編寫的unix shell,bash是大多數linux系統、MAC、windows默認的shell。
  • Linux前世今生(七)Kernel(下)
    在那之後,Torvalds 在Minix的新聞組論壇上提交了一篇小短文,他是這麼說的:我正在為386(486)平臺開發一個免費的作業系統(這只是個愛好,不會像GNU那麼專業)從4月醞釀,到現在它已經初露端倪了。我想要從喜歡或不喜歡Minix的人當中得到一些反饋(比如文件系統啦什麼的)。我現在已經移植了bash(1.08)與gcc(1.40),似乎都挺順利。
  • Linux前世今生(二)肯·湯普遜與Unix的誕生
    文 | 諸葛運帷 豹頭環眼的飛哥肯·湯普遜(Ken Thompson)是個傳奇人物。在繁重的Multics研發工作之餘,他開發了Bon語言(注意不是B語言)、電子遊戲Space Travel(星際旅行)。Space Travel(星際旅行)是一個讓玩家操控小飛船在太陽系旅行的小遊戲。當然這個遊戲沒有什麼「敵人」,更沒有什麼「通關目標」。玩家所能做的就是從各大行星及其衛星上登陸。但是不要以為這個遊戲有多麼簡單。因為肯·湯普遜在這款遊戲中別出心裁的引入了「引力」系統。
  • 通和集之(八) 數字貨幣的前世今生
    讓我們站在金融發展和技術進步的角度,盤點一下數字貨幣的前世今生。 一、前世 數字貨幣的產生可以追溯到上個世紀。我們給政府發行的貨幣起個名字,叫正式貨幣。正式貨幣是紙質的,起先都是在線下流通的。但線下流通又是很不方便的,社會的發展和技術的進步都對貨幣的流通提出了新需求,所以產生了正式貨幣的電子化改良,最常見的形態就是銀行間的轉帳匯款。
  • Linux作業系統課程詳細整理(命令、shell編程、軟體安裝等)
    下面對根目錄下的子目錄逐一介紹:(1)"/bin"和"/usr/bin目錄該目錄為命令文件目錄,也稱為二進位目錄。包含了供系統管理員及普通用戶使用的重要的linux命令和二進位(可執行)文件,包含shell解釋器等。(2)"/boot"目錄該目錄中存放系統的內核文件和引導裝載程序文件。
  • 如何將文本文件在Unix和DOS(Win)格式之間轉換
    • 來源:linux.cn • 作者:Magesh Maruthamuthu • 譯者:geekpi •(本文字數:5083,閱讀時長大約:5 分鐘)作為一名 Linux 管理員DOS 文本文件帶有回車(CR 或 \r)和換行(LF 或 \n)一對字符作為它們的換行符,而 Unix 文本只有換行(LF)符。有很多方法可以將 DOS 文本文件轉換為 Unix 格式。
  • linux - 計劃任務輸出日誌並定期清理 - linux運維菜
    幸好,tmpwatch這個服務會自動清理/tmp目錄(主要文件不要放/tmp目錄),只要安裝好tmpwatch這個包就可以了,這個依賴crontab執行的。那現在就需要把crontab日誌輸出到帶日期的文件名中就可以了。
  • 細說Shell腳本(一)
    作為一個開發者,我們會經常用到shell腳本來解決問題,無論是後端開發工程師還是運維人員,都離不開shell的使用。但是我們對shell腳本大部分都是應用階段,下面我們來詳細地介紹一下shell腳本的來龍去脈。
  • Linux的常考概念-2
    命令:(1):set nu 顯示行號(2):set nonu 不顯示行號(3):w 保存(4):q 退出(5):wq 保存加退出(6):q!強行退出(7):w 文件名 另存為2、linux 的特點1)與unix系統兼容2)自由軟體和源碼公開3)性能高和安全性強4)便於定製和再開發5)互操作性高6)全面的多任務和真正的32位作業系統3、連結的分類和相關命令1)軟連結是符號連接,是將一個路徑連結到一個文件
  • linux系統中通過dos2unix命令轉換windows系統中編輯的文件
    使用過linux系統的朋友都知道,linux和windows換行符是不同的,Windows格式文件的換行符為\r\n ,而Unix&Linux文件的換行符為\n. dos2unix命令就是將dos文件轉換為unix、linux格式 ,其實就是dos2unix命令將文件中的\
  • 《俠隱閣》前世今生MOD怎麼用 前世今生MOD及使用方法教學
    下面請看由「mzm1111」帶來的《俠隱閣》前世今生MOD及使用方法教學,希望大家能夠... 《俠隱閣》可以通過打MOD來增強遊戲的趣味性,前世今生MOD就可以讓玩家初始就擁有很強的勢力,還增加了往外的玩法。
  • 淺談ios、安卓、unix、Linux他們之間的關係
    首先讓我們看一下幾個系統出現的時間 unix誕生於1969年 linux誕生於1991年 ios誕生於2007年1月 安卓誕生於2007年11月
  • 淺談ios、安卓、unix、Linux他們之間的關係
    首先讓我們看一下幾個系統出現的時間unix誕生於1969年linux誕生於1991年ios誕生於2007年1月安卓誕生於2007年11月UNIX的誕生1969年,基於unix系統,蘋果ios誕生ios是蘋果公司最早於2007年1月9日的Macworld大會上公布這個系統,最初是設計給iPhone使用的,後來陸續套用到iPod touch、iPad上。iOS與蘋果的macOS作業系統一樣,屬於類Unix的商業作業系統。
  • UNIX、Linux、iOS、Android 的發展及關係
    轉自strongerHuangUnix, 簡化形成了Linux,Linux則是Android的內核,而蘋果則是使用unix系統作為iOS和MacOS的內核。三、Linux系統的誕生1991年,李納斯•託瓦茲大學讀書時,為了個人愛好編寫了Linux,相當於迷你版的UNIX。隨後,李納斯•託瓦茲公開了Linux原始碼,邀請他人一起完善Linux。
  • Shell 是用來解決什麼問題的?它可以被代替嗎?
    (圖來源於百度)shell 有兩個主要目標,首先Shell是一個命令行解釋器,它為用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶可以用shell來啟動、掛起、停止甚至編寫一些程序。Shell還是一個功能強大的程式語言,易編寫、易調試、靈活性強。
  • Shell 是用來解決什麼問題的?它可以被代替嗎?
    (圖來源於百度)換句話說,如果要掌握linux系統必須要學好shell,shell是linux 的敲門磚。下面我來說一下Linux的重要性,Linux的幾乎每個命令(工具)都很好用,有些甚至很強大,如awk、sed、vim、sar等等,就拿awk來說,它在許多場合下被稱作是程式語言——處理文本數據的程式語言。