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

news2024/11/15 16:44:38

作者: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.coloradmin.cn/o/689125.html

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

相关文章

学习AQS

面试的时候被问到AQS会不会一脸懵逼呢?今天来学习一下AQS吧! 看看这个听起来高大上又难以回答的东西到底是个啥? 1.什么是AQS JUC包中 的很多同步器如ReentrantLock、Semaphore、CountDownLatch等等都是有一些基础的共同的行为,比如:等待队列、条件队列、独占获取、共享…

IntelliJ IDEA - IDEA 如何快速生成 serialVersionUID?

问题描述 今天遇到序列化问题的时候,需要用到 serialVersionUID 字段,如下。但是不知道如何快速自动生成这个,于是有了这篇博客,哈哈哈 private static final long serialVersionUID 6828716364537510652L; 解决方案 首先如图…

STM32F系列项目定时器配置-中断触发源详解

1.以高级定时器为例: 2.触发源选择与极性选择: 3.触发源介绍 (282条消息) 【STM32技巧】(1)STM32定时器8种触发源之ITR0~ITR3说明_stm32 定时器触发定时器_小石头有大内涵的博客-CSDN博客 ITR0内部触发0ITR1内部触发1ITR2内部触…

为什么ECB模式不安全\链接模式【密码学】(6)

目录 一、链接模式 二、ECB模式 三、链接模式缺失带来什么问题 一、链接模式 之前讲过,链接模式就是将是一个分组运算和下一个分组运算联系起来。 上一个分组运算的所有结果都有可能参与到下一个分组运算中;下一个分组运算的每一个要素&#xff0c…

Unity3d_shader_Transparency(解决透明材质物体重叠穿透问题)

解决两个透明材质物体穿透问题 【Unity】半透明なオブジェクトを綺麗に表示するシェーダを導入する - コガネブログ https://github.com/ewersp/Shaders https://github.com/ewersp/Shaders/blob/master/BetterTransparentDiffuse.shader // An improvement to the default …

Java --- springboot3整合kafka

一、消息队列场景 1.1、异步 1.2、解耦 1.3、削峰 1.4、缓冲 二、springboot整合kafka 导入pom依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency> 修改配置 spring.…

CSS基础学习--21 img ( 图片 )

一、使用 CSS 创建图片廊 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>CSS基础学习-图片</title> <style> div.img {margin: 5px;border: 1px solid #ccc;float: left;width: 180px; }div.img:hover…

【系统架构】软件架构技术发展路线概览

发展主线&#xff1a; 模块化编程/面向对象编程构件技术面向服务开发技术云技术 注&#xff1a;点击查看大图 任何新技术、新方向和新思路的出现都会融入软件架构的发展历程中。

排序算法——冒泡排序

冒泡排序 算法步骤 以升序排序为例&#xff1a; 比较相邻元素&#xff0c;如果前面的比后面的元素大&#xff0c;则两元素交换位置对每一对相邻元素进行比较&#xff0c;大的放后&#xff0c;这样最后的元素将是最大的元素对越来越少的混乱元素重复上述步骤&#xff08;最后…

OpenCV——《bitwise_and》mask的操作以及直方图的操作

1.bitwise_and和mask操作 bitwise_and该函数是一个and操作当两者全为1的时候才会为1&#xff0c;有0则0. import cv2 import numpy as np import matplotlib.pyplot as pltdef cv_show(name,img):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows() maskmask np.zer…

【Java】JVM学习(一)

JVM是一种规范 Java程序的执行过程 一个 Java 程序&#xff0c;首先经过 javac 编译成 .class 文件&#xff0c;然后 JVM 将其加载到方法区&#xff0c;执行引擎将会执行这些字节码。执行时&#xff0c;会翻译成操作系统相关的函数。JVM 作为 .class 文件的翻译存在&#xff…

bash: fork: Cannot allocate memory

bash: fork: Cannot allocate memory 将 echo 1000000 > /proc/sys/kernel/pid_max 命令用于修改 /proc/sys/kernel/pid_max 文件&#xff0c;这将更改系统中进程ID&#xff08;PID&#xff09;的最大值。 进程ID是操作系统为每个正在运行的进程分配的唯一标识符。pid_max…

python torch 训练 qt.qpa.plugin: Could not load the Qt platform plugin “xcb“的解决方法

详细问题描述 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this prob…

chatgpt赋能python:Python编程入门指南:Python花钱吗?

Python编程入门指南&#xff1a;Python花钱吗&#xff1f; Python是一个开源、免费的编程语言&#xff0c;当然&#xff0c;这是大家最常听到的关于Python的优点之一。但也有些开发者在使用Python时&#xff0c;会遇到一些需要花费资金的情况。那么&#xff0c;Python到底花钱…

python基础学习10【哑变量处理、离散化(等宽法、等频法、基于聚类分析的方法)、fit()、聚类模型评价指标、 分类模型评价指标、ROC曲线】

哑变量处理 特点&#xff1a;对于一个类别型特征&#xff0c;若其取值有m个&#xff0c;则经过哑变量处理后就变成了m个二元特征&#xff0c;并且这些特征互斥&#xff0c;每次只有一个激活&#xff0c;这使得数据变得稀疏。 get_dummise()函数&#xff1a; pd.get_dummies(…

Ubuntu20.04安装ros系统,使用dvs_ros软件包

Ubuntu20.04安装ros系统 确保Ubuntu系统已经更新配置好合适的软件源 添加ros软件源&#xff1a; sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest…

2023省赛-运维-溯源取证-日志分析

2023省赛-运维-溯源取证-日志分析 一、概要 1、标题&#xff1a;日志分析 2、关键字&#xff1a;access.log日志分析 3、比赛&#xff1a;2023省赛 4、工具&#xff1a;awk、cat 二、开始 1、题目分析 apache或nginx的access.log分析。使用最多的就是awk命令和cat命令。 其…

Java中==和equals的区别,包装类对比、String和new String

对于这个问题&#xff0c;我们得了解基本类型和引用类型在内存中的结构&#xff0c;具体如下&#xff1a; 引用对象句柄访问&#xff1a; 引用对象直接指针访问&#xff1a; 可以看出&#xff0c;无论哪种方式访问基本类型和引用类型的实例数据&#xff0c;基本类型的内存上是…

Spring Framework远程代码执行漏洞(CVE-2022-22965)

Spring Framework远程代码执行漏洞&#xff08;CVE-2022-22965&#xff09; 一、漏洞描述 springframework 是spring 里面的一个基础开源框架&#xff0c;主要用于javaee的企业开发。 2022年3月30日&#xff0c;Spring框架曝出RCE 0day漏洞&#xff0c;攻击者通过该漏洞可远…

计网之基础篇

因特网协议概述 常用协议应用层HTTP&#xff08;超文本传输协议&#xff09;、FTP&#xff08;文件传输协议&#xff09;、SMTP&#xff08;简单邮件传输协议&#xff09;、DNS&#xff08;域名系统&#xff09;、DHCP&#xff08;动态主机配置协议&#xff09;、SNMP&#xff…