简单的shell命令以及实例

news/2024/4/20 18:09:12/文章来源:https://blog.csdn.net/weixin_43787492/article/details/129176306

shell

  • 1、简单的命令
    • 1) 判断变量名是否等于某值
    • 2) 将最新的文件名赋给变量
    • 3) 截取完整路径下文件的文件名
    • 5) 获取当前时间戳
    • 6) shell获取上一条命令的结果
  • 2、查找文件
    • 1) 查找当前目录以及子目录下的文件名后缀为txt的文
    • 2) 查找当前目录以及子目录下的文件名后缀为bin的文件
    • 3) 查找当前目录以及子目录文件中含有XXX 且以 h结尾的文件
  • 3、case语句
    • 1) 一个简单的case语句
    • 2) 一个较复杂的case语句
  • 4、文件描述符
    • 1) 在Linux系统中0 1 2 是文件描述符
    • 2) 2>&1
    • 3) 重定向
      • 3.1)标准错误输出到终端,标准输出被重定向到输出文件
      • 3.2)标准输出被重定向到输出文件,标准错误输出也被重定向到输出文件

1、简单的命令

1) 判断变量名是否等于某值

有一个name变量,判断name是否等于hua:
name=xx
if [ n$name == "nhua" ]; thenecho "yes"
elseecho "no"
fi
为啥不用 if [ $name == "hua" ];  ? 而是两边都加上了n

因为 name变量有可能为空,会出现错误 [: ==: unary operator expected

2) 将最新的文件名赋给变量

求home目录下以Time-开头的最新的一个文件

file=`ls /home/Time-* -t | head -1`
echo file=$file
file=/home/Time-20230223.txt

3) 截取完整路径下文件的文件名

file=/home/Time-20230223.txt
file_name=${file##*/}
echo file_name=$file_name
file_name=Time-20230223.txt

5) 获取当前时间戳

current_time=$(date +%Y%m%d%H%M)
echo $current_time
202303280151

6) shell获取上一条命令的结果

两种方法

result_top=`echo ${PIPESTATUS[0]}``echo $?`

2、查找文件

1) 查找当前目录以及子目录下的文件名后缀为txt的文

find . -name "*.txt"

2) 查找当前目录以及子目录下的文件名后缀为bin的文件

find . -name "*.bin"

3) 查找当前目录以及子目录文件中含有XXX 且以 h结尾的文件

查找当前目录以及子目录文件中含有XXX 且以 h结尾的文件

grep xxx --include=*.h -r

3、case语句

1) 一个简单的case语句

1、case语句结构
case 变量值 in模式 1)命令 1;;模式 2)命令 2;;*)默认命令
esac
2、case语句实例
通过等级来判断分数,A等级大于等于85分,B等于大于等于60分,其他等级小于60分。Grade为C,判断分数:
Grade=C
case $Grade inA|a )echo "A等级,成绩大于等于85分";;B|b)echo "B等级,成绩大于等于60分";;*)echo "C等级,成绩小于60分"
esac

输出

./Test_case.sh
C等级,成绩小于60分

2) 一个较复杂的case语句

包含不确定数量的参数以及shift
https://editor.csdn.net/md/?articleId=130326169

4、文件描述符

1) 在Linux系统中0 1 2 是文件描述符

0 -> 标准输入(stdin)
1 -> 标准输出(stdout)
2 -> 标准错误输出(stderr)

2) 2>&1

将标准错误输出中定向到标准输出

3) 重定向

现有如下文件

Test_STDERR.sh             (要执行的脚本) 用于输出重定向Test_STDERR_script.sh      (被调用的脚本) 用来产生错误输出

Test_STDERR_script.sh

echo "aaa"
whatthis       #不存在的命令,用来产生错误

3.1)标准错误输出到终端,标准输出被重定向到输出文件

Test_STDERR.sh

./Test_STDERR_script.sh 2>&1 > ./Test_STDERR_print.txt

Result:
执行./Test_STDERR.sh
查看Test_STDERR_print.txt

./Test_STDERR.sh
./Test_STDERR_script.sh: line 2: whatthis: command not found      ##标准错误输出到终端cat Test_STDERR_print.txt                                         ##标准输出被重定向到输出文件
aaa 

3.2)标准输出被重定向到输出文件,标准错误输出也被重定向到输出文件

Test_STDERR.sh

./Test_STDERR_script.sh  > ./Test_STDERR_print.txt 2>&1

Result:
执行./Test_STDERR.sh
查看Test_STDERR_print.txt

./Test_STDERR.sh                   ##终端没有输出cat Test_STDERR_print.txt
aaa
./Test_STDERR_script.sh: line 2: whatthis: command not found   ##标准输出,标准错误输出都被重定向到输出文件

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

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

相关文章

【Java-01】深入浅出匿名对象 , 继承 , 抽象类

主要内容 面向对象回顾 匿名对象介绍 面向对象特征 - 继承 抽象类的使用 模板设计模式 1 面向对象回顾 面向对象的核心思想是什么 ? 用代码来模拟现实生活中的事物 , 比如学生类表示学生事物 , 对象表示的就是具体的学生 , 有了类就可以描述万千世界所有的事物了 现有的…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题142环形链表II) 2023.4.24

目录 前言算法题(LeetCode刷题142环形链表II)—(保姆级别讲解)分析题目:算法思想环形链表II代码:补充 结束语 前言 本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可,撰写…

前端食堂技术周刊第 80 期:Vite 4.3、Node.js 20、TS 5.1 Beta、Windi CSS 即将落幕

美味值:🌟🌟🌟🌟🌟 口味:东坡肉 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 本期摘要 Vite 4.3Node.js 20TypeScript 5.1 BetaWindi CSS 即将落幕Pretty TypeScri…

中医脉诊仪:结合传统与现代技术的诊断工具

一、引言 随着科技的不断发展,医学领域也取得了举世瞩目的进步。中医作为一种古老的医学体系,始终保持着其独特的魅力。脉诊作为中医诊断的重要方法之一,历经千年的发展和传承,如今在现代科技的助力下,诞生了中医脉诊…

信息安全复习六:公开密钥密码学

一、章节梗概 1.公开密钥密码模型的基本原理 2.两个算法:RSA&D-H算法 主要内容 1.对称密钥密码的密钥交换问题 2.公钥密码模型的提出 3.设计公钥密码的基本要求 4.数字签名 5.RSA算法 6.公钥密码的特征总结 二、对称密钥密码 对称加密算法中,数据…

实例分割算法BlendMask

实例分割算法BlendMask 论文地址:https://arxiv.org/abs/2001.00309 github代码:https://github.com/aim-uofa/AdelaiDet 我的个人空间:我的个人空间 密集实例分割 ​ 密集实例分割主要分为自上而下top-down与自下而上bottom-up两类方法…

基于趋动云的chatGLM-6B模型的部署

首先根据官方示例教程,学会怎么创建项目,怎么使用数据,怎么进入开发环境,以及了解最重要的2个环境变量: 这个是进入开发环境以后的代码目录 $GEMINI_CODE 这个是引用数据集后,数据集存放的路径 $GEMINI_DA…

Linux内核进程管理与调度:策略优化与实践分析

Linux内核进程管理与调度 一、前言二、进程管理和多进程调度2.1 进程标识符和控制块2.2 进程状态和转换2.3 进程间通信 三、单处理器下的Linux进程调度3.1 Linux进程调度器3.2 时间片轮转调度算法3.3 最短剩余时间优先调度算法3.4 其他调度算法的不足 四、多处理器下的Linux进程…

Layui 2.8.0 正式发布,朴实归来

Layui 是一套开源的 Web UI 组件库,采用自身轻量级模块化规范,遵循原生态的 HTML/CSS/JavaScript 开发模式,极易上手,拿来即用。其风格简约轻盈,而内在雅致丰盈,甚至包括文档在内的每一处细节都经过精心雕琢…

【Linux网络】PXE高效批量网络装机

PEX高效批量网络装机 一、部署PXE远程安装服务1.1PXE的优点1.2搭建PXE网络体系的前提条件 二、实现Kincksatrt无人值守安装2.1实验思路,2.2实验:无人值守远程安装2.2.1实现 Kickstart 无人值守安装 一、部署PXE远程安装服务 PXE(预启动执行环…

Flutter ListView组件详解

今天是2023年4月24日 今天重新复习了一下关于ListView的内容,现在就重新整理一下关于ListView的内容和理解 : (1)ListView和Column之间有什么区别? 在我理解中ListView和Column都是可以有很多子组件的组件,它们之间区别在于它们排列的形式和…

100天涨薪4k,从功能测试到自动化测试,我整理的3000字超全学习指南

去年6月份,由于经济压力让我下定决心进阶自动化测试,已经24的我做了3年功能测试,坐标广州薪资定格在8k,可能是生活过的太安逸,觉得8000的工资也够了,但是生活总是多变的,女朋友的突然怀孕&#…

Bsah shell的操作环境

文章目录 Bsah shell的操作环境路径与命令查找顺序使用案例 bash的登录与欢迎信息:/etc/issue、/etc/motdbash的环境配置文件如下login与non-login shell/etc/profile(login shell 才会读)~/.bash_profile(login shell 才会读)source:读入环境配置文件的…

上新了丨高性价比5G智能模组,美格智能SRM700正式发布

伴随着5G、AI、云计算等技术与物联网技术的融合发展,一个万物智联的智能世界正在到来。5G已经成为数字经济重要的基础设施,千行百业的用户都需要依靠高速率、大带宽、低延时的5G技术来构建数字化转型能力。 作为全球领先的无线通信模组及解决方案提供商…

51单片机(一)软硬件环境和单片机介绍

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其实STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

HDCTF 2023 复盘

web yamiyami 当时考虑直接读的/proc/self/environ 读到flag是not_flag 就没考虑过/proc/1/environ了 然后不知道py3URL二次编码的特性,读不到源码,无从下手 做flask算pin码的题做多了,还以为pid是1的就是self,难顶 上面那种是非预期 预期是yaml反序列化 先读源码 /read?u…

银行数字化转型导师坚鹏:宏观经济趋势与资本行业机遇和挑战

2023年宏观经济趋势与资本行业机遇和挑战 课程背景: 很多学员存在以下问题: 不知道我国目前的宏观经济形势? 不清楚宏观环境对我国经济的影响? 不知道资本行业未来主要发展趋势? 课程特色: 精彩解…

小案例CSS

代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge"> <meta name"viewport" content"widthde…

QMS-云质说质量 - 4 为什么有的质量人不属于质量部?

想管理好质量&#xff0c;首先就要把质量人员放在合适的组织架构中。 对人进行管理&#xff0c;基本原则是&#xff1a;尽量让员工的利益与企业的利益保持同步&#xff0c;虽然无法做到完全重合&#xff0c;但出发点肯定要战略一致。 俗话说“屁股决定脑袋”&#xff0c;因此&a…

IS210AEBIH3BED包含逻辑集成电路、存储器集成电路、专用集成电路

IS210AEBIH3BED包含逻辑集成电路、存储器集成电路、专用集成电路 什么是集成电路测试仪   集成电路测试仪是对集成电路进行测试的专用仪器设备。集成电路测试是保证集成电路性能、质量的关键手段之一。集成电路测试技术是发展集成电路产业的三大支撑技术之一&#xff0c;因此…