Linux shell复习

来源:互联网 发布:淘宝拍摄摄影软件 编辑:程序博客网 时间:2024/06/06 01:45

shell是什么?

shell是用户应用程序(application)与内核进行交互的外壳.也可以作为我们与内核交互的环境


为什么叫外壳?这就好比面向对象里面的private修饰的变量以及函数,不想让其它人触碰到的数据以及程序段,


为了让各位能够更加清楚shell是干什么的?特此举例如下:


当你在终端里面输入ls命令的时候,会显示你当前所在目录的文件名称,如果你直接塞给内核,“它”无法完成这样的工作,因为内核无法处理ls这样的一个字符串,而且从安全性角度来讲,如果我们直接与内核进行交互,假如我们犯错了呢,输入一个错误的命令呢?很容易造成系统崩溃,所以shell的作用就在与此.


学习shell之前的准备

首先你必须了解一些基本常用的命令,我曾在github上面曾经写过一些常用的命令,链接如下:

点击打开链接https://github.com/qq854674282/test_1

其次,你要决心,对于这种学了但不能一次性换二两馍的东西,如果你真心要学,祝君好运。。。



Let's shelling...

第一个shell程序,当然是hello world

#!/bin/bash                                                    ----------->采用何种方式的shell解释器


echo "Hello world"                                          ----------->echo命令


其实很容易就理解了,我们使用bash ,并在其下运行echo命令,


将上面的东西再抽象一点,即每一个shell程序必须在一行写上  #!/bin/***     ***则是指你采用的shell解释器,关于shell解释器,有如下几种:

ksh

bash

sh

csh

...


下面的echo命令即为我们打开了一个bash环境,在其下运行echo "Hello world"命令


shell说白了就是一大堆命令堆积起来的东西,但其后还有一些基本的语法,比如if ...else... 、 for..do..done、case ...esac等等

在其中填充的全是命令


我们可以使用命令来达到我们想要实现的任何东西


<对于shell解释器的补充:>

我们可以在我们的终端上面打一个上面的解释器出来,以sh为例


我们可以尝试再打一个exit出来<解释在后面,请耐心>



这是怎么回事?


我们打开每一次终端,我们的os都会参照/etc/passwd里面的最后一行来打开一个相应的shell环境,以供我们与内核进行交互,/etc/passwd截图如下:



我们可以很清楚的看到,以wangxuan身份登录,OS会打开/bin/bash的交互环境让我们与内核进行交互,

而我们以sshd登录时,则会打开/usr/sbin/nologin的环境.


当我们输入exit则会退出当前的sh环境,不会退出bash环境,

我们可以无限的任意个环境里面调用另一个,但关闭时即按照类似与退栈的方式关闭,

<补充:当我们在一个shell环境里面打开另一个环境,则原来的那个shell环境处于休眠状态>



下一章节将会讲到shell的相关语法,谢谢大家观看,三鞠躬,撒花。。。


<讲的比较乱,所以希望各位见谅>

0 0