shell、bash的关系及bash的特性(一)

一、概念

        shell是壳,是运行在终端中的文本互动程序。Shell相当于是一个翻译,把我们在计算机上的操作命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前。shell软件有:sh、bash、ksh、rsh、csh等。

        bash(GNU Bourne-Again Shell)是最常用的一种shell,是当前大多数Linux发行版的默认Shell。最开始在Unix系统中流行的是sh,其全名是Bourne Shell,名字中的玻恩就是这个Shell的作者。而bash作为sh的改进版本,提供了更加丰富的功能。

        查看系统当前shell的类型:echo $SHELL

二、bash的特性

        bash命令格式:命令 选项 参数

                ls -a /home

        bash有两种使用方式:1、命令;2、脚本

(1)命令历史 history

        history -d OFFSET 删除某条记录

                 -c 删除所有历史

                n 显示历史中最近n条记录

        环境变量:

                HISTSIZE:命令记录的条数

                HISTFILE:~/.bash_history

                HISTFILESIZE:命令历史文件记录历史的条数

         调用历史中命令,输入!表示调用历史命令:

                !字符串:执行最近一条“字符串”开头的命令

                !!:执行上条命令

        ctrl+r:搜索历史命令,根据关键字

                调用上一条命令的最后一个参数:Esc . 或 !$

        控制命令历史的记录方式:

                环境变量:HISTCONTROL

                ignoredups:忽略重复的 连续且相同

                ignorespace:忽略空白开头的命令

                ignoreboth:上面两个都生效

        修改环境变量的方式:export 变量名=值

(2)命令补全功能

        内部命令:

        外部命令:bash根据PATH环境变量定义的路径,自左向右搜索;

        直接补全:tab键,只有唯一对应命令;不唯一在按tab会给出命令列表

(3)路径补全功能:

        把用户给定的字符串当做路径的开头;

(4)命令行展开

        ~:展开为用户的主目录

        ~USRNAME:展开为指定用户下的主目录

        {}:可承载一个以逗号分隔的列表,并将其展开为多个路径

(5)命令的执行结果状态:成功or失败

        bash使用特殊变量$?保存最近一条命令执行结果状态

        0:成功 1~255:失败

        程序执行有两类结果:

                程序的返回值,

                程序执行的状态结果。

(6)命令别名(alias):

        通过alias命令别名

                alias:不带参数显示系统所有别名

                alias NAME=‘命名’ 定义别名,当前会话有效

                当前用户有效:~/.bashrc

                所有用户有效:/etc/bashrc

                修改配置文件后让文件生效需要:source FILENAME

                撤销别名:unalias

                如果别名同原命令同名,要使用原命令通过:\ls

(7)glob(globing)通配符

        bash中用于实现文件名通配的机制

        通配符*、?、[]

                *:任意长度的任意字符

                ?:任意单个字符

                []:匹配指定范围的任意单个字符,不区分大小写

                取反:^

        专用字符集:

        [:alnum:] [:alpha:] [:blank:] [:cntrl:]

        [:digit:] [:graph:] [:lower:] [:print:]

        [:punct:] [:space:] [:upper:] [:xdigit:]

(8)bash的快捷键

        ctrl+l:相当于clear,清屏操作

        ctrl+c:取消命令的执行

        ctrl+d:退出、exit

        ctrl+a:光标跳转至命令首部

        ctrl+e:跳转至命令尾部

        ctrl+u:删除光标前的内容

        ctrl+k:删除光标后的内容

        ctrl+r:搜索历史命令,根据关键字

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

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

相关文章

07-3_Qt 5.9 C++开发指南_文件目录操作

文章目录 1. 文件目录操作相关的类2. 实例概述2.1 实例功能2.2 信号发射信息的获取 3. QCoreApplication 类4. QFile类5. QFileInfo类6. QDir类7. QTemporaryDir 和QTemporaryFile8. QFileSystemWatcher 类9. 框架和源码9.1 可视化UI设计9.2 dialog.cpp 1. 文件目录操作相关的类…

HttpRunner搭建接口自动化测试项目

前言:前面写过一篇PytestAllure接口自动化测试框架搭建的博客,这篇博客学习另外一款优秀的开源的接口自动化测试框架:HttpRunner,本博客主要学习如何搭建基于HttpRunner的接口自动化测试项目 PytestAllure接口自动化测试框架搭建…

【刷题笔记8.9】LeetCode题目:两数相加

LeetCode题目2:两数相加 题目及描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设…

Linux 常用操作命令

Linux简介及Ubuntu安装 Linux,免费开源,多用户多任务系统。基于Linux有多个版本的衍生。RedHat、Ubuntu、Debian 安装VMware或VirtualBox虚拟机。具体安装步骤,找百度。 再安装Ubuntu。具体安装步骤,找百度。 常用指令 ls  …

国际货币汇率 API 数据接口

国际货币汇率 API 数据接口 支持多种货币对,每日精准汇率,多币种支持。 1. 产品功能 支持多种货币汇率查询;支持部分加密货币汇率查询;数据为每日更新汇率数据;可一次查询源货币代码对应所有目标货币汇率&#xff1b…

LinuxC编程——进程

目录 一、概念1.1 程序1.2 进程 二、特点⭐⭐⭐三、进程段四、进程分类五、进程状态六、进程状态转换图七、函数接口1. 创建子进程2. 回收进程资源3. 退出进程4. 获取进程号 八、守护进程 一、概念 进程和程序是密不可分的两组概念,相对比,便于理解。 1.…

2023年,App运行小游戏,可以玩出什么创意?

疫情过后,一地鸡毛。游戏行业的日子也不好过。来看看移动游戏收入:2022年,移动游戏收入达到920亿美元,同比下降6.4%。这告诉我们,2022年对移动游戏市场来说是一个小挫折。 但不管是下挫还是上升,移动游戏市…

你见过的这里都有,开源Web性能测试工具集合

你见过的这里都有,开源Web性能测试工具集合: 1、JMeter。这个也不用多介绍,基本属于做过Web性能测试都会接触的工具。Apache旗下的开源项目,属于一个Java桌面应用程序。优势是开源免费,扩展能力强。自身性能是硬伤。 …

数据库活动监控(DAM)

在当今数据驱动的世界中,组织在保护存储在数据库中的机密数据并确保其完整性方面面临着越来越多的挑战。数据库审计通过提供全面的数据库活动监控方法,在应对这些挑战方面发挥着至关重要的作用。 数据库活动监控(Database Activity Monitori…

AI语音工牌在通讯行业营业大厅场景应用

在运营商营业大厅中,每天都有大量的客户来访咨询、办理业务。同时也会经常产生大量的客诉纠纷和服务差评。但因为缺乏有效的管理工具,加上线下沟通场景的数据采集难度高,数字化程度低,管理一直处于盲区。如何有效的管控营业厅人员…

【Spring专题】Spring之Bean的生命周期源码解析——上(扫描生成BeanDefinition)

目录 前言阅读指引阅读建议 课程内容一、生成BeanDefinition1.1 简单回顾1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 ClassPathBeanDefinitionScanner#scan2.2 ClassPathBeanDefinitionScanner#doScan2.3 ClassPathScanningCandidateComponentProvider#findCandidateCompon…

面试热题(环形链表II)

给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引…

STM32CubeMX+VSCODE+EIDE+RT-THREAD 工程创建

Eide环境搭建暂且不表,后续补充。主要记录下Vscode环境下 创建Rt-thread工程的过程。分别介绍STM32CubeMX添加rtt支持包的方式和手动添加rtt kernel方式。STM32CubeMX生成工程的时候有"坑",防止下次忘记,方便渡一下有缘人&#xff…

【力扣】2810. 故障键盘 <模拟>

【力扣】2810. 故障键盘 你的笔记本键盘存在故障,每当你在上面输入字符 ‘i’ 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。给你一个下标从 0 开始的字符串 s ,请你用故障键盘依次输入每个字符。返回最终笔记本屏幕上输出的字…

MyCat配置rule.xml、server.xml讲解

1. rule.xml分片规则配置文件 rule.xml中配置的主要就是拆分表的规则,rule.xml中主要包含两类标签 tableRule 和Function。 tableRule标签里面主要配置我们的分片规则,Function里面涉及的是分片规则里面所涉及的java类,都是在function中配置…

OI易问卷协助企业服务好员工,收集员工反馈与信息

OI易问卷——企业问卷调查工具 OI易问卷,是群硕专为企业打造,对内服务员工的调查问卷。 集成于办公联合创新平台,并进一步帮助客户实现与微信或企业微信等其他平台的对接。 可以有效促进员工服务数字化,提高各部门工作效率&…

深度优先搜索DFS搜索数及B3621 枚举元组 B3622 枚举子集

深度优先搜索DFS搜索 DFS:从根节点出发,寻找子节点,到最深层返回到上一层继续递归搜索。 B3621 枚举元组 题目传送 题面 题目描述 n 元组是指由 n 个元素组成的序列。例如 (1,1,2) 是一个三元组、(233,254,277,123)是一个四元组。 给定…

牛客网【面试必刷TOP101】~ 06 递归/回溯

牛客网【面试必刷TOP101】~ 06 递归/回溯 文章目录 牛客网【面试必刷TOP101】~ 06 递归/回溯[toc]BM55 没有重复项数字的全排列(★★)BM56 有重复项数字的全排列(★★)BM57 岛屿数量(★★)BM58 字符串的排列(★★)BM59 N皇后问题(★★★)BM60 括号生成(★★)BM61 矩阵最长递增路…

中介者模式(C++)

定义 用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显式的相互引用(编译时依赖->运行时依赖),从而使其耦合松散(管理变化),而且可以独立地改变它们之间的交互。 应用场景 在软件构建过程中,经常会出现多个对象…

C#实现三菱FX-3U SerialOverTcp

设备信息 测试结果 D值测试 Y值写入后读取测试 协议解析 三菱FX 3U系列PLC的通信协议 1. 每次给PLC发送指令后,必须等待PLC的应答完成才能发送下一条指令; 2. 报文都是十六进制ASCII码的形式 3. 相关指令 指令 命令码(ASCII码) 操作原件 …