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

SHELL 基础 入门(三) Bash 快捷键 命令执行顺序,详解通配符

目录

Bash 常用快捷键 

输入输出重定向 

<< 用法 

输出重定向 

命令执行顺序 

;  分号

&&

|| 

通配符 

传统通配符 

'  *  ' 

[  ]  

[ - ]  

[ ^ ]

常用字符 

强调 : {  }   生成序列 


Bash 常用快捷键 

Ctrl + A    把光标移动到命令行开头

Ctrl + E    把光标移动到命令行尾 

Ctrl + D    退出当前终端 ( 正常的退出 ) 

Ctrl + C    强制终止当前命令 ( 非正常的退出 ) 

Ctrl + L     清屏 

Ctrl + U    删除或剪切光标之前的命令 

Ctrl + K    删除或剪切光标之后的命令

Ctrl + Y    粘贴 Ctrl + U  或 Ctrl + K  剪切的内容

Ctrl + R    在历史命令中搜索 

Ctrl + Z    暂停,并放入后台

Ctrl + S    暂停屏幕输出

Ctrl + Q    恢复屏幕输出 

输入输出重定向 

 Bash 的标准输入输出 

设备                        设备文件名                       文件描述符                                类型

键盘                         /dev/stdin                         0                                                标准输入

显示器                     /dev/stdout                       1                                                标准输出

显示器                     /dev/stderr                        2                                                标准错误输出

<< 用法 

       快速生成文件 

        ===>>

[root@localhost ~]# cat > test1.txt << EOF
> TOM
> LACY
> Jon
> EOF
[root@localhost ~]# 

当键盘输入 EOF 的时候,就会结束,就是 结束符 ~!!   

这样 test1.txt 就生成了 ~!!!  

输出重定向 

类型符号作用
标准输出重定向命令 > 文件 以覆盖的方式,把命令的正确输出,输出到指定的文件或设备当中
命令 >> 文件以追加的方式,把命令的正确输出,输出到指定的文件或设备当中
标准错误输出重定向错误命令 2> 文件以覆盖的方式,把命令的错误输出,输出到指定的文件或设备当中
错误命令 2>> 文件  以追加的方式,把命令的错误输出,输出到指定的文件或设备当中
正确输出和错误输出同时保存命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 &> 文件以覆盖的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 &>> 文件以追加的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 >> 文件1  2>>文件 2把正确的输出追加到文件1中,把错误的输出追加到文件2中

命令执行顺序 

;  分号

        -- 命令的顺序执行 

===>>>

 不管前面的命令是否执行成功,都会挨个执行一遍,即使中间有的命令没能执行成功,也会接着

 执行后面的命令。 

&&

    -- 前面命令执行不成功,后面的命令不执行 

===>>>

 显然,前面 lddd 命令执行不成功,后面的 pwd 也就不执行了 ~!!

|| 

  --  前面的命令执行成功,后面的命令就不执行;    前面的命令执行不成功,后面的命令才执行

===>>>

 前面命令执行不成功,则执行后面命令 

 前面命令执行成功了,后面命令就不执行了 ~!!!

拓展 : 面试题 

                                   如果用户 hadoop 不存在则创建 

===>>>

        首先,我们如何判断用户是否存在呢 ??

        ===>>>

        那就是 id 命令了, id  用户名 

         

         那我们就可以根据 id 用户名 是否执行成功来判断 该用户是否存在,

         即利用命令的返回值来判断,并且,我们又不需要这个命令执行的结果,只要这个命令是否

         执行成功的返回值。 

         ===>>>

[root@localhost ~]# id hadoop &> /dev/null

          这就是 我们将命令执行,执行完后把结果扔到  回收站 ( 我们不要执行结果 ) 

             

          完整执行为

          ===>>>

[root@localhost ~]# id hadoop &> /dev/null || userhad hadoop 

        我们就用到了  ||  符, 即前面的命令要是执行成功了,那就不需要再创建该用户;

        要是 || 符 前面的命令没执行成功,那就说明没有该用户,那就执行 || 后面的命令,创建用户

通配符 

传统通配符 

?               匹配一个任意字符

' * '              匹配0个或任意多个任意字符,也就是可以匹配任意内容

[ ]                匹配 [ ] 中任意一个字符

[ - ]             匹配 [ ]  中任意一个字符, - 代表一个范围,从哪儿到哪儿 

[ ^ ]             逻辑非,表示匹配不是中括号内的一个字符 

示例 :  

  创建一系列文件,提供素材

[root@localhost test]# touch test.txt
[root@localhost test]# touch test{1..20}.txt

===>>>

没有 test.txt  和    test10 - test20.txt  

'  *  ' 

===>>>

 所有 test.txt 的文件都列出了,包括 test.txt 理解 0个或多个 任意字符 

[  ]  

===>>>

 [  ]  中 任意 一个字符  

[ - ]  

===>>>

 注意列出  test11 到 test16 的文件时,那就得  往外提一个 1 出去,因为 [ ] 里只能匹配一个字符 

  列出以小写字母开头,结尾时 .sh 的文件 

  ===>>>

[root@localhost test]# ls [a-z]*.txt 

[ ^ ]

===>>>

不想要 test1  test3  test5 文件,所以就取反;   注意列出的 也并没有 test10-test20 .txt 的文件哦 

常用字符 

[ [:class:] ] :  匹配一个属于指定字符类中的字符

                    [:class:] 表示一种字符类,比如: 数字,大小写字母等 

常用字符类 : 

[:alnum:]  :   匹配任意一个字母或数字,传统写法 : a-zA-Z0-9

[:alpha:]   :   匹配任意一个字母,           传统写法 : a-zA-Z

[:digit:]     :   匹配任意一个数字,           传统写法 : 0-9

[:lower:]   :   匹配任意一个小写字母       传统写法  : a-z

[:upper:]  :    匹配任意一个大写字母       传统写法  : A-Z 

:     在使用专属字符集的时候,字符集之外还需要  [   ]  来包含,否则不能生效 ~!!

           如果使用上述格式的话,那对它的取反就是 在两个括号的中间进行取反

           如 :  [^[ : alnum:]]    [^[:digit:]]    [^[:lower:]]   等等  

 列出 以小写字母开头,.txt 结尾的文件 

 ===>>>

[root@localhost test]# ls [[:lower:]]*.txt

强调 {  }   生成序列 

{ }  生成序列 

touch  file{1..9}.txt   #  当前路径生成 file1.txt-file9.txt 。   { a..f } 代表 a-f  

不连续的使用 , 分隔,比如 file{1,3,5}.txt  那就是 file1.txt   file3.txt  file5.txt 

利用 { } 备份 

[root@localhost test]# cp test1.txt{,.bak}    #  将test1.txt 复制一份叫 test1.txt.bak 


[root@localhost test]# cp test{2,22}.txt       #  复制 test2.txt 为 test22.txt  

示例 : 

列出 /etc/ 目录中不是以字母 a 到 n 开头的,并且以 .conf 结尾的文件 

===>>>

[root@localhost test]# ls /etc/[^a-n]*.conf

列出  /bin/ 下以 c 或 k 开头的文件 

===>>>

[root@localhost test]# ls /bin/[ck]*

相关文章:

SHELL 基础 入门(三) Bash 快捷键 命令执行顺序,详解通配符

目录 Bash 常用快捷键 输入输出重定向 << 用法 输出重定向 命令执行顺序 ; 分号 && || 通配符 传统通配符 &#xff1f; * [ ] [ - ] [ ^ ] 常用字符 强调 &#xff1a; { } 生成序列 Bash 常用快捷键 Ctrl A 把光…...

nvm安装使用教程

文章目录 下载配置安装最新稳定版 node安装指定版本查看版本切换版本删除版本 常见问题安装node后 显示拒绝访问的问题使用cnpm会报错的问题降低cnpm版本npm镜像 下载 NVM for Windows 下载地址&#xff1a;https://link.juejin.cn/?targethttps%3A%2F%2Fgithub.com%2Fcoreyb…...

【Android】JUnit和Espresso单元测试新手快速入门

引入依赖 android {defaultConfig {testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}}dependencies {testImplementation junit:junit:4.13.2androidTestImplementation androidx.test.ext:junit:1.1.0androidTestImplementation androidx.tes…...

8.4 【C语言】通过指针引用字符串

8.4.1 字符串的引用方式 在C程序中&#xff0c;字符串是存放在字符数组中的。想引用一个字符串&#xff0c;可以用以下两种方法。 &#xff08;1&#xff09;用字符数组存放一个字符串&#xff0c;可以通过数组名和下标引用字符串中一个字符&#xff0c;也可以通过数组名和格…...

【广州华锐视点】AR配电所巡检系统:可视化巡检利器

随着科技的发展&#xff0c;人工智能、大数据等技术逐渐应用于各个领域&#xff0c;为人们的生活带来便利。在电力行业&#xff0c;AR(增强现实)技术的应用也日益广泛。AR配电所巡检系统作为一种新型的巡检方式&#xff0c;可以实现多种功能&#xff0c;提高巡检效率&#xff0…...

微服务中间件--http客户端Feign

http客户端Feign http客户端Feigna.Feign替代RestTemplateb.自定义Feign的配置c.Feign的性能优化d.Feign的最佳实践分析e.Feign实现最佳实践(方式二) http客户端Feign a.Feign替代RestTemplate 以前利用RestTemplate发起远程调用的代码&#xff1a; String url "http:…...

C语言学习系列-->【关于qsort函数的详解以及它的模拟实现】

文章目录 一、概述二、qsort函数参数介绍三、qsort实现排序3.1 qsort实现整型数组排序3.2 qsort实现结构体数组排序 四、模拟实现qsort函数 一、概述 对数组的元素进行排序 对数组中由 指向的元素进行排序&#xff0c;每个元素字节长&#xff0c;使用该函数确定顺序。 此函数使…...

Linux系统安全:NAT(SNAT、DNAT)

目录 一.NAT 二.SNAT 三.DNAT 一.NAT NAT: network address translation&#xff0c;支持PREROUTING&#xff0c;INPUT&#xff0c;OUTPUT&#xff0c;POSTROUTING四个链 请求报文&#xff1a;修改源/目标IP&#xff0c; 响应报文&#xff1a;修改源/目标IP&#xff0c;根据…...

【数据库】MySQL存储过程:提升数据库性能和操作效率的利器

在数据库管理系统中&#xff0c;存储过程是一种重要的数据库对象&#xff0c;它允许将一组复杂的SQL语句组合起来&#xff0c;形成一个独立的单元进行重复使用。存储过程可以极大地提高数据库的性能和操作效率&#xff0c;降低网络流量&#xff0c;减轻系统负载。本文将深入探讨…...

rust写一个多线程和协程的例子

当涉及到多线程和协程时&#xff0c;Rust提供了一些非常强大的工具&#xff0c;其中最常用的库之一是tokio&#xff0c;它用于异步编程和协程。下面我将为你展示一个简单的Rust程序&#xff0c;演示如何使用多线程和协程。 首先&#xff0c;你需要在你的项目的Cargo.toml文件中…...

react18+antd5.x(1):Notification组件的二次封装

antdesign已经给我们提供了很好的组件使用体验,但是我们还需要根据自己的项目业务进行更好的封装,减少我们的代码量,提升开发体验 效果展示 开起来和官网的使用没什么区别,但是我们在使用的时候,进行了二次封装,更利于我们进行开发 MyNotification.jsx,是我们的业务页面…...

jenkins运行pytest测试用例脚本报错:没有权限,无法写日志PermissionError:[Error 13]Permission denied

报错信息&#xff1a; PermissionError:[Error 13]Permission denied&#xff1a;‘/var/jenkins_home/workspace/deleverySystem/Delivery_System/out_files/logs/waimai_20230823.log’ 解决方法&#xff1a; 在jenkins容器内部输入 chmod -R 777 /var/jenkins_home/works…...

数据结构 day1

1>x.mind 2>间接定义结构体数组&#xff0c;进行4种方式的定义和初始化 3>定义结构体存储10辆车&#xff08;车的信息&#xff1a;品牌、单价、颜色&#xff09; 1.定义函数&#xff0c;实现循环输入 2.定义函数&#xff0c;实现排序 3.定义函数&#xff0c;计算红色车…...

湖北咸宁农业三维扫描数字化农业3d打印制造应用-CASAIM中科广电

农业是人类衣食之源、生存之本&#xff0c;是一切生产的首要条件&#xff0c;CASAIM在农业三维扫描和3d打印应用上有丰富经验。 1.三维扫描技术在农业领域的应用 CASAIM三维扫描是集光学、机电和计算机技术于一体的高新无损检测技术&#xff0c;能够对实物的空间外形、结构乃…...

Jenkins的定时任务配置

jenkins配置定时任务位置(点击日程表的问好可查看语法配置) jenkins的定时任务的参数 # 定时任务参数(每个参数之间使用tab键或空格分隔)MINUTE HOUR DOM MONTH DOW 参数解释取值范围 MINUTE 分钟0-59HOUR小时0-23DOM一月的天数1-31MONTH月份1-12DOW 一周的天数0…...

THINKPHP 微联云投票系统源码独立版 + 支持刷礼物

THINKPHP 微联云投票系统源码独立版 支持刷礼物 nginxphp7.2以上 mysql5.6以上 简单测试后台基本没什么问题&#xff0c;暂时发现H5前端有bug,自行修复。...

Mongodb两种启动方法

一、命令行启动 1.修改存放数据库的位置 说明&#xff1a;E:\data\mongodb&#xff1b;我在E盘创建的文件夹mongodb mongod --dbpathE:\data\mongodb 2.成功启动 说明&#xff1a;默认端口27017&#xff0c;代表已经启动成功 &#xff0c;并在mongodb自动创建文件 二、配置项…...

Python:列表的浅拷贝与深拷贝

在python语言中&#xff0c;因为其面向对象的特性&#xff0c;在进行列表拷贝时可能会出现一些意想不到的结果&#xff0c;涉及到列表的浅拷贝和深拷贝相关问题&#xff0c;本文将对其进行总结。 首先我们来看以下代码。 my_list [1, 2, 3] your_list my_list your_list[0] …...

OnePlus Open可折叠手机:规格、价格、发布日期等详细信息汇总!

我们知道OnePlus可折叠手机即将问世,无论它是否被命名为OnePlus Open。我们迫不及待地想让它到来,为该公司再添一根弦,为最好的可折叠手机增添一个新的竞争对手。 OnePlus以前没有生产过任何可折叠产品,但它确实拥有合作伙伴公司Oppo的丰富知识,并可以向三星、摩托罗拉和…...

SQL 数据库

安装配置 【1】 MySQL安装配置教程&#xff08;超级详细、保姆级&#xff09; 【2】 MySQLNavicat安装配置教程&#xff08;超级详细、保姆级&#xff09; 学习资料 【戴师兄】SQL入门免费教程 刷题链接&#xff1a;https://share.mubu.com/doc/4BHMMbbvIMb 学习笔记&#xf…...

告别封号!用Python的curl_cffi库稳定调用Claude API(附完整代码)

Python实战&#xff1a;用curl_cffi构建高稳定性的Claude API调用方案 每次调用Claude API时最让人头疼的莫过于账号突然被封——明明代码逻辑没问题&#xff0c;参数也正确&#xff0c;但系统就是判定你在用自动化工具。这种问题往往源于一个容易被忽视的技术细节&#xff1a;…...

终极Wireshark网络嗅探工具:如何在Docker容器中快速构建完整代码质量分析环境

终极Wireshark网络嗅探工具&#xff1a;如何在Docker容器中快速构建完整代码质量分析环境 【免费下载链接】wireshark Read-only mirror of Wiresharks Git repository at https://gitlab.com/wireshark/wireshark. Youre welcome to submit pull requests there. 项目地址: …...

关于进程管理的实现过程

1.进程加载函数:负责将硬盘上的进程加载到指定内存位置。返回进程的入口地址如 jinchengjiazaihans&#xff08;&#xff09;2.cpu调用函数&#xff0c;第一次调用时传入进程的运行入口地址&#xff0c;将入口地址作为基地址写入中断寄存器&#xff0c;栈指针寄存器&#xff0c…...

2026年AI智能体全面爆发:从对话工具到数字员工,重构开发者技术生态

摘要&#xff1a;近两年大语言模型快速迭代&#xff0c;人工智能彻底告别了单纯的问答交互时代。2026年成为AI落地的关键拐点&#xff0c;AI智能体&#xff08;Agent&#xff09;迎来规模化商用&#xff0c;正式开启AI“行动时代”。不同于传统AI对话工具&#xff0c;AI智能体具…...

从STTN到PDFormer:手把手拆解Transformer交通预测模型的演进与核心代码

从STTN到PDFormer&#xff1a;Transformer交通预测模型的技术迭代与核心实现剖析 交通预测作为智能城市建设的核心技术之一&#xff0c;其准确性直接影响着从导航软件到交通信号控制的各类应用。传统时序预测方法在处理复杂的时空依赖关系时往往力不从心&#xff0c;而Transfor…...

VeriGuard:LLM代码安全验证方案解析与实践

1. 项目背景与核心价值去年在部署一个基于大语言模型的客服系统时&#xff0c;我们团队遭遇了典型的"幻觉指令"攻击——攻击者通过精心构造的提问诱导AI生成包含恶意代码的回复。这次事件让我意识到&#xff1a;当LLM代理&#xff08;AI Agent&#xff09;被集成到生…...

FPGA动态指令重构技术:LUTstruction架构解析与应用

1. 项目概述&#xff1a;FPGA动态指令重构的技术突破在处理器设计领域&#xff0c;一个长期存在的矛盾是&#xff1a;固定指令集架构的通用性与特定计算任务的高效性难以兼得。传统解决方案如SIMD向量指令扩展虽然能提供数百条专用指令&#xff0c;但在面对AI推理、信号处理等多…...

基于GitHub Actions与SVG构建动态个人技能图谱的完整实践指南

1. 项目概述&#xff1a;一个技能图谱的诞生最近在整理自己的技术栈和项目经验时&#xff0c;我一直在思考一个问题&#xff1a;如何能系统性地、可视化地展示一个开发者&#xff08;或者说任何一个专业人士&#xff09;的综合能力&#xff1f;简历太单薄&#xff0c;个人网站又…...

Vibe Coding深度实践:AI辅助编程的工作流重构与陷阱规避

Vibe Coding不是玄学&#xff0c;是一套可以复制的工程范式 2025年以来&#xff0c;“Vibe Coding"这个词从Andrej Karpathy的一条推文扩散到了整个开发者社区。它指的是一种高度依赖AI辅助的编程方式&#xff1a;工程师更多地在高层次上描述意图&#xff0c;让AI生成具体…...

Simplifine:一行命令实现LLM云端微调,降低大模型定制化工程门槛

1. 项目概述&#xff1a;为什么我们需要一个“傻瓜式”的LLM微调工具&#xff1f;如果你尝试过自己动手微调一个大语言模型&#xff0c;比如Llama 3或者Qwen&#xff0c;你大概率经历过这样的“地狱开局”&#xff1a;先花半天时间配置CUDA和PyTorch环境&#xff0c;然后对着Hu…...