shell教程


1 菜鸟入门

    1.1 三国鼎立,江湖恩怨

    1.2 精灵小黑,分身有术

    1.3 source命令

    1.4 入门Linux

2 shell入门

    2.1 shell重生之路

    2.2 变量入门

    2.3 逻辑运算入门

    2.4 空格入门

    2.5 数组入门

    2.6 $和#入门

    2.7 大括号入门

3 命令故事

    3.1 命令王国的习俗

    3.2 命令的胡吃海喝

    3.3 命令的肺腑之言

    3.4 xargs的左右逢源

    3.5 Linux的crontab

菜鸟误解,shell自白

阅读次数:1211 次

下面这个问题来自于知乎的菜鸟误解:

最近想学学 Linux 下的 shell,基础知识都看完了,想做点东西,但是绞尽脑汁还是没想起来做点什么,最后我也查了一下 shell 的作用,到现在还没有一个很好的答案,都说 shell 可以直接与计算机交互,但是我想其他语言不也能方便的与计算机进行交互吗?shell 实现的功能,其他语言也能实现,可能会稍微复杂一些,难道 shell 就这点优势吗?望解惑!感激不尽。

下面是高赞答案:

从这个问题就能看出来,题主对shell的定位没有理解。题主不应该拿shell跟其他语言来对比,更不应该有这样的质疑:shell 实现的功能,其他语言也能实现,可能会稍微复杂一些,难道 shell 就这点优势吗?

关于shell的定位,应该从它的名字说起,操作系统分为内核(kernel)和外壳(shell)。也就是说shell的定位属于操作系统。题主拿操作系统的东西去跟编程语言去对比,明显不对等,门不当户不对啊。

操作系统的作用是什么呢?是管理计算机硬件与软件资源的计算机程序。那么shell的作用也是如此,即是管理计算机硬件与软件资源。

正如题主所说,“最近想学学 Linux 下的 shell,基础知识都看完了,想做点东西,但是绞尽脑汁还是没想起来做点什么”。因为我们平时很少会去管理计算机硬件和软件的,所以题主找不到shell的用武之地,这很正常。

shell是用来管理计算机硬件与软件资源的,所以shell就像一个胶水,能粘合其他的各种语言,实现软件资源的配合和协作。