shell 学习

Posted rumeng-better

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 学习相关的知识,希望对你有一定的参考价值。

  1. sh/bash/csh/Tcsh/ksh/pdksh等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 支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序

1、chmod +x file 加上执行权限,否则会提示无执行权限。

2、注意执行脚本时候或者全目录,或者 ./file.sh ,如果不加的话,linux 默认会从PATH 里去找该 file.sh。

3、看了这篇教程,发现脚本后缀名可以任意修改,仍然可以正常运行。

4、语法类php,方便学习。

  1. 首先,什么是脚本语言?

    脚本语言是像剧本一样教计算机办某个事情的语言。

    比如你想让计算机执行复制某个文件的操作,如:cp ~/Desktop/*.txt ~/text

    你可以在文本编辑器写入上边的代码并且保存此文件,然后你通过执行这个文本文件来执行上面的代码,并不需要重复手动输入上边的代码。

    下面这句话是在网上看到的:

    所以脚本其实就是短小的、用来让计算机自动化完成一系列工作的程序,这类程序可以用文本编辑器修改,不需要编译,通常是解释运行的。

  2. ubuntu(linux)下 source、sh、bash、./ 执行脚本的区别是什么?

    1. source命令用法:

    source FileName

    作用:在当前 bash 环境下读取并执行 FileName 中的命令。该 filename 文件可以无 "执行权限"。

    注:该命令通常用命令 . 来替代。

    2. sh、bash的命令用法:

    sh FileName
    
    bash FileName

    作用:打开一个子 shell 来读取并执行 FileName 中命令。该 filename 文件可以无 "执行权限"。

    注:运行一个shell脚本时会启动另一个命令解释器。

    3、./的命令用法:

    ./FileName

    作用: 打开一个子 shell 来读取并执行 FileName 中命令,该 filename 文件需要 "执行权限"。

    注:运行一个 shell 脚本时会启动另一个命令解释器。

  3. shell 和 shell 脚本的概念

    shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

    shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身(如Windows Explorer扩展开发)。





以上是关于shell 学习的主要内容,如果未能解决你的问题,请参考以下文章

201555332盛照宗—网络对抗实验1—逆向与bof基础

Shell外壳的简易模拟

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

shell 脚本 片段

vue2.0 代码功能片段