【新星计划·2023】认识和学习BASH(一)

作者:Insist--

个人主页:insist--个人主页

作者会持续更新网络知识和python基础知识,期待你的关注

目录

一、认识BASH

1、硬件、核心与Shell

①硬件

②核心管理

③应用程序

2、为何要学文字接口的shell?

3、系统的合法shell与/etc/shells 功能


前言

在Linux的环境下,如果你不懂BASH是什么,那么其他的东西就不用学了!因为使用终端机下达指令的方式,就是透过bash的环境来处理的。所以说,它非常重要吧!BASH的内容非常的多,包括变量的设定与使用、bash操作环境的建置、数据流重导向的功能,还有那好用的管线命令!

一、认识BASH

我们知道,操作系统的核心是管理整个计算机硬件的,这个核心是需要被保护的!所以我们一般使用者就只能透过shell来跟核心沟通,以让核心达到我们所想要达到的工作。那么系统有多少shell可用?为什么我们要使用bash?

1、硬件、核心与Shell

“什么是Shell?”,相信只要摸过计算机,对于操作系统有点概念的朋友们大多听过这个名词,因为只要有操作系统那么就离不开Shell。在讲解Shell之前,我们先来了解一下计算机的运作状况!

举个例子:当你要使用计算机放音乐的时候,你的计算机需要什么东西呢?

①硬件

当然最重要的硬件有“声卡”这个配备,否则怎么会有声音。

②核心管理

操作系统的核心可以支持这个芯片组,当然还需要提供芯片的驱动程序

③应用程序

需要你输入发生声音的指令。这就是基本的一个输出声音所需要的步骤,也就是说,你必须要输入一个指令之后,硬件才会透过你下达的指令来工作!

那么硬件如何知道你下达的指令呢?

那就是kernel (核心)的控制工作了。也就是说,我们必须要透过Shell将我们输入的指令与Kernel沟通,好让Kernel可以控制硬件来正确无误的工作!基本上,我们可以透过底下这张图来说明一下:

d235773a0b9d448d99cae992883c7331.jpg

我们都知道,操作系统其实是一组软件,由于这组软件在控制整个硬件与管理系统的活动监测,如果这组软件能被用户随意的操作,若使用者应用不当,将会使得整个系统崩溃。因为操作系统管理的就是整个硬件功能!所以当然不能够随便被一些没有管理能力的终端用户随意使用。但是我们总是需要让用户操作系统的,所以就有了在操作系统上面发展的应用程序!用户可以透过应用程序来指挥核心,让核心达成我们所需要的硬件任务!有很多命令如:包括man , chmod , chown , vi , fdisk , mkfs等等指令,这些指令都是独立的应用程序,但是我们可以透过壳程序(就是指令列模式)来操作这些应用程序,让这些应用程序呼叫核心来运作所需的工作。

2、为何要学文字接口的shell?

学一个东西,我们大部分情况都是往实用性方向着想。从工作角度来讲,学习Shell是为了提高我们自己工作效率,提高产出,让我们在更少的时间完成更多的事情。目前Linux系统下最流行的运维自动化语言就是Shell和Python了。

两者之间,Shell几乎是IT企业必须使用的运维自动化编程语言,特别是在运维工作中的服务监控、业务快速部署、服务启动停止、数据备份及处理、日志分析等环节里,shell是不可缺的。Python更适合处理复杂的业务逻辑,以及开发复杂的运维软件工具,实现通过web访问等。Shell是一个命令解释器,解释执行用户所输入的命令和程序。一输入命令,就立即回应的交互的对话方式。

3、系统的合法shell与/etc/shells 功能

知道什么是Shell之后,那么我们再来了解一下 Linux使用的是哪一个shell?由于早年的 Unix 年代,发展者众,所以由于shell 依据发展者的不同就有许多的版本,例如常听到的 Bourne SHell (sh) 、在 Sun 里头预设的 C SHell、 商业上常用的TCSH 等等,每一种 Shell 都各有其特点。至于 Linux 使用的这一种版本就称为Bourne Again SHell (简称 bash),这个 Shell 是 Bourne Shell 的增强版本,也是基准于 GNU 的架构下发展出来的!

在介绍 shell 的优点之前,先来说一说 shell 的简单历史:

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

那么目前我们的 Linux (以 CentOS 7为例) 有多少我们可以使用的 shells 呢?

你可以检查一下/etc/shells 这个文件,至少就有下面这几个可以用的 shells:

/bin/sh (已经被 /bin/bash 所取代)

/bin/bash (是 Linux 预设的 shell)

/bin/tcsh (整合 C Shell ,提供更多的功能)

/bin/csh (已经被 /bin/tcsh 所取代)

虽然各家 shell 的功能都差不多,但是在某些语法的下达方面则有所不同,因此建议你还是得要选择某一种 shell 来熟悉一下较好。 Linux 预设就是使用 bash ,所以最初你只要学会 bash 很不错了! 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于java+servlet+mysql-图书商城

基于javaservletmysql-图书商城 一、系统介绍二、功能展示1.项目骨架2.首页3.图书详情4.我的订单5.我的购物车6、注册7、登录8、图书管理9、订单管理 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java web项目 项目名称:基于javaservlet…

快速排序的三种方法

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大…

Vscode 绿色系清新主题

炎炎夏日,上班上的心浮气躁,敲代码的时候,只觉昏昏沉沉,浑浑噩噩... 给vscode换一个一个清新美好的绿色主题,充满活力和希望吧。 朋友们,收藏起来,每个季节换一个主题,打工快乐&am…

Linux查找关键字出现的位置

在Linux中,您可以使用以下命令来查找文件中关键字出现的位置: grep -rnw /path/to/search -e keyword其中: - -r 递归地搜索指定路径下的所有子目录。 - -n 显示匹配行的行号。 - -w 完整匹配单词,而不是部分匹配。 - /path/to/s…

ubuntu安装单个redis服务

1.apt-get install redis-server 使用lighthouse用户这样操作会报与权限有关的错误, 改成使用root账号操作 2.安装完成后,Redis服务器会自动启动,查看进程是否正常启动 ps -axu|grep redis redis 18689 0.1 0.4 40136 6860 ? …

Spark(20):SparkStreaming之概述

目录 0. 相关文章链接 1. Spark Streaming 是什么 2. Spark Streaming 的特点 2.1. 易用 2.2. 容错 2.3. 易整合到Spark体系 3. Spark Streaming 架构 3.1. 架构图 3.2. 背压机制 0. 相关文章链接 Spark文章汇总 1. Spark Streaming 是什么 Spark 流使得构建可扩展的…

从零开始,轻松搭建和使用SVN版本控制系统的完整指南(包含本地和idea使用svn)

文章目录 前言一、SVN简介二、在Linux搭建SVN(在线安装)三、本地使用SVN四、idea集成svn 前言 这篇文章将为读者提供如下内容,希望对你有帮助(本人亲测,已成功): 如何在Linux环境下搭建和配置…

docker入门(Linux环境下安装Docker,Docker构建镜像)

docker入门(利用docker部署web应用) 一:什么是Docker 1.1 官方解释 Docker is the world’s leading software containerization platform。 Docker公司开发,开源,托管在github跨平台, 支持Windows、Macos、Linux。 1.2 抽象解释 docker…

difflib 比较文本相似度,找出错误值

在日常的数据分析过程中,我们可能会遇到这样的问题。在处理数据时,有的文本内容是同一类目,但是由于手工输入错误 或者大小写的问题,可能会造成将产品分到不同的类目下,这时候就需要对数据进行清洗。如何实现快速比较…

Spring接收前端传递数据的方式

搭建项目 然后点击下一步完成即可搭建成功 在pom文件中导入lombok的jar包,帮助我们快速创建实体类 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.16</version> </dependency&…

《C语言初阶篇》循环语句还没搞懂?这篇文章带你轻松学会循环语句!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《快速入门C语言》《C语言初阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言&#x1f4ac; 循环语句的介绍&#x1f4ac; while 语句的介绍&#x1f4ad; while中的break&#x1f4ad;…

css 字体间距 设置

一、css word-spacing属性设置字间距&#xff08;单词的间距&#xff09; word-spacing 属性增加或减少单词间的空白&#xff08;即字间隔&#xff09;&#xff1b;在这个属性中&#xff0c;“字” 定义为由空白符包围的一个字符串。也就是说该属性是以空格为基准进行调节间距…