《Linux系统》之"深入浅出"(三)shell概述

本文详细介绍了Linux系统中的shell,特别是/bin/bash的特性与功能,包括命令记忆、文件名补全、命令别名、作业控制、通配符以及编程语言特性。此外,还探讨了shell中的变量,包括命名规则、使用规则、只读变量和删除变量,以及环境变量和自定义变量的区别。最后,讲解了read命令的使用,以接收键盘输入数据。
摘要由CSDN通过智能技术生成

一、什么是shell

到底什么是shell呢?我相信,这个问题,应该困扰过很多人吧?那么今天,我们就来好好捋一下这个概念。

首先,从英文单词上来理解,是“壳”的意思,用于区别“核”的概念,有“壳”保护“核”的涵义;这就好比“鸡蛋壳”与“鸡蛋黄”。然后我们再从计算机的角度来理解一下,计算机由一组硬件组成,,而内核(kernel)是用来管理和操纵这些硬件让其工作的。那么内核总不能让用户随意操作吧!对于公司来说,总会有菜鸟入职的,让他们随意操作内核,很容易造成系统崩溃。๑乛◡乛๑

因此,在内核之上又开发了一层应用程序。用户可以通过这样的应用程序来指挥内核,让内核管理相应的硬件来完成我们的任务。这样可以与内核进行直接交互的程序,我们就可以称之为shell。


Linux系统上的shell,实际上就是用户与Linux系统内核之间的接口程序,一种交互性命令解释器。用户在提示符界面输入的每一个命令,都要经由shell这个解释器来解释,然后传给内核,内核再继续往下工作。同样shell也能接收内核的输出信息,展示给用户。shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell。

Linux系统下存在多个shell,可以查看 /etc/shells文件来知晓系统内安装的shell,不过,最常用的shell还是/bin/bash。这个也是系统默认使用的shell。

[michael@master ~]$ cat /etc/shells
/bin/sh               <==Bourne Shell,已经被Bourne Again Shell取代
/bin/bash           <==Bourne Again Shell,系统默认使用的shell,兼容了Bourne Shell,功能更强大
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

既然系统下有多个shell,我们应该有这样的问题需要思考:用户什么时候使用shell?用户使用的是哪一种shell呢?这两个问题,其实我们在讲解用户管理时,已经说到过了。还记得登录验证的工作流程吗?当输入密码后,会先验证/etc/passwd文件里是否有此用户名,如果有的话,就会读取uid和gid,再读取用户主目录和要使用的shell,密码校验成功后,就会获得这个shell开始工作了。

二、/bin/bash的简介

Linux系统下虽然有很多种shell,但是最常用的还是/bin/bash这个shell,同时也是市场上众多流行Linux版本默认使用的shell。/bin//bash在兼容/bin/sh的所有功能的同时,也有一些自己独特的功能。甚至可以说成bash已经完全取代了sh。那么bash都有哪些好用的功能呢,我来介绍一下吧。

1、命令记忆功能

这个功能真是非常的好用呢?因为bash能记住我们输入过的命令,因此,我们就可以通过“上、下键”来找到前一个或者是后一个命令。而bash记住命令的数量多达1000个,可以理解成你输入的命令bash几乎全都记录了下来。

这些命令暂时保存在内存中,当你成功注销当前用户时,这些命令就会存在主目录下的.bash_history文件中。

2、命令和文件名补全功能

正因为有了这个功能,用户少打了很多字母,同时也提高了书写的正确率,进而提高了工作效率。

在命令行的相应位置上,按两下Tab键,会有不同的效果,

第一个词后连按两下Tab键,是对命令进行查看或者补全
第二个词后连按两下Tab键,是对文件名进行查看或补全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值