当前位置: 首页 > news >正文

Linux操作系统基础(12):Linux的Shell解释器

1. Shell的介绍

在Linux中,Shell 是一种命令行解释器,它是用户与操作系统内核之间的接口,它负责解释用户输入的命令,并将其转换成系统调用或其他操作系统能够执行的指令。

Shell 提供了一种交互式的方式来与操作系统进行通信,用户可以通过输入命令来执行各种操作。

  • 如文件操作、进程管理、网络通信等。
  • 常见的 Shell 包括 Bash、Zsh、Fish 等。

在这里插入图片描述

Bash(Bourne Again SHell)是一种常用的shell,是基于Bourne shell(sh)的一个扩展版本,提供了更多的功能和特性,比如命令历史记录、命令补全、变量替换等。因此,可以说bash是一种shell,它是Linux系统中最常用的shell之一。

不同的操作系统有不同的shell解释器,例如Linux中常用的Shell解释器是Bash,而Windows使用的是Cmd或者PowerShell。

  • Windows中存在 *.bat 批处理脚本
  • Linux中常用 *.sh 表示shell脚本

2. Bash的特性

Bash 是Linux系统中最常用的shell之一,Bash也是许多Linux系统默认的命令行解释器,它允许用户通过命令行界面与操作系统内核进行交互,并执行各种命令和脚本。由于其强大的功能和广泛的应用,Bash在Linux和其他类Unix系统中被广泛使用。

2.1. 自动补全

Bash可以根据用户输入的部分命令或文件名进行自动补全,提高命令输入的效率。

#1.输入"ls /us",然后按下 Tab 键,Bash会自动补全为:ls /usr
ls /us#2.输入"his",然后按下 Tab 键,Bash会自动补全为:history
his

2.2. 历史命令记录

Bash可以记录用户在命令行中输入的命令历史,用户可以使用上下箭头来浏览和重复之前输入的命令。

  • 用户登录Linux终端后,系统重新读取命令历史记录 .bash_history 文件。
#1.linux默认的历史命令保存在用户目录下的“.bash_history”文件
/root/.bash_history
/home/jungout/.bash_history#2.查看历史命令(-c清除历史记录,-r恢复历史命令)
history

2.3. 别名和函数

Bash支持命令别名和自定义函数,可以通过设置别名和定义函数来简化命令行操作。

#1.输入alias可以查看系统上所有别名
alias#2.创建命令别名(输入ll就相当于输入ls -l)
alias ll='ls -l'

2.4. 元字符

Bash中支持元字符,是具有特殊含义的字符,用于匹配文本或执行特定的操作。

  • 常见的元字符包括通配符 *?,定位符 ^$,字符类 [...],反向引用 \1 等等。
  • 这些元字符在正则表达式中也经常使用,用于进行文本匹配和替换操作。

在Shell中,转义字符是反斜杠(\)。反斜杠用于转义特殊字符(元字符),使其不再具有特殊含义,而是作为普通字符来处理。

  • 常见的元字符: ''单引号, "" 双引号,$ 美元符号, \ 反斜杠。
  • 特殊的转义字符: \n 换行,\r 回车,\t 制表符,\b 退格 。
#1.要输出双引号字符(")
echo "This is a quote: \""  #输出:This is a quote: "#2.要输出反斜杠字符(\)
echo "The path is: /home\\documents"  #输出:The path is: /home\documents

2.5. 通配符

通配符扩展:Bash支持通配符(如*?)来扩展文件名,用于匹配一系列文件名或者路径名的特殊字符。

  • * :匹配任意长度的任意字符(当前目录下存在file1.txt、file2.txt、file3.txt三个文件)

    # 列出所有以.txt结尾的文件
    ls *.txt
    
  • ? :匹配任意单个字符

    ls file?.txt
    
  • [] :匹配指定范围内的任意单个字符

    ls file[0-9].txt
    ls [a-z]ile[0-9].txt
    
  • {} :匹配指定的一组字符中的任意一个(集合)

    mkdir {dir1,dir2}
    
  • ! :用于否定匹配

    # 列出所有不以.txt结尾的文件
    ls !(*.txt)
    

2.6. 重定向

I/O 重定向(机制):Bash支持I/O重定向,可以将命令的输入和输出重定向到文件或其他命令。

  • >:将命令的标准输出重定向到文件,如果文件不存在则创建,如果文件已存在则覆盖。
  • >>:将命令的标准输出追加到文件末尾,如果文件不存在则创建。
  • <:将文件内容重定向为命令的标准输入。
  • <<:用来表示输入重定向,可以将一个文本块作为输入传递给命令。
#1.使用 > 将命令的输出重定向到文件(强制覆盖文件)
ls > filelist.txt#2.使用 >> 将命令的输出追加到文件末尾(文件不存在则创建)
ls >> filelist.txt#3.从文件中读取内容作为命令的输入(读取unsorted内容排序后再写入到sorted)
sort < unsorted.txt > sorted.txt#4.把文本块作为输入传递给cat命令。
cat << EOF
This is a multiline
message that is input
to the cat command
EOF

2.7. 管道

管道(机制):Bash支持管道操作符 |,可以将一个命令的输出作为另一个命令的输入(执行效果较慢)。

  1. 将一个命令的输出作为另一个命令的输入,实现多个命令的协作。
  2. 在数据处理过程中,可以通过管道将多个命令连接起来,实现复杂的数据处理任务。
  3. 通过管道,可以将命令的输出结果传递给另一个命令进行进一步处理,从而实现数据的筛选、转换和汇总。
#1.列出当前目录的文件,并过滤出带有后缀txt的文件
ls -l | grep "txt"

相关文章:

Linux操作系统基础(12):Linux的Shell解释器

1. Shell的介绍 在Linux中&#xff0c;Shell 是一种命令行解释器&#xff0c;它是用户与操作系统内核之间的接口&#xff0c;它负责解释用户输入的命令&#xff0c;并将其转换成系统调用或其他操作系统能够执行的指令。 Shell 提供了一种交互式的方式来与操作系统进行通信&am…...

Android开发编程从入门到精通,安卓技术从初级到高级全套教学

一、教程描述 本套教程基于JDK1.8版本&#xff0c;教学内容主要有&#xff0c;1、环境搭建&#xff0c;UI布局&#xff0c;基础UI组件&#xff0c;高级UI组件&#xff0c;通知&#xff0c;自定义组件&#xff0c;样式主题&#xff1b;2、四大组件&#xff0c;Intent&#xff0…...

HackTheBox - Medium - Linux - BroScience

BroScience BroScience 是一款中等难度的 Linux 机器&#xff0c;其特点是 Web 应用程序容易受到“LFI”的攻击。通过读取目标上的任意文件的能力&#xff0c;攻击者可以深入了解帐户激活码的生成方式&#xff0c;从而能够创建一组可能有效的令牌来激活新创建的帐户。登录后&a…...

`nginx/conf/nginx.conf`最简配置说明

nginx/conf/nginx.conf最简配置说明 代码 nginx/conf/nginx.conf worker_processes 1; #工作进程个数;一般对应CPU内核对应一个worker_processes;太多反而让效率变差;# 事件驱动模块; events {worker_connections 1024;#设置每个worker_processes对应多少个联接; }# 网络请…...

商务智能|描述性统计分析与数据可视化

一、商务智能的三大方面 三个主要方面是描述性的统计分析、预测性的分析和指导性的数据分析。 A. 商务智能的知识体系下,数据分析包含了哪三个工作?商务智能体系架构里边关于数据分析的术语是什么? 商务智能的知识体系下,数据分析包含了三个工作,即描述性分析,预测性分析…...

【游记】GDKOI2024

去年稳定 Cu&#xff0c;希望今年来块 Ag。 Day − ∞ -\infty −∞ 不知道什么时候报名交钱的&#xff0c;赶紧问一问。 周四把设备送过来了。最近备战期末 选科 演讲比赛&#xff0c;有点忙不过来。 Day0 下午两点半出发&#xff0c;车程 2h。路上给小绿打肉鸽 1h 掉电…...

linux支持的零拷贝类型以及java对应的支持

在之前整理的零拷贝文章基础上 https://blog.csdn.net/zlpzlpzyd/article/details/135321197 https://blog.csdn.net/zlpzlpzyd/article/details/135317834 得出如下 因为开发的程序很多运行在 linux 操作系统上&#xff0c;所以用 linux 进行讲解 linux 调用方式 dma复制次数…...

【TypeScript】声明文件

一、定义 TypeScript 的声明文件包含 .d.ts 扩展名&#xff0c;并用于为 TypeScript 提供关于 JavaScript 代码的类型信息这些文件通常定义了接口、类型别名、类等&#xff0c;但并不包含实际的执行代码当你使用 JavaScript 库或框架时&#xff0c;声明文件就显得非常有用&…...

基于Flutter构建小型新闻App

目录 1. 概述 1.1 功能概述 1.2 技术准备 1.3 源码地址 2. App首页 2.1 pubspec依赖 2.2 热门首页组件 2.2.1 DefaultTabController 2.2.2 Swiper 2.3 新闻API数据访问 2.4 热门首页效果图 3. 新闻分类 3.1 GestureDetector 3.2 新闻分类效果图 4. 收藏功能 4…...

利用python将excel文件转成txt文件,再将txt文件上传hdfs,最后传入hive中

将excel文件转成txt文件&#xff0c;再将txt文件上传hdfs&#xff0c;最后传入hive中 注意的点 &#xff08;1&#xff09;先判断写入的txt文件是否存在&#xff0c;如果不存在就需要创建路径 &#xff08;2&#xff09;如果txt文件已经存在&#xff0c;那么先将对应的文件进行…...

【自学笔记】01Java基础-07面向对象基础-02继承

记录学习Java基础中有关继承、方法重写、构造器调用的基础知识&#xff0c;学习继承之前建议学习static关键字的内容【自学笔记】01Java基础-09Java关键字详解 1 继承概述 1.1 什么是继承&#xff1f; 1.2 继承的特点 子类可以继承父类的属性和行为&#xff0c;但是子类不能…...

二分查找(一)

算法原理 原理&#xff1a;当一个序列有“二段性”的时候&#xff0c;就可以使用二分查找算法。 适用范围&#xff1a;根据规律找一个点&#xff0c;能将这个数组分成两部分&#xff0c;根据规律能有选择性的舍去一部分&#xff0c;进而在另一个部分继续查找。 除了最普通的…...

【华为OD真题 Python】精准核酸检测

文章目录 题目描述输入描述输出描述示例1输入输出说明备注代码实现题目描述 为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群。 现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。 现…...

Springboot使用logback

文章目录 目录 文章目录 前言 一、添加依赖 二、使用步骤 三 、测试使用 总结 前言 Logback 是log4j 框架的作者开发的新一代日志框架&#xff0c;它效率更高、能够适应诸多的运行环境&#xff0c;同时天然支持 SLF4J。 Logback 的定制性更加灵活&#xff0c;同时也是 Sprin…...

【REST2SQL】03 GO读取JSON文件

REST2SQL需要一些配置信息&#xff0c;用JSON文件保存&#xff0c;比如config.json 1 创建config.json配置文件 {"hostPort":"localhost:5217","connString":"oracle://blma:5217127.0.0.1:1521/CQYH","_oracle":"ora…...

数据库-MySQL 启动方式

以管理员身份运行命令行 或者Shell net start //查看所有服务 net start MYSQL80 //启动服务 net stop MYSQL80 //停止服务完整安装MySQL社区版本的 会有这个 启动服务 停止服务 重启服务...

YAML使用

yaml yaml是类型aml&#xff0c;json的标记性语言&#xff0c;它强调以数据为中心 yaml的语法主要是如下几个&#xff1a; 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab、只允许空格&#xff08;低版本限制&#xff0c;高版本不限制&#xff09; 缩进时空格数不重要&a…...

读书之深入理解ffmpeg_简单笔记2(初步)

再回看第一遍通读后的笔记&#xff0c;感觉还有很多的细节需要一一攻克,。 mp4的封装格式&#xff0c;解析方式。 flv的封装格式&#xff0c;解析方式。 ts的封装格式&#xff0c;解析方式。 第四章 封装和解封装 4.2 视频文件转flv &#xff08;头文件和文件内容&#xff0…...

ELK+kafka+filebeat企业内部日志分析系统搭建

看上面的拓扑图&#xff0c;我们至少准备七台机器进行下面的实验项目。 机器主要作用分布如下: 三台安装elasticsearch来搭建ES集群实现高可用&#xff0c;其他机器就依次安装filebeat,kafka,logstash和kibana软件 一、部署elasticsearch来搭建ES集群 1.安装jdk 由于ES运行…...

勒索检测能力升级,亚信安全发布《勒索家族和勒索事件监控报告》

评论员简评 近期(12.08-12.14)共发生勒索事件119起&#xff0c;相较之前呈现持平趋势。 与上周相比&#xff0c;近期仍然流行的勒索家族为lockbit3和8base。在涉及的勒索家族中&#xff0c;活跃程度Top5的勒索家族分别是&#xff1a;lockbit3、siegedsec、dragonforce、8base和…...

编译原理复习的有用链接

2024年1月7日&#xff0c;考完编译原理&#xff0c;是时候和考试时候的她说再见了&#xff0c;整理一些收藏夹里的链接和思考吧 实验看这里&#xff1a; 编译原理_HNU岳麓山大小姐的博客-CSDN博客 课后习题看这里&#xff1a; 编译原理作业答案github LL1文法复习 [编译原…...

不带控制器打包exe,转pdf文件时失败的原因

加了注释的两条代码后&#xff0c;控制器会显示一个docx转pdf的进度条。这个进度条需要控制器的实现&#xff0c;如果转exe不带控制器的话&#xff0c;当点击转换为pdf的按钮就会导致程序出错和闪退。 __init__.py文件的入口...

Python 注释的方法

在Python中&#xff0c;有两种常见的注释方法&#xff1a; 单行注释&#xff1a;使用#符号来注释一行代码。在#符号后面的内容将被视为注释&#xff0c;不会被解释器执行&#xff0c;如&#xff1a; # 这是一个单行注释 print(hello world!) # 打印字符串多行注释&#xff1…...

webman插件创建

webman插件创建 介绍 应用插件实际上是一个完整的应用&#xff0c;它能以插件的形式安装到主项目中&#xff0c;使主项目快速获得某个模块功能。 例如&#xff1a;主项目需要一个问答系统&#xff0c;则可以安装一个问答应用插件&#xff0c;需要一个商城系统&#xff0c;则安…...

大模型迎来“AppStore时刻”,OpenAI给2024的新想象

一夜之间&#xff0c;OpenAI公布了多个重磅消息&#xff0c;引发市场关注。 钛媒体App 1月5日消息&#xff0c;今晨&#xff0c;OpenAI公司向所有GPT开发者们发布一封邮件称&#xff0c;下周将上线自定义的“GPT Store”商店&#xff0c;这有望推动ChatGPT开发者生态不断完善。…...

ubuntu解决在pycharm上使用jupyter无法导入虚拟环境中的包的问题

ubuntu解决在pycharm上使用jupyter无法导入虚拟环境中的包的问题 根本原因是jupyter 没有和他对应的kernel 需要先使用命令行建立kernel 下载ipykernel pip install ipykernel 首先激活conda conda activate然后添加你的kernel到虚拟环境 python -m ipykernel install -…...

探索2024年软件测试的几大主导趋势

进入2024年&#xff0c;考虑影响测试环境的问题至关重要。这种思考将成为团队了解主要瓶颈和实现当今不断提高的期望的首要因素。 01 了解关键测试瓶颈 毋庸置疑&#xff0c;现代团队需要不断创新、适应和拥抱最新趋势&#xff0c;以保持竞争力并提供以客户为中心的解决方案。尽…...

Linux C语言 48-信号总结

Linux C语言 48-信号总结 本节关键字&#xff1a;Linux、C语言、常用信号 相关C库函数&#xff1a;printf、signal、kill Linux中都有哪些信号 信号在Linux操作系统中是很重要的&#xff0c;信号的产生方式可以是来自键盘、由软件条件产生、调用硬件异常产生。来自系统函数调…...

【vue技巧】之如何让mixin的data 比本身vue的data优先级要高

GPT4.0国内站点&#xff1a;海鲸AI 在 Vue 中&#xff0c;当组件和 mixin 包含有冲突的选项时&#xff0c;这些选项将以一定的方式合并。对于 data 选项&#xff0c;组件自身的 data 会优先级更高&#xff0c;这意味着如果组件和 mixin 中出现了相同的字段&#xff0c;组件的数…...

全解析阿里云Alibaba Cloud Linux镜像操作系统

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版&#xff0c;针对阿里云服务器ECS做了大量深度优化&#xff0c;Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS&#xff0c;Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…...

装饰公司网站php源码/国际购物网站平台有哪些

Win10的IIS与以前版本的一个区别&#xff1a;Win10系统的IIS是v10&#xff0c;在“启用或关闭Windows功能”中启用IIS时&#xff0c;如果按照默认勾选&#xff0c;则在应用程序池中没有ASP.NET 4.0。过去我们的办法是注册一下asp.net4.0&#xff0c;即在控制台下运行C:\WINDOWS…...

展示型网站开发/软文推广营销

1. 在VC6上验证通过&#xff01; 建立VC工程,本章说明一般是针对MFC 2. 加入Excel的库文件. 从classwizard中add class处from type library,去office的安装目录下引入excel.exe(这是office 2003的选择,其他版本都是用olb文件),服务器就算引入了,这时会弹出对话框,要求加入一…...

电子游艺网站开发/最好的优化公司

Why npm Scripts? 原文发表于 2016.2.12&#xff0c;原文地址&#xff1a; https://css-tricks.com/why-npm-scripts/ 以下是访客Damon Bauer发布的一篇文章。近来直接使用node package提供的命令行界面的情绪持续高涨&#xff0c;反之&#xff0c;人们对通过运行任务从而屏蔽…...

淘宝网店页面设计/seo引擎优化怎么做

目前来说&#xff0c;数据仓库架构比较成熟并已经形成理论的主要有两个&#xff0c;一个是Corporate Information Factory&#xff0c;简称CIF&#xff0c;中文一般翻译为企业信息工厂&#xff0c;代表人物是Bill Inmon&#xff1b;另一个是Mutildimensional Architecture&…...

metinfo和wordpress/企点官网

本篇介绍两个用来展示数据的容器控件&#xff0c;分别是Ext.ListView和Ext.view.View。Ext.ListView就是大名鼎鼎的Ext GridPanel的前身&#xff0c;不过现在的Ext4已经将它整合到GridPanel一起了&#xff0c;做一些简单的表格数据展示还是可以用到的。而Ext.view.View则提供了…...

小型教育网站的开发与建设系统/百度指数app

各语言字符编码 回忆上次内容 罗马 承袭了 希腊的文化 学习了 希腊的字符 拥有 罗马帝国的战力基督教文化的影响 这个时候 不列颠 只是 凯撒高卢战记里的 边缘小国 但是 我们现在学python用的字符 不是希腊、罗马字符而是英文字符 英国是如何从边缘之地引领文化、走向世界的…...