[ Linux ] shell学习 —— shell 究竟是啥?


shell 初认识

对于操作系统(无论是Linux、Unix或者Windows)有一些了解的朋友来说,一定听说过shell。因为只要是操作系统都离不开shell。
那么shell到底是什么呢?可以让操作系统这么离不开它?

举个栗子🌰

当我们想要计算机打开网络,计算机需要什么呢?

  • 硬件:需要计算机硬件有“网卡芯片”这个配件
  • 核心管理:操作系统的核心需要提供芯片的驱动程序
  • 应用程序:需要使用者输入打开网卡的命令

这就是一个计算机能打开网络所需要的步骤。当你要输入一个指令之后,硬件才会通过你下达的命令来工作。
用户者通过命令和计算机交互的方式:shell

这里一定会有人发出质疑,在X Window下面就只要按下按钮就能搞定开启网络,何必要学什么shell这么麻烦呢?
还有就是Xwindow还有Web接口设置工具如Webmin,这好用的工具就可以帮我们搞定很多配置,这些工具都比shell来的好用又简单,何必要学什么shell这么麻烦呢?
大家有这种疑惑吗?

其实X window与web接口的工具,功能虽然强大,但毕竟是将所有软件都整合在一起的一组应用程序,不是一套完整的套件。不同的 distribution 所设计的 X window 接口也都不相同。

命令行的shell就不同,每个厂家的distribution使用的bash都是一样的。也就是说只要学会了shell就能解决所有的所有自己想实现的功能,不只是局限于组合在一组应用程序的web接口,或者按一按鼠标而已。

Linux的管理常常需要通过远端连线,这种情况下命令行绝对是优先选择使用的,速度快而且不容易出现断线或者信息泄露的问题。

有人又有疑问说,web端封装好的接口足够我们用了,没必要大费周章的再去学shell,也用不着。

好兄弟,当你的主机安然无恙的时候,会发现学这么多东西一点帮助都没有!
万一哪一天不幸中标了,你该怎么办呢?重新安装?还是修补漏洞?万一里面有重要文件或者 e 。。。。拿去维修,那多不好,嘿嘿。。。所以多学一点总是好的,有备无患嘛!

如果你想要将自己的主机管理好,那么良好的shell编程时必不可少的。十分钟不到的时间就可以看十几台主机的重要信息!非常好用!


shell 发展史

1、第一个流行的 shell 是由Steven Bourne 发展出来的, 为了纪念他所以就称为 Bourne shell , 或直接简称为 sh
2、后来另一个广为流传的 shell 是由柏克莱大学的 Bill Joy 设计依附于 BSD 版的 Unix 系统中的shell , 这个 shell 的语法有点类似 C 语言, 所以才得名为 C shell , 简称为 csh。由于在学术界 Sun 主机势力相当的庞大, 而 Sun 主要是 BSD 的分支之一, 所以 C shell 也是另一个很重要而且流传很广的 shell 之一 。

shell名称的由来:
使用者可以通过应用程序来指挥核心,让核心达成我们所需要的硬件任务!在操作系统整体框架中可以发现应用程序其实是在最外层,就如同鸡蛋的外壳一样,所以称之为壳程序(shell)。


查看当前Linux下所有 shell

目前我们的Linux支持的shell,可通过/etc/shells文件查看:

  • /bin/sh ( 已经被 /bin/bash 所取代)
  • /bin/bash ( 就是 Linux 默认的 shell)
  • /bin/tcsh ( 整合 C Shell , 提供更多的功能)
  • /bin/csh ( 已经被 /bin/tcsh 所取代)

/etc/shells 这个文件记录了你当前Linux系统中所支持的shell版本(只是其中的一部分,还有其他shell在别的路径下)
在这里插入图片描述

系统上合法的shell都要写入到这个文件中。某些服务在运行过程中, 会去检查使用者能够使用的 shells , 而这些shell 的查询就是借由 /etc/shells 这个文件。 这里举个例子🌰

现象: 在FTP服务器上添加新用户,但发现添加后登陆不了FTP服务器,一直都是报530,用户认证失败。
原因: 这时就要检查下FTP服务器上/etc/shells文件里是否添加了用户的shell(解析器)。用户解释器为/sbin/nologin,而系统的/etc/shells文件里面没有添加/sbin/nologin,所以在运行的过程中会认证不过。
解决方案: 只要将/sbin/nologin添加进/etc/shells文件即可。


查看当前使用的默认 shell

当登陆的时候,系统会给我们分配一个shell让我们工作。这个登陆启动的shell(称默认shell)就记录在/etc/passwd这个文件中
在这里插入图片描述
在每一行的最后一个数据, 就是你登陆后可以取得的默认的 shell。
root 是 /bin/bash
daemon和bin系统账户就是/user/sbin/nologin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bazinga bingo

您的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值