From b1f0bbdf9b01572fee0888d15bd75b4cfdad0e02 Mon Sep 17 00:00:00 2001 From: 7Wate Date: Wed, 16 Nov 2022 21:03:07 +0800 Subject: [PATCH] =?UTF-8?q?Shell=EF=BC=9AShell=20=E6=98=AF=E4=BB=80?= =?UTF-8?q?=E4=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Git/{高级/思维导图 => 进阶}/思维导图.md | 2 +- wiki/getting-started/Shell/Shell 是什么.md | 76 +++++++++++++++++++ wiki/getting-started/Shell/命令行的艺术.md | 11 ++- 3 files changed, 86 insertions(+), 3 deletions(-) rename wiki/getting-started/Git/{高级/思维导图 => 进阶}/思维导图.md (95%) create mode 100644 wiki/getting-started/Shell/Shell 是什么.md diff --git a/wiki/getting-started/Git/高级/思维导图/思维导图.md b/wiki/getting-started/Git/进阶/思维导图.md similarity index 95% rename from wiki/getting-started/Git/高级/思维导图/思维导图.md rename to wiki/getting-started/Git/进阶/思维导图.md index 500a12e8..02ee2541 100644 --- a/wiki/getting-started/Git/高级/思维导图/思维导图.md +++ b/wiki/getting-started/Git/进阶/思维导图.md @@ -6,7 +6,7 @@ keywords: - 思维导图 tags: - Git -sidebar_position: 1 +sidebar_position: 7 author: 7Wate date: 2022-11-16 --- diff --git a/wiki/getting-started/Shell/Shell 是什么.md b/wiki/getting-started/Shell/Shell 是什么.md new file mode 100644 index 00000000..fc228fc7 --- /dev/null +++ b/wiki/getting-started/Shell/Shell 是什么.md @@ -0,0 +1,76 @@ +--- +title: Shell 是什么 +description: Shell 是什么 +keywords: +- Shell +- 简介 +tags: +- Shell +sidebar_position: 1 +author: 7Wate +date: 2022-11-16 +--- + +## 历史 + +壳层(shell)这个说法起源于路易斯·普赞(Louis Pouzin),在 1964 年至 1965 年间首次提出,随后在 Multics(MULTiplexed Information and Computing System)项目中首次被实现出来。Unix 上的第一个 Unix 壳层(Unix shell)是肯·汤普逊(Ken Thompson)以 Multics 上的 shell 为范本,所写出的 Thompson shell。 + +微软的 Windows 操作系统也提供了命令行壳层的功能,它们是 Windows 95 / 98 下的 command.com、Windows NT 内核下的 cmd.exe 以及 PowerShell;而图形界面壳层即为 explorer.exe。 + +## 简介 + +Shell(壳层)在计算机科学中指**为用户提供用户界面**的软件,通常指的是命令行界面的解析器。一般来说,这个词是指操作系统中提供访问内核所提供之服务的程序。Shell 也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的层面。因此与之相对的是内核(Kernel),**内核不提供和用户的交互功能**。 + +通常将 shell 分为两类:命令行与图形界面。命令行壳层提供一个命令行界面(CLI);而图形壳层提供一个图形用户界面(GUI)。 + +## 图形用户界面(GUI) + +- DOS Shell +- Macintosh Finder +- Microsoft Windows 环境:Aston shell、BB4Win、Emerge Desktop、Geoshell、Litestep、程序管理器、Secure Desktop、SharpE、Windows Explorer、UserShell。 +- X Window System 环境或 Wayland 环境(主要用于类Unix操作系统) + - 独立的X窗口管理器,例如 Blackbox 与Fluxbox。 + - 依靠窗口管理器的完整桌面环境,例如:CDE、GNOME、Unity(以GNOME作内核)、KDE、XFCE。 + +## 命令行界面(CLI) + +### Unix + +#### Bourne shell 兼容 + +- **Bourne shell(sh)**史蒂夫·伯恩在贝尔实验室时编写。1978 年随 Version 7 Unix 首次发布。 + - Almquist shell(ash)由肯尼斯·艾昆斯特(Kenneth Almquist)在 SVR4 上建立了这个分支。 + - **Bourne-Again shell(bash)**由布莱恩·福克斯在 1987 年为了GNU计划而编写。 + - Debian Almquist shell(dash)由赫伯特·许(Herbert Xu)1997 年移植到Linux上后改名为 dash。 + - Korn shell(ksh)David Korn在贝尔实验室时编写。 + - Z shell(zsh)是 macOS(2019年起) 一款可用作交互式登录的shell及脚本编写的命令解释器。 + +#### C shell 兼容 + +- C shell(csh)比尔·乔伊在加州大学伯克利分校时编写。1979年随BSD首次发布。 + - TENEX C shell(tcsh) 一个向下兼容c shell的Unix shell,目前作为FreeBSD和其延伸发行版的默认shell。 + +### 非Unix + +- 4DOS, 4OS2, 4NT – JP Software 公司可在在 DOS, OS/2,及 Windows NT 下使用的壳层。Take Command程序则是 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的指令处理器 diff --git a/wiki/getting-started/Shell/命令行的艺术.md b/wiki/getting-started/Shell/命令行的艺术.md index de60af9e..9fac4e40 100644 --- a/wiki/getting-started/Shell/命令行的艺术.md +++ b/wiki/getting-started/Shell/命令行的艺术.md @@ -1,7 +1,14 @@ --- -id: 命令行的艺术 title: 命令行的艺术 -data: 2022年8月5日 +description: 命令行的艺术 +keywords: +- 命令行 +- Shell +tags: +- Shell +sidebar_position: 2 +author: 7Wate +date: 2022-11-16 --- 熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。