殼層
























「殼層」的各地常用別名
中国大陸
shell
港臺
殼層

Linux系统的大致结构,其中包括Shell

在電腦科學中,殼層英语:shell)指「為使用者提供使用者介面」的軟體,通常指的是命令行界面的解析器。一般來說,這個詞是指作業系統中提供存取内核所提供之服務的程式。Shell也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的层面。因此与之相对的是内核(英语:Kernel),内核不提供和用户的交互功能。


不過這個詞也拿來指應用軟體,或是任何在特定元件外圍的軟體,例如瀏覽器或電子郵件軟體是HTML排版引擎的shell。Shell這個詞是來自於作業系統(核心)與使用者介面的外層介面。


通常將shell分為兩類:命令列與圖形介面。命令列殼層提供一個命令行界面(CLI);而圖形殼層提供一個圖形使用者介面(GUI)。




目录






  • 1 歷史


  • 2 殼層列表


    • 2.1 图形用户界面(GUI)殼層


    • 2.2 命令行界面(CLI)殼層


      • 2.2.1 Unix或類似作業系統下的殼層


      • 2.2.2 非Unix作業系統的殼層






  • 3 參考文獻


  • 4 外部連結


  • 5 參見





歷史


殼層(shell)這個說法起源於路易斯·普贊(Louis Pouzin),他在1964年至1965年間首次提出,隨後在Multics(MULTiplexed Information and Computing System)計畫中首次被實作出來。[1]


Unix上的第一個Unix殼層(Unix shell)是肯·湯普遜(Ken Thompson)以Multics上的shell為範本,所寫出的Thompson shell。[2][3]


在微软的Windows操作系统也提供了命令行殼層的功能,它们是Windows 95 / 98下的command.com、Windows NT内核下的cmd.exe以及PowerShell;而图形界面壳层即为explorer.exe。



殼層列表



图形用户界面(GUI)殼層


GUI通常會建構在視窗系統上。例如X Window System中,有獨立的X窗口管理器以及依靠窗口管理器的完整桌面環境。



  • AmigaOS環境:


    • Workbench(從AmigaOS 2.0之後增加了GUI殼)


    • Ambient(MorphOS)

    • Directory Opus

    • ScalOS


    • Wanderer(AROS.)




  • DOS Shell

  • Macintosh Finder



  • Microsoft Windows環境:

    • Aston shell

    • BB4Win

    • Emerge Desktop

    • Geoshell

    • Litestep

    • Program Manager

    • Secure Desktop

    • SharpE

    • Windows Explorer


    • UserShell [4]




  • X Window System環境(主要用於類Unix作業系統):

    • 獨立的X窗口管理器,例如Blackbox與Fluxbox

    • 完整的桌面環境,例如:

      • CDE

      • GNOME


      • Unity(以GNOME作核心)

      • KDE

      • XFCE






命令行界面(CLI)殼層



Unix或類似作業系統下的殼層


常見或歷史上知名的Unix殼層有:




  • Bourne shell(sh) /*'man sh'*/


    • Almquist shell(ash) /*'man ash'*/

      • Debian Almquist shell(dash) /*'man dash'*/



    • Bourne-Again shell(bash) /*'man bash'*/


    • Korn shell(ksh) /*'man ksh'*/


    • Z shell(zsh) /*'man zsh'*/




  • C shell(csh) /*'man csh'*/

    • TENEX C shell(tcsh) /*'man tcsh'*/



  • EMACS shell (eshell)


  • Es shell(es)


  • esh (Unix) – Easy Shell


  • friendly interactive shell(fish) /*'man fish'*/


  • rc shell(rc)– shell for Plan 9 from Bell Labs and Unix


  • scsh(Scheme Shell)


  • Stand-alone Shell(sash)


  • BeanShell(bsh,bsh.Interpreter , bsh.Console) /*'man bsh'[永久失效連結]*/


  • Rhino JavaScript殼層(org.mozilla.javascript.tools.shell.Main) /*'man rhino'*/


以及linux系統上的:'/etc/shells'



非Unix作業系統的殼層




  • 4DOS, 4OS2, 4NT – JP Software公司可在在DOS, OS/2,及Windows NT下使用的殼層。Take Command英语Take Command (command line interpreter)程式則是GUI方式的相容程式。


  • Amiga CLI/Amiga殼層是稱為Workbench的AmigaOS圖形介面的另一選擇。


  • BASIC-PLUS – RSTS/E


  • Beemos(BEEMos)–在Windows XP上執行的一個小型專案,提供設定、應用程式等功能,感覺起來像是在另一個作業系統下。


  • CANDE MCS– MCP作業系統的指令行殼曾與文字編輯器


  • CCP – CP/M作業系統的主控台指令處理器


  • cmd.exe –基於OS/2、Windows CE、Windows NT系列作業系統的命令提示字元殼層


  • COMMAND.COM – DOS的殼層


  • Commodore DOS Wedge – Commodore 64上BASIC 2.0的延伸功能,包括常用磁碟操作的簡略指令


  • DCL – OpenVMS的標準殼層,衍生自早期的迪吉多(DEC)作業系統


  • DDT – 迪吉多(DEC)PDP-10 偵錯工具,麻省理工學院Incompatible Timesharing System的指令殼層


  • DROS – 智能手机上基於Java ME平台的類DOS殼層


  • EFI-SHELL –可擴展韌體介面(Extensible Firmware Interface,EFI)指令殼層,它是開放原始碼的


  • Google Shell –基於瀏覽器的Google Search前端介面


  • iSeries QSHELL – IBM OS/400上的Unix風格殼層


  • Macintosh Programmer's Workshop –古典Mac OS軟體開發用的老式指令行環境


  • Microsoft BASIC –一些古老8位元電腦上的主要作業環境


  • Rexx – IBM的脚本语言(scripting language)


  • Singularity shell – Singularity的標準殼層


  • Windows PowerShell –命令提示字元的新一代物件導向後繼者(舊稱Monad或Microsoft Shell (MSH))


  • Windows修復主控台– Windows 2000、Windows XP、Windows 2003作業系統的一項功能


  • YouShell –用於YouOS,基於JavaScript的指令處理器



參考文獻





  1. ^ Louis Pouzin, The Origin of the Shell


  2. ^ http://v6shell.org/history/


  3. ^ http://www.multicians.org/unix.html


  4. ^ UserShell Software Complex. 




外部連結



  • 命令殼層概觀,Microsoft Technet

  • The Unix Shell: Introduction



參見




  • 電腦殼的比較


  • 殼帳號(Shell Account)


  • 殼腳本(Shell Script)

  • 批次檔

  • Unix shell

  • DOS殼

  • Internet Explorer殼




Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Why https connections are so slow when debugging (stepping over) in Java?