国产内射大片99,欧美丰满熟妇xxxx,bt天堂在线www中文,男人扒开女人的腿做爽爽视频,亚洲av影院一区二区三区

知名百科  > 所屬分類  >  其他科技   

shell計算機殼層

Shell是操作系統(tǒng)的外殼,負責接收用戶輸入的命令并傳遞給操作系統(tǒng)內核執(zhí)行。它是交互式的和跨平臺的,并具有腳本、管道和重定向、命令解析等功能。它允許用戶與計算機系統(tǒng)交互并執(zhí)行各種操作,如啟動程序、管理文件和目錄等。

在shell語言的發(fā)展歷史上,最早的Thompson Shell是由Ken Ken Thompson創(chuàng)立的,后來的Bourne Shell和C Shell引入了現代Shell的更多特性和功能,成為Unix系統(tǒng)的標準Shell。常見的shell包括Bash、Zsh和Fish,它們廣泛應用于不同的操作系統(tǒng)。

目前,計算機用戶界面主要分為兩種類型:命令行界面(CLI)和圖形用戶界面(GUI)。CLI是通過命令行輸入文本命令與計算機進行交互的界面,通常用于服務器管理、系統(tǒng)維護、腳本編寫和批處理操作。GUI通過圖形元素和鼠標操作進行交互,并通過插件或擴展進行定制以滿足用戶的特定需求。隨著其不斷演進,shell語言在計算領域的影響力逐漸擴大,為用戶提供了與操作系統(tǒng)高效交互的能力。

目錄

發(fā)展歷史 編輯本段

shell語言的起源

1971年,Ken Thompson為UNIX創(chuàng)建了第一個shell-V6 shell。這個shell位于/bin/sh中,是一個獨立的用戶程序,它的執(zhí)行不依賴于內核。與Multics的前身類似,它實現了通配符等概念(例如:*。txt),但這些功能并沒有內置到shell中,而是在一個名為“glob”的獨立實用程序中實現。同樣,用于計算條件表達式的命令也是分開的。這種分離策略保持了shell的緊湊性,其源代碼少于900行。

shell語言的演變

1977年,斯蒂芬·伯恩出版了《伯恩的殼》,以解決湯普森殼的劇本限制。該版本增加了額外的功能,例如調度腳本和循環(huán)的能力。Bourne shell不僅是一個重要的進步,而且現在主流Linux系統(tǒng)使用的許多shell都將其作為錨點。

1978年,C shell發(fā)布并迅速成為Unix系統(tǒng)上流行的命令解釋器。它是由Bill Joy開發(fā)的Unix shell的變體。C shell的主要設計目標是它看起來更像C編程語言,并且更適合交互式使用。

1983年7月14日,大衛(wèi)·科恩(大衛(wèi)·科恩)在USENIX的年度技術會議上發(fā)布了科恩殼牌。它的開發(fā)目標是繼承C shell和Tab C-shell的所有功能,包括腳本和循環(huán)處理,這些功能與Bourne shell相同。Ksh93是Korn shell的一個流行的開源版本,于1993年獲得了開源的地位。在其與Bourne shell的良好兼容性中,還引入了其他shell語言的特性,例如csh的歷史功能。

1989年,Bash是Brian Fox為GNU項目編寫的Unix shell和命令語言,旨在成為Bourne shell的免費軟件替代品。Bash的語法和功能受Bourne shell的影響,但增加了許多新功能和改進。作為Bourne shell的繼承者,Bash繼承了前代shell的許多功能,并引入了更多功能。即使在今天,Bash仍然是Unix和Linux社區(qū)中最常用的shell之一。

1989年5月30日,Almquist shell上市(通常簡稱為“ash”)。它是由Kenneth Almquist(Kenneth Almkvist)開發(fā)的輕量級Unix shell。它被設計為傳統(tǒng)Bourne shell(sh)的更緊湊、更高效的替代品。Ash shell通常用于嵌入式系統(tǒng)和其他資源有限且效率至關重要的環(huán)境。在FreeBSD、NetBSD、DragonFly BSD和Minix上,默認安裝的shell(/bin/sh)派生自ash。在Linux上,開發(fā)了Debian Almquist shell。

1990年,Z shell(zsh)是一個功能豐富的Unix shell,由Paul Falstad(Paul Follestad)開發(fā)。它在Bourne shell、Bash和Korn shell的基礎上增加了許多新功能和改進,旨在提供一個更強大、更靈活的命令解釋器環(huán)境。從macOS Catalina開始,Mac將使用zsh作為整個操作系統(tǒng)的默認登錄shell和交互shell。

2005年,發(fā)布了新的命令行界面工具fish shell(也稱為友好交互式shell)。它由Axel Liljencrantz等開發(fā)人員共同創(chuàng)建。其特點是具有自動補全、顏色突出顯示和動態(tài)建議等便捷功能,并具有出色的可讀性和豐富的插件生態(tài)。此外,fish shell還有一個活躍的開發(fā)者社區(qū),不斷推出新功能和優(yōu)化改進。隨著UNIX的流行,對更強大和通用的腳本語言的需求也在增加。Scheme shell(scsh)通過使用Scheme(LISP語言的衍生物)提供了一個腳本環(huán)境。Pyshell試圖使用Python實現類似的功能。在嵌入式系統(tǒng)上,BusyBox將shell和所有命令集成到一個二進制可執(zhí)行文件中,從而簡化了分發(fā)和管理。許多早期的shell想法和接口已經保存了近35年,這是作者們不懈努力的證明。雖然外殼不斷刷新自己,但本質上并沒有太大變化。盡管有創(chuàng)造特殊外殼的新嘗試,但Bourne shell及其衍生產品仍是使用最廣泛的。

形式分類 編輯本段

Shell是用戶與操作系統(tǒng)內核進行交互的界面,可以用命令行或圖形界面兩種形式表示。

圖形用戶界面外殼:GUI shell允許用戶通過圖形操作界面輕松選擇、拖動和執(zhí)行其他直觀操作來執(zhí)行任務和配置系統(tǒng)設置,這對新手用戶來說更加友好和容易。相反,命令行shell需要用戶輸入特定的命令來執(zhí)行操作,這需要用戶具有一定的專業(yè)知識和技能。GUI shell通常作為桌面環(huán)境的一部分來實現,如GNOME、KDE等離子體、XFCE等。這些桌面環(huán)境提供了一系列組件,如窗口管理器、面板、系統(tǒng)托盤等。,它們構成了用戶可以看到的圖形界面。GUI shell中的資源管理器和設置界面等特定工具也是這些桌面環(huán)境的一部分。它們通常用各種編程語言和圖形庫(如GTK+、Qt等)編寫。),它為創(chuàng)建圖形界面提供了必要的功能和工具。

命令行外殼:CLI shell通常指用戶通過命令行界面輸入文本命令與操作系統(tǒng)進行交互的方式。用戶可以直接鍵入命令來執(zhí)行操作。常見命令行shell包括Bash、Zsh、Powershell等。在Linux或MacOS中,它通常被稱為“終端”,而在Windows操作系統(tǒng)中,它被稱為“命令提示符”或“Windows Powershell”。CLI shell為用戶提供了一個接口,用戶可以通過輸入人類可讀的命令與操作系統(tǒng)進行交互,例如“cat、ls、echo”。這些命令將被傳遞給shell執(zhí)行,執(zhí)行結果將顯示在命令行界面上。CLI shell提供了管理文件、運行程序和執(zhí)行系統(tǒng)操作的有效方法。

基本語法 編輯本段

外殼變量:Shell變量是shell程序中用來存儲文本字符串或數字的變量。Shell變量通常用于存儲臨時值或用戶輸入,并且可以在shell程序執(zhí)行期間進行修改和訪問。在shell中,變量名都是字符串,可以包含字母、數字和下劃線,并且必須以字母或下劃線開頭。常用的外殼變量包括環(huán)境變量、參數變量、位置變量和特殊變量。

殼程參數:當shell腳本執(zhí)行時,您可以傳入命令行參數,以便腳本可以根據這些參數執(zhí)行特定的操作。這些傳入的參數被腳本中的位置參數變量引用。位置參數變量$1、$2和$3分別對應于第一個、第二個和第三個傳入參數,依此類推。此外,$ @用于獲取所有傳入參數,而$ #用于獲取傳入參數的數量。

外殼陣列:在shell腳本中,用戶可以使用數組來存儲一系列數值或字符串。在大多數Unix shell中,您可以使用Bash來操作數組。

殼牌過程控制:在Shell腳本中,流控制用于根據條件執(zhí)行不同的代碼塊或控制循環(huán)的執(zhí)行。

外殼文件包含:外殼文件包含意味著外殼腳本中的代碼可以通過引用其他文件來執(zhí)行。這對于從邏輯上將代碼分解成多個文件以更好地管理和組織代碼非常有用。在shell中,有幾種方法可以包含其他文件,最常用的方法是使用source命令或。符號。

主要特性 編輯本段

交互性:交互式外殼:用戶可以直接與外殼實時交互。用戶可以輸入命令,shell將立即執(zhí)行這些命令并返回結果。該模式通常用于用戶在命令行界面下直接與系統(tǒng)交互、輸入命令、查看輸出和管理文件。非交互式shell:由shell執(zhí)行的命令:shell來自腳本文件或由重定向標準輸入提供。在這種模式下,shell不會等待用戶輸入,而是直接執(zhí)行腳本中的命令并將結果輸出到指定的位置。該模式通常用于自動任務、批處理等場景。

shell計算機殼層shell計算機殼層

腳本:Shell腳本是包含shell命令的文本文件,具有靈活性和可移植性??梢酝ㄟ^設置文件第一行的“shebang”來設置(如#!/bin/bash)來指定腳本的解釋器,以便腳本可以找到正確的解釋器在不同的系統(tǒng)上執(zhí)行。同時,腳本可以接受和處理位置參數,并且可以通過設置執(zhí)行權限直接運行,這使得shell腳本在自動化任務和系統(tǒng)管理中非常有用。

重定向:Shell重定向和管道允許用戶靈活控制命令的輸入和輸出,實現數據的重定向和傳輸。通過重定向,用戶可以將命令的輸出保存到文件中,或者將文件中的內容作為命令的輸入,甚至可以同時重定向標準輸出和標準錯誤。但是,管道可以直接將一個命令的輸出轉移到另一個命令作為輸入,從而實現命令之間的數據流通信和處理,從而提高數據處理的效率和靈活性。

命令解析:命令擴展:shell將從左到右解析、擴展和重定向命令。變量賦值和重定向將首先保存,未賦值或重定向的單詞將被擴展,其中第一個擴展的單詞被視為命令名,其余的作為參數。如果命令只包含賦值和重定向,則賦值會影響當前shell環(huán)境;如果命令名存在,則執(zhí)行該命令。如果試圖對只讀變量賦值,或者重定向中有錯誤,命令將以非零狀態(tài)退出。命令搜索和執(zhí)行:shell將按照一定的順序查找和執(zhí)行命令。如果命令名不包含斜杠,shell將首先檢查是否有同名的shell函數或內置命令,如果沒有,它將在$PATH環(huán)境變量指定的目錄中搜索可執(zhí)行文件。如果命令名包含斜杠或搜索成功,shell將在單獨的執(zhí)行環(huán)境中執(zhí)行該命令。如果執(zhí)行失敗并且文件不在可執(zhí)行格式或目錄中,則將其視為shell腳本并執(zhí)行。最后,shell將等待命令完成并收集其退出狀態(tài)。命令執(zhí)行環(huán)境:每個簡單的命令或shell函數都在一個單獨的執(zhí)行環(huán)境中運行,該環(huán)境繼承自shell,但又與之隔離。該環(huán)境包括打開的文件、當前工作目錄、文件創(chuàng)建模式掩碼、導出的shell變量和函數等。子shell或子shell是shell進程的副本,其中運行的命令不會影響主shell環(huán)境。此外,在此隔離環(huán)境中,某些shell選項和陷阱設置可能會被重置或忽略。這些特點保證了命令執(zhí)行的獨立性和穩(wěn)定性。

跨平臺:以主流的bash腳本為例,官方提供了posix模式:通過使用- posix或set -o posix命令行選項,Bash可以進入posix模式,使其更符合POSIX標準,并調整一些默認行為以匹配POSIX指定的值。在POSIX模式下,Bash將執(zhí)行一些特定的更改,包括設置變量POSIXLY_CORRECT,并再次搜索命令哈希表。Bash-4.0引入了shell兼容級別的概念,允許用戶通過設置一組shopt選項來選擇Bash的行為,從而在不同版本之間遷移腳本。在使用shell編寫和執(zhí)行腳本時,了解并熟悉這些不同模式和兼容級別的設置以確保腳本的正確性和跨平臺性是非常重要的。根據特定要求選擇適當的模式和兼容級別,以確保腳本可以正常運行并在不同的環(huán)境中表現出相同的行為。

安全性能 編輯本段

數據加密和解密:OpenSSL是一個開源的密碼學工具包,它提供了一系列加密和解密算法以及SSL/TLS協(xié)議的實現。它用于保護網絡通信的安全,包括加密、解密、證書頒發(fā)、數字簽名等功能。通過使用這些方法,用戶可以保護敏感數據的安全,并確保只有授權用戶才能訪問這些數據。日志記錄:在Unix系統(tǒng)上,rSyslogd和syslog-ng等軟件通常用作syslog服務器。通過Syslog,可以集中記錄和管理整個系統(tǒng)的日志信息,并幫助管理員監(jiān)控系統(tǒng)的運行狀態(tài),解決問題并滿足合規(guī)性要求。安全審計:通過安全審計shell腳本,可以詳細記錄用戶在shell中的操作行為,包括執(zhí)行的命令、時間戳、執(zhí)行環(huán)境等信息,有助于跟蹤用戶的活動并在必要時進行調查和審計。同時,它還可以幫助識別潛在的入侵和未經授權的系統(tǒng)訪問,并及時發(fā)現和處理安全威脅。

主要應用 編輯本段

服務器管理:作為系統(tǒng)管理員管理和配置服務器的重要工具,shell語言因其易用性和與Unix、Linux等系統(tǒng)的兼容性而備受青睞。通過編寫shell腳本,管理員可以自動執(zhí)行各種任務,簡化日常操作并提高效率和準確性。無論是簡單的文件操作還是復雜的系統(tǒng)管理,shell語言都為業(yè)務環(huán)境中的服務器管理提供了強有力的支持。

操作系統(tǒng)操作和維護:Shell腳本廣泛應用于操作系統(tǒng)的運行和維護。中文操作系統(tǒng)通常是基于Linux內核的發(fā)行版,如麒麟、neokylin和紅旗Linux。使用shell腳本編寫一個監(jiān)控腳本可以實時監(jiān)控系統(tǒng)的運行狀態(tài),包括CPU利用率、內存占用、磁盤空間等。一旦發(fā)現異常情況,可以發(fā)送電子郵件或短信進行報警。國產操作系統(tǒng)通常使用RPM或DEB包管理工具,安裝、卸載和更新軟件包的腳本可以通過shell腳本編寫,這簡化了軟件管理的過程。

任務自動化:shell語言的強大功能使用戶可以輕松地自動化任務,包括文件和進程管理以及執(zhí)行復雜的命令。其靈活的腳本和腳本能力使其廣泛用于系統(tǒng)編程和管理。通過編寫Shell腳本,用戶可以簡化重復性工作,提高效率,并確保任務的一致性和準確性。這使得shell語言成為系統(tǒng)管理員和開發(fā)人員不可或缺的工具,這大大簡化了日常工作中的許多繁瑣任務。 

附件列表


0

詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領域),建議您咨詢相關領域專業(yè)人士。

如果您認為本詞條還有待完善,請 編輯

上一篇 順序結構    下一篇 內存管理分頁技術

同義詞

暫無同義詞