浅谈Linux下的shell--BASH

news2024/9/29 17:21:33
环境:centos7.6,腾讯云服务器
Linux文章都放在了专栏:【 Linux 】欢迎支持订阅 🌹

shell的概念与作用

我们已经学习并知道了操作系统实际上就是一款软件,一款用来管理计算机软硬件资源,为用户提供良好的执行环境的软件。假如该软件能被用户随意操作,就会有可能出现因操作不当而导致整个系统崩溃的情况。因此:操作系统是不能直接与用户沟通的

但是,计算机的使用一定是离不开操作系统的,基于此情况,就有了在OS上面发展的各种应用程序。用户可以通过应用程序来指挥OS内核,从而让内核完成我们所需要的硬件任务。

shell的作用

  • 举个简单的例子:假如我想要播放音乐,就一定要有声卡,然后我们用户只需要在应用层面点击播放就可以实现让声卡播放声音的目的。实际上,我们点击播放,就是向OS发出指令,从而让OS管理硬件(声卡),完成任务。

  • 我们可以发现,我们使用的应用程序是在最外层的,就好像鸡蛋的外壳一样,因此这个东西也被成为壳程序。而shell的作用就是充当壳程序,OS内核通过shell接收我们用户发出的各项指令,从而完成一系列任务。再简单一点的理解:shell就是Linux下的命令行解释器,我们写的一系列指令并不是直接在OS内核操作,而是通过命令行解释器来指挥OS内核。(当然,对于不合理的指令,OS是有权限拒绝的,这样就保证了OS内核的安全性)。

★简单总结一下:

  • shell就是一种壳程序,避免用户直接与OS内核沟通

  • shell的作用是将我们的指令翻译给OS内核,让内核来进行处理,并把处理的结果反馈给用户。(Windows下的壳程序就是图形化界面)

  • shell的存在使得用户不会直接操作OS,保证了OS的安全性

  • 简单来说,shell就是Linux下的命令行解释器,我们写指令的地方。

Linux下的shell

bash

我们可以打开文件/etc/shells,可以查看我们Linux下的shell,打开后内容如下:

 /bin/sh    (已经被/bin/bash所替换)                                                                                                           
 /bin/bash   (Linux默认的shell)
 /usr/bin/sh  (同/bin/sh)
 /usr/bin/bash  (同/bin/bash)
 /bin/tcsh      (整合C shell,提供更多的功能)
 /bin/csh      (被/bin/tcsh替换)

我们可以发现,Linux默认的shell就是bash,所以我们常说的命令行解释器,其实就指的是bash。当我们登陆时,系统就会自动给我们一个shell来工作,我们可以在文件/etc/passwd中查看用户登陆的shell。

文件中的内容

我们打开后,会发现每一个用户都有自己的shell,这个shell就是bash,当然这也可以说明一点:Linux是一个多人多任务的环境,即每一个用户都有自己对应的bash。即使是在同一个机器登录。

★这里简单总结一下;

  • Linux默认的shell就是bash。

  • 在我们登陆时,系统会自动给我们分配对应的shell—bash,并且每个用户都有自己的bash。即Linux是一个多人多任务的环境。

bash的功能

Linux既然使用bash作为默认shell,那么bash就一定有它的优点吸引住了Linux。我们接下来简单了解一下bash的优点:

一、历史命令

我们为什么可以通过上下键来翻看我们的历史命令,就是因为它是bash的一个功能,而我们既然可以bash上工作,那么理所当然的就可以使用这个功能。-----通过上下键来翻看历史指令

指令都存放在家目录下的.bash_history中,~表示是当前用户的家目录,我们可以进入里面,用ls -al来查看家目录下的所有文件,打开.bash_history文件,会看到我们上一次登录时的历史指令。(本次登录的指令记录会被缓存到内存中,只有退出登录时才会被记录到该文件中)

演示

二、命令与文件名补全功能(Tab键)

我们在输入一个指令时,假如只知道前面的一部分,后面的给忘记了,就可以按键盘上面的Tab键(可能会按两次),然后屏幕就会显示以我们写的字母开头的所有指令,帮助我们回忆。并且当一个文件名过于长,而我们又懒得一个字母一个字母敲打时,就可以只输入前几个字母,就会实现文件名自动补全。很爽的一个功能。

Tab键演示

三、一些内置命令的使用

我们使用的一些指令,比如alias(给指令起别名)、cd、等指令都是bash内置的指令,只有使用bash工作时,才可以使用这些指令。我们可以通过type -t 指令的命令来查看该指令是否为bash的内置指令

  1. 显示alias说明该指令是别的指令的别名

  1. 显示file说明该指令为外部指令

  1. 显示builtin说明该指令为bash内置指令

我们也知道,指令实际上就是一个程序,也是一个文件,Linux下一切皆文件,所以我们可以用type -a 指令 的命令来查找指令所在的位置,当然也可以用which来查找。

查找指令所在位置演示

除此之外,还有任务管理前后台控制程序化脚本的支持、包括我们用过的通配符的使用(比如*),都是bash所支持的功能,这里就不一一介绍了。后面有时遇到再进行扩展。

由此可见,bash的功能真的很香,怪不得Linux默认的shell是bash。


end.

生活原本沉闷,但跑起来就会有风!🌹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/398682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

擎创喜报 | 名单公布!恭喜入选!

前言:企业数字化转型作为一种经营策略,指的是利用数字技术和数字化流程来改变企业的运营、管理、销售和服务方式,以适应数字化时代的发展趋势。一般来说,企业进行数字化出于以下几点考虑。提高效率:数字化改进了业务流…

人口老龄化背景下家政服务网络平台【附源码】

1 毕业论文(设计)版权使用授权书 本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借阅。本人授权广西…

JAVA中比较对象是否相等的方式是什么?为什么重写equals就一定要重写hashcode?百天百题(3/100)

目录 JAVA中比较对象是否相等的方式是什么? 为什么重写equals就一定要重写hashcode? JAVA中比较对象是否相等的方式是什么? 在了解这个问题之前需要先知道: 1.如果对象相同,那么hashcode是一定相同的。 2.对象不同的…

哈希表

文章目录什么是哈希问题引入哈希函数直接定址法除留余数法 (常用、重点)哈希冲突哈希冲突的解决方法闭散列开散列unordered_map && unordered_set 封装实现哈希的应用位图布隆过滤器哈希经典面试题哈希切分位图应用布隆过滤器什么是哈希 在上一…

阿里巴巴商品详情爬虫数据字段解析 源代码分享 调用示例

返回数据代码段1"item": {"num_iid": "60840463360","title": "Slip-on Daily Urban Walking Shoes","desc_short": "","price": "$47.70","nick": "cn1522808546p…

TypeScript深度剖析:TypeScript 中类的理解?应用场景?

一、是什么 类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础 类是一种用户定义的引用数据类型,也称类类型 传统的面向对象语言基本都是基于类的,JavaScript …

好友管理系统--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

实例3:好友管理系统 如今的社交软件层出不穷,虽然功能千变万化,但都具有好友管理系统的基本功能,包括添加好友、删除好友、备注好友、展示好友等。下面是一个简单的好友管理系统的功能菜单,如图1所示。 图1 好友管理系…

api接口详解大全

api接口详解大全?优秀的设计是产品变得卓越的原因设计API意味着提供有效的接口,可以帮助API使用者更好地了解、使用和集成,同时帮助人们有效地维护它每个产品都需要使用手册,API也不例外在API领域,可以将设计视为服务器和客户端之…

【SpringCloud】SpringCloud教程之Nacos实战(三集群配置)

目录前言一.Nacos集群逻辑图二.Nacos集群搭建1.搭建数据库,初始化数据库表结构2.下载Nacos3.配置Nacos3.启动Nacos4.配置启动nginx5.测试是否成功6.设置服务的nacos地址7.新增一个配置,查看数据看是否进行持久化了前言 在我前面两篇讲的都是单个nacos&a…

Activity的启动和结束

onCreate:创建活动。此时会把页面布局加载进内存,进入了初始状态。onStart:开启活动。此时会把活动页面显示在屏幕上,进入了就绪状态。onResume:恢复活动。此时活动页面进入活跃状态,能够与用户正常交互&am…

Vulnhub系列:FristLeaks

一、配置靶机环境以往的靶机,本人是在virtual box中,去配置,和vm上的kali进行联动,但是这个靶机需要DHCP,以往的方式可能不太行了,或者可以在virtual box中桥接成统一网卡。下面介绍下本人最有用的方法&…

2021牛客OI赛前集训营-提高组(第三场) T4扑克

2021牛客OI赛前集训营-提高组(第三场) 题目大意 小A和小B在玩扑克牌游戏,规则如下: 从一副52张牌(没有大小王)的扑克牌中随机发3张到每个玩家手上,每个玩家可以任意想象另外两张牌&#xff0…

Allegro如何知道单个操作命令的拼写

Allegro如何知道单个操作命令的拼写 在用Allegro做PCB设计的时候,时常需要给某些命令设置一些快捷键,但是有时候无法知道命令的拼写是什么,就无法定义到env文件里面去 如下图 如何知道上方图标的命令拼写,下面介绍两种方法 方法一 鼠标左键移动到图标的位置,就会出现命令…

【动态规划】背包问题(01背包,完全背包)

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

JavaWeb学习-Tomcat

常用的Web服务器 ①IIS:Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在…

二进制转换之命理学习

什么是十神 运用儒家学说: 克我者官也:古代没有民主思想,官不是为民服务的,官就是克的。 对男命来说克我的是儿女,女儿是正官,儿子是偏官(七杀)克的厉害,对父亲来说有了…

图解七大排序算法,面试超高频考点,java实现

前言 排序算法在面试中属于超高频的考点了,至少要学会如何手写各种排序算法,其中快速排序尤为重要 看完了本文以后,大家可以自己尝试着去手写一下这些排序算法啦,leetcode题号:75颜色分类 多努力点,活的…

体验用arduino来实现PLC编程器的功能

是不是想自己临时做个PLC的测试,但又不想卖西门子三菱的PLC,那就可以用这个,把arduino变成一个PLC的编程器。 文章目录一、下载与安装1、下载2、安装二、初次使用1、打开范例程序学习2、调试运行3、下载到arduino板中文章出处: ht…

科技成果赋智中小企业深度行 边界无限靖云甲ADR入选十大优秀案例

近日,国家工业信息安全发展研究中心、青岛市工业和信息化局、青岛市民营经济发展局、青岛市即墨区人民政府、青岛蓝谷管理局联合举办的科技成果赋智中小企业“深度行”活动(青岛站)成功举办,同步举行了赋智“深度行”活动&#xf…

最短路径Dijkstra算法的分析与具体实现(思路加代码)

❤️作者主页:微凉秋意 ✅作者简介:后端领域优质创作者🏆,CSDN内容合伙人🏆,阿里云专家博主🏆 ✨精品专栏:C面向对象 🔥系列专栏:数据结构与课程设计 文章目录…