sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别

sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别

1. Shell脚本的书写

  • 在写Shell脚本时,往往第一行要注明用什么解释器来解释这个脚本。
    • 如#!/bin/bash即用/bin/bash这个解释器来解释接下来的语句。
    • 还有如#!/bin/csh
  • Shell脚本的一般后缀是.sh

2. Shell的类型(以下列出相对流行的shell,但不是全部)

  • sh(全称Bourne Shell),是UNIX最初使用的shell,而且在每种UNIX上都可以使用。
    • Bourne Shell在shell编程方便相当优秀,但在处理与用户的交互方便作得不如其他几种shell。
  • bash(全称Bourne Again Shell),LinuxOS默认的,它是Bourne Shell的扩展。
    • 与Bourne Shell完全兼容,并且在Bourne Shell的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多C Shell和Korn Shell中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。
  • csh(全称C Shell),是一种比Bourne Shell更适合的变种Shell,它的语法与C语言很相似。
  • Tcsh是Linux提供的C Shell的一个扩展版本。
    • Tcsh包括命令行编辑,可编程单词补全,拼写校正,历史命令替换,作业控制和类似C语言的语法,他不仅和Bash Shell提示符兼容,而且还提供比Bash Shell更多的提示符参数。
  • ksh(全称Korn Shell),集合了C Shell和Bourne Shell的优点并且和Bourne Shell完全兼容。
  • pdksh,是Linux系统提供的ksh的扩展。
    • pdksh支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老秦求学

Install-Package:QRCoder已拥有为System.Drawing.Common定义的依赖项

2235
来自专栏ASP.NETCore

.NET Core中ADO.NET SqlClient的使用与常见问题

  在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的工作;目前有一些网友问有关于.NET Core操作SQL Server的问题在...

1241
来自专栏iOS技术杂谈

iOS多线程——你要知道的RunLoop都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里

你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里 转载请注明出处 https://cloud.tencent.co...

4248
来自专栏iOS技术

iOS RunLoop 深入探究

RunLoop是iOS或OSX开发中很重要的一个组件,它实现了很多底层的功能,本文主要分析RunLoop的概念、结构、运行原理,文中的结论主要是基于苹果官方文档...

3537
来自专栏.NET后端开发

ADO.NET入门教程(一) 初识ADO.NET

摘要 作为.NET框架最重要的组件之一,ADO.NET扮演着应用程序与数据交互的重要的角色。本文将从宏观的角度来探讨ADO.NET,和大家一起了解ADO.NET...

39010
来自专栏张善友的专栏

Castle Core 4.0.0 alpha001发布

    时隔一年多以后Castle 项目又开始活跃,最近刚发布了Castle Core 4.0.0 的alpha版本, https://github.com/c...

2285
来自专栏张善友的专栏

asp.net mvc本地程序集和GAC的程序集冲突解决方法

一个从asp.net mvc 3升级到asp.net mvc 4的项目发生了如下错误: [A]System.Web.WebPages.Razor.Config...

1955
来自专栏张善友的专栏

每周.NET前沿技术文章摘要(2017-05-24)

汇总国外.NET社区相关文章,覆盖.NET ,ASP.NET等内容。

5850
来自专栏张善友的专栏

IronPython整合Windows PowerShell

      Windows PowerShell 是微软为 Windows 环境所开发的 shell 及脚本语言技术,这项全新的技术提供了丰富的控制与自动化的系...

2007
来自专栏10km的专栏

java nio: Files.isWritable判断文件夹可写(创建子文件夹或文件)

java.nio.file.Files.isWritable方法用于测试一个文件是否可写。但是对于文件夹,这个办法并不能用来测试文件夹是否可以创建子文件夹或文件...

2005

扫码关注云+社区