【Linux】shell命令

目录
shell的基本命令
shell - 贝壳 外在保护工具
用户、shell、内核、硬件之间的关系
解析器的分类:
shell命令格式
history -历史记录查询
修改环境变量的值:
shell中的特殊字符
通配符
管道 |
输入输出重定向
命令置换符 ` `

shell的基本命令
shell - 贝壳 外在保护工具
shell是命令解析器

用户、shell、内核、硬件之间的关系
用户在命令行提示符下输入命令文本,开始与shell进行交互。
接着,shell将用户的命令或者按键转换成内核能够理解的指令
控制操作系统作出响应,直到控制相关的硬件设备。
然后,将输出结果通过shell提交给用户

解析器的分类:
Bourne Shell(简称sh):Bourne Shell由AT&T贝尔实验室的S.R.Bourne开发,也因开发者的姓名而得名。它是Unix的第一个Shell程序,早已成为工业标准。目前几乎所有的Linux系统都支持它。不过Bourne Shell的作业控制功能薄弱,且不支持别名与历史记录等功能。目前大多操作系统是将其作为应急Shell使用。
C Shell(简称csh):C Shell由加利福尼亚大学伯克利分校开发。最初开发的目的是改进Bourne Shell的一些缺点,并使Shell脚本的编程风格类似于C语言,因而受到广大C程序员的拥护。不过C Shell的健壮性不如Bourne Shell。
Korn Shell(简称ksh):Korn Shell由David Korn开发,解决了Bourne Shell的用户交互问题,并克服了C Shell的脚本编程怪癖的缺点。Korn Shell的缺点是需要许可证,这导致它应用范围不如Bourne Shell广泛。
Bourne Again Shell(简称bash):Bourne Again Shell由AT&T贝尔实验室开发,是Bourne Shell的增强版。随着几年的不断完善,已经成为最流行的Shell。它包括了早期的Bourne Shell和Korn Shell的原始功能,以及某些C Shell脚本语言的特性。此外,它还具有以下特点:能够提供环境变量以配置用户Shell环境,支持历史记录,内置算术功能,支持通配符表达式,将常用命令内置简化。
shell命令格式
通常一条命令包含三个要素:命令名称、选项、参数。其中命令名称是必须的,选项和参数根据实际情况进行填写
Command [-Options] Argument1 Argument1 ……
| Command | shell命令名称,严格区分大小写 |
| Options | shell命令选项,每一个参数都需要添加"-"进行引导 (-表示短格式,--表示长格式) |
| Argument1 | shell命令参数,一条命令的参数大于等于0个,且多个参数的情况需要利用空格进行隔开 |
格式:命令名称 [选项] [参数] ......
细节:0
1. 一条命令的三要素之间用空格隔开
2. 若一行要书写多个命令,需要使用分号( ;),进行隔开
3. 如果一条命令不能再一行内写完,需要在行尾使用反斜杠 (\) 表明该命令未结束


history -历史记录查询
直接 history显示HISTSIZE条历史记录
history n->只显示n条命令
echo $HISTSIZE--> 在终端显示环境变量HISTSIZE的值
家目录下隐藏文件 .bash_history,(vi /.bash_history)保存历史记录的。HISTFILESIZE条
终端关闭,终端上执行的命令刷新到文件中
修改环境变量的值:
export HISTSIZE=20临时修改,只有在本次打开的终端有效
家目录文件 .bashrc中修改就是永久修改,修改完生效,从新打开的终端生效

shell中的特殊字符
通配符
当用户需要用命令处理一组文件,例如 file1.txt、file2.txt、file3.txt、file4.txt ……,用户不必输入所有文件名。可以使用shell通配符。
| 通配符 | 含义 |
| * | 匹配任意长度的字符 |
| ? | 匹配一个长度的字符 |
| [...] | 匹配其中指定的一个字符 |
| [-] | 匹配指定一个字符范围 |
| [^...] | 除了其中指定的字符均可以 |
实例:
● 用 file_*.txt,匹配 file_aa.txt、file_bb.txt、file_abcd.txt 能匹配到的,file1_cc.txt则匹配不到(命令后面 单独使用 * 表示全部,如:rm * :表示删除全部文件)
● 用 file_?.txt,匹配 file_1.txt、file_2.txt、file_3.txt是可以匹配到的,file_11.txt则匹配不到
● 用 file_[abc].txt 只能匹配 file_a.txt、file_b.txt、file_c.txt
● 用 file_[a-c].txt 能匹配 file_a.txt、file_b.txt 直到 file_c.txt
新建多个文件夹:touch file_{*..*}.txt
● 用 file_[^abc].txt 除了 file_a.txt、file_b.txt、file_c.txt 的其他文件
管道 |
前一个命令的输出作为后一个命令输入
cat hello.c | wc -l---> 将cat 输出到终端的内容作为 wc -l的输入,计算行数
补充: wc -l 文件名:文件行数
wc -c 文件名:文件字符个数
wc -m 文件名:计算文件字节大小
wc -w 文件名:文件单词个数
输入输出重定向
命令 > file:将file 作为输出源,file 文件不存在创建(覆盖)
命令 >> file:如果文件不存在则创建,如果文件中存在内容则会追加
命令 &> file 或者 命令 2> file:将由命令产生的错误输入到 file
输入重定向:

命令置换符 ` `
将一个命令的输出作为另一个命令的参数---------->将命令转译出来

·‘;
相关文章:
【Linux】shell命令
目录 shell的基本命令 shell - 贝壳 外在保护工具 用户、shell、内核、硬件之间的关系 解析器的分类: shell命令格式 history -历史记录查询 修改环境变量的值: shell中的特殊字符 通配符 管道 | 输入输出重定向 命令置换符 shell的基本命…...
ValuesRAG:以检索增强情境学习强化文化对齐
随着大型语言模型(LLMs)的迅猛发展,其在各个领域展现出强大的能力。然而,训练数据中西方中心主义的倾向,使得 LLMs 在文化价值观一致性方面面临严峻挑战,这一问题在跨文化场景中尤为突出,可能导…...
【机器学习篇】交通革命:机器学习如何引领未来的道路创新
嘿,你知道吗?机器学习正在交通领域掀起一场革命啦!它将如何引领未来道路创新呢 本文有精彩的 C 代码演示、实用的图片解释,还有超多干货,保证让你大开眼界,点赞收藏关注, 开启一场奇妙的探索之…...
DeepSeek-V3 通俗详解:从诞生到优势,以及与 GPT-4o 的对比
1. DeepSeek 的前世今生 1.1 什么是 DeepSeek? DeepSeek 是一家专注于人工智能技术研发的公司,致力于打造高性能、低成本的 AI 模型。它的目标是让 AI 技术更加普惠,让更多人能够用上强大的 AI 工具。 1.2 DeepSeek-V3 的诞生 DeepSeek-V…...
把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用
将vue项目发布成npm库文件,第三方通过npm依赖安装使用;使用最近公司接了一个项目,这个项目需要集成到第三方页面,在第三方页面点击项目名称,页面变成我们的项目页面;要求以npm库文件提供给他们;…...
【STC库函数】Compare比较器的使用
如果我们需要比较两个点的电压,当A点高于B点的时候我们做一个操作,当B点高于A点的时候做另一个操作。 我们除了加一个运放或者比较器,还可以直接使用STC内部的一个比较器。 正极输入端可以是P37、P50、P51,或者从ADC的十六个通道…...
单片机-独立按键矩阵按键实验
1、按键介绍 按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态, 如果按键按下,初始导通状态变为断开,初始断开状态变为导通 我们开发板是采用软件消抖,一般来说一个简单的按键消抖就是先读取按键的状…...
若要把普通表转成分区表,就需要先新建分区表,然后把普通表中的数据导入新建分区表。 具体怎么导入?
将普通表转换为分区表并导入数据是一个常见的数据库管理任务。以下是详细的步骤和示例,帮助你在 GaussDB 中完成这一过程: 1. 创建分区表 首先,你需要创建一个新的分区表,定义好分区键和分区策略。假设你有一个普通表 orders&am…...
XXX公司面试真题
一、一面问题 1.线程池的主要参数 核心线程数最大线程数空闲线程存活时间存活时间单位任务队列线程工厂拒绝策略允许核心线程超时 2. 线程的状态 新建状态就绪状态运行状态阻塞状态死亡状态 补充:线程阻塞的原因 线程调用sleep()方法进入睡眠状态 线程得到一个…...
第一节:电路连接【51单片机+A4988+步进电机教程】
摘要:本节介绍如何搭建一个51单片机A4988步进电机控制电路,所用材料均为常见的模块,简单高效的方式搭建起硬件环境 一、硬件清单 ①51单片机最小控制模块 ②开关电源 ③A4988模块转接座 ④二相四线步进电机 ⑤电线若干 二、接线 三、A49…...
机器学习算法深度解析:以支持向量机(SVM)为例的实践应用
机器学习算法深度解析:以支持向量机(SVM)为例的实践应用 在当今的数据驱动时代,机器学习作为人工智能的核心分支,正以前所未有的速度改变着我们的生活与工作方式。从图像识别到自然语言处理,从金融预测到医…...
解决Postman一直在转圈加载无法打开问题的方法
在使用Postman这款强大的API测试工具时,有时可能会遇到程序长时间加载而无法正常使用的情况。面对这样的问题,可以尝试以下几种解决办法: 方法一:直接运行Postman可执行文件 定位到Postman的安装目录 如果您不确定Postman的具体安…...
利用 LangChain 构建对话式 AI 应用
随着人工智能技术的快速发展,对话式 AI 已成为现代应用的核心部分。在构建智能客服、虚拟助手以及交互式学习平台时,一个强大且灵活的框架显得尤为重要。本文将深度解析 LangChain 这一框架的功能及实际使用,帮助开发者快速上手。 什么是 La…...
力扣--34.在排序数组中查找元素的第一个和最后一个位置
题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1&…...
【Java回顾】Day2 正则表达式----异常处理
参考资料:菜鸟教程 https://www.runoob.com/java/java-exceptions.html 正则表达式 有一部分没看完 介绍 字符串的模式搜索、编辑或处理文本java.util.regex包,包含了pattern和mathcer类,用于处理正则表达式的匹配操作。 捕获组 把多个字符…...
【SpringBoot】当 @PathVariable 遇到 /,如何处理
1. 问题复现 在解析一个 URL 时,我们经常会使用 PathVariable 这个注解。例如我们会经常见到如下风格的代码: RestController Slf4j public class HelloWorldController {RequestMapping(path "/hi1/{name}", method RequestMethod.GET)publ…...
【FlutterDart】页面切换 PageView PageController(9 /100)
上效果: 有些不能理解官方例子里的动画为什么没有效果,有可能是我写法不对 后续如果有动画效果修复了,再更新这篇,没有动画效果,总觉得感受的丝滑效果差了很多 上代码: import package:flutter/material.…...
Backend - C# 的日志 NLog日志
目录 一、注入依赖和使用 logger 二、配置记录文件 1.安装插件 NLog 2.创建 nlog.config 配置文件 3. Programs配置日志信息 4. 设置 appsettings.json 的 LogLevel 5. 日志设定文件和日志级别的优先级 (1)常见的日志级别优先级 (2&…...
Flask是什么?深入解析 Flask 的设计与应用实践
文章目录 一、引言:从微框架到生态系统二、Flask 的核心设计理念三、Flask 的关键组件解析3.1 路由系统3.2 请求与响应对象3.3 模板引擎 Jinja23.4 扩展系统 四、Flask 的并发与性能优化4.1 默认的单线程模型4.2 提升并发性能的方法4.3 性能优化技巧 五、在企业级场…...
malloc函数和calloc函数的区别是什么?
malloc函数和calloc函数在动态内存管理中都起着分配内存空间的作用,但它们存在以下区别: 参数方面 - malloc函数:它只有一个参数,该参数表示要分配的字节数。例如, int *ptr (int *)malloc(10 * sizeof(int)); &#…...
为什么Top 5 IDE厂商2024 Q2集体升级“生成式推荐”?3个被忽略的实时反馈闭环设计,让推荐不再“猜”,而能“推演”
第一章:智能代码生成与代码推荐结合的范式跃迁 2026奇点智能技术大会(https://ml-summit.org) 传统代码补全工具依赖局部上下文统计建模,而新一代智能编程系统正将生成式大模型与实时语义感知推荐引擎深度耦合,实现从“词级预测”到“意图驱…...
手把手教你搞定DP83822I网口异常:从硬件Strap Pin到软件排查的完整实战
深度解析DP83822I网口异常:从硬件Strap Pin到软件协同排查的全链路实战 当嵌入式系统中的两个相同PHY芯片出现"一好一坏"的诡异现象时,往往意味着硬件设计与软件配置之间存在微妙的耦合关系。本文将以TI的DP83822I以太网PHY芯片为例࿰…...
西门子SMART200通过PROFINET控制8台V90伺服实现绝对定位与断电保持
西门子smart控制8台v90模板(用smart200也可以西门子smart控制8台v90模板(用smart200也可以控制伺服动作,代替1200plc也是不错的选择需要调用smart里面的库文件)Profinet通讯控制8台v90伺服,控制8台伺服电机实现绝对定位并且断电位置保持功能,…...
PyTorch实战LSTM单步滚动预测:从误差累积到工程优化的关键策略
1. 单步滚动预测的误差累积问题 我第一次用LSTM做时间序列预测时,发现一个奇怪现象:预测前几步还挺准,但越往后预测结果越离谱,最后甚至变成一条直线。后来才明白这就是典型的误差累积效应。想象一下蒙眼走路,每步都可…...
如何实现飞书文档批量导出:一个命令搞定海量文档迁移
如何实现飞书文档批量导出:一个命令搞定海量文档迁移 【免费下载链接】feishu-doc-export 飞书文档导出服务 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 还在为团队协作平台切换而烦恼吗?面对成百上千的飞书文档,…...
C语言接口开发:Shadow Sound Hunter模型高效调用
C语言接口开发:Shadow & Sound Hunter模型高效调用 1. 引言 在实际的AI模型部署中,我们经常遇到这样的场景:需要将先进的AI模型集成到现有的C/C项目中,或者为嵌入式设备开发高效推理接口。Shadow & Sound Hunter作为功能…...
Cursor Free VIP:三步解锁AI编程神器的终极指南
Cursor Free VIP:三步解锁AI编程神器的终极指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial req…...
QobuzDownloaderX-MOD 终极指南:三步轻松下载Qobuz无损音乐
QobuzDownloaderX-MOD 终极指南:三步轻松下载Qobuz无损音乐 【免费下载链接】QobuzDownloaderX-MOD Downloads streams directly from Qobuz. Experimental refactoring of QobuzDownloaderX by AiiR 项目地址: https://gitcode.com/gh_mirrors/qo/QobuzDownloade…...
Android WebView 中 React useState 更新失效问题
1. 问题 在 Android App 内嵌的 H5 页面(React)中: 打开文件选择器上传图片后,页面所有 useState 的更新(如 setLoading、setRecordList)都不生效接口返回数据正常,但页面不渲染原生 DOM 操作正…...
Java 求职者面试:音视频场景与 Spring Boot 应用
面试官提问:如何用 Java 实现音视频场景的后台服务? 场景设定:某互联网大厂正在面试一名 Java 求职者,面试官和候选人燕双非之间的对话如下:第一轮提问 面试官:燕先生,您能否简要说明一下 Java …...
