linux shell编程

Linux Shell编程 ​ Shell是一个命令行解释器程序规范,他接受应用程序/用户命令,然后调用操作系统内核完成相关的功能。它是用户使用 Linux 的桥梁。简单来说Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。也可以这样认为,linux中的shell就是linux内核的一个外层保护工具,并负责完成用户与内核之间的交互​ Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。 阅读详情

文件第一行应为# !/bin/sh
文件具有执行权限

  • grep

用于抽取字符匹配的行。
>grep -E "^Ethernet|^GigabitEthernet" interface.txt

#抽取以Ethernet或GigabitEthernet开始的行。^表示行的起始,$表示行的结尾
>grep -n "$_tmp" interface.txt|awk -F ":" '{print $1}'

#输出包含shell变量$_tmp的字符串的行号。-n表示输出行号,格式为nnn:xxxxxx。可用awk取出行号
>grep -A 1 "Ethernet" interface.txt|tail -n 1

#输出匹配行的下一行,注意若无下一行时将输出本行。-A表示输出匹配行下的行。tail -n为取尾部的行
>grep -A 3 "swicth" environment.txt|egrep -v '^(swicth|--)'|grep -v "Slot" 

#取包含swicth的行及下面3行,并去掉switch和--开头的行,去掉包含Slot的行。
#egrep是grep的改进版。-v表示去掉匹配的行。--是-A参数加上的行

>grep -i "up" interface.txt

#抽取有UP的行,大小写无关

>grep  "[Sep]" interface.txt

#抽取有存在字符S、e、p的行

  • awk

按分割符将字符串分段并抽取出需要的部分。
>echo "Ethernet1/1/2.1" |awk -F "/" '{print $1"/"$2}' #以/为分割符,获取第1、2部分并按格式输出
Ethernet1/1
>echo "Ethernet1/1/2.1" |awk -F "/" '{print $NF}' #以/为分割符,获取最后部分
2.1
>_input=$(sed -n "1,5p" file)    #抽取file中1-5行放入变量,_input内容为6495542942 octets, 10759575 UcastPkts, 13330 NUcastPkts, 0 discards /n  0 MulticastOctets, 0 MulticastPkts,0 NUcastOctets
>echo _input| awk -F " UcastPkts," '{print $1}' | awk -F "," '{print $NF}' #抽取UcastPkts值。注意_input中保存着两行数据,但并不能用grep来获取其中一行

  • sed

内容编辑器,用于修改、替换、抽取数据
>echo " aaa "|sed 's/^ //g' #滤去空格
>echo " 2008/12/12 "| sed 's////-/g' #用转义符/转义
2008-12-12
>cat a.txt |sed -e :a -e '$!N;N;s/UP/n IP/UP/;ta' -e 'P;D' #将符合条件的2行并一行。将UP结尾及空格IP开头的两行替换为UP,并并为一行。 

  • expr

数值计算
>U=10
>R=`expr $U + 10`
A=$(echo `echo "scale=2;$_e / $_p"|bc`)   #保留小数点后2位
_tmp=$(echo $A | awk -F "." '{print $1}') #当小于1时,.前补0
if [ -z $_tmp ];then
 A=$(echo 0$A)                        
fi 

  • 条件比较

>[ -n "$_status" ]; #-n非空串 ,-z空串
>[ $_p -eq 0 ]; #-eq为等于
-ne 数值不相等。
-gt 第一个数大于第二个数。
-lt 第一个数小于第二个数。
-le 第一个数小于等于第二个数。
-ge 第一个数大于等于第二个数。
>[ "$_id1" = "$_id2" ]; #字符串比较
>[ $_A -eq 0 ] && [ $_B -eq 0 ];

 

字符串不包含Normal
_status=$(echo $str | grep "Normal" )
if [ -n "$_status" ];then
 包含....
else
 不包含...
fi

  • 字符串输出

>echo aaaa #屏幕
>echo aaaa |tee -a file #屏幕和文件
>echo aaaa >> file #追加到文件 

  • 日期

date +%Y%m%d  #20090428
date +%s      #1970-01-01以来的秒数

  • 文件比较

comm -13 file_a file_b #比较文件 1:唯一在file_a,2:唯一在file_b,3:同时在file_a/file_b

Linux学习 shell编程 1、linux提供的解释器有哪些:2、bash和sh的关系sh实际就是bash的一个软链接(快捷方式)3、rocky linux 默认解析器是bash。 阅读详情

相关推荐

MSP430开发入门:手把手教你用IAR EW430从建工程到烧录调试(附F5529配置)

本文详细介绍了如何使用IAR Embedded Workbench(EW430)进行MSP430F5529开发板的嵌入式开发,从环境搭建、工程配置到硬件调试全流程。通过实战示例和关键配置技巧,帮助开发者快速掌握MSP430开发的核心要点,包括LED控制、定时器使用和低功耗优化等实用技术。

weixin_30240349的博客 391

Linux 下shell编程

什么是shell?Shell是一个命令解析器,是介于Linux操作系统的内核(kernel)与用户之间的一个绝缘层。shell脚本就是讲各类命令预先放入其中,方便一次性执行的一个程序文件,主要用于方便管理员进行设置或者管理。    序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 She

知秋一叶 5106

01 ArcGIS空间分析--水文分析--利用水文分析方法提取山谷山脊线

ArcGIS空间分析的一个特别好的分析教程是汤国安老师的空间分析的内容。 实例与练习 练习1. 利用水文分析方法提取山脊、山谷线 1. 背景:山脊线、山谷线是地形特征线,它们对地形、地貌具有一定的控制作用。它们与山顶点、谷底点以及鞍部点等一起构成了地形及其起伏变化的骨架结构。因此在数字地形分析中,山脊线和山谷线以及

Meditation 1万+

Linux系统的Shell编程

一. 什么是Shell 1. 在学习Shell编程之前,我们应该要先知道什么是Shell 用户、Shell、Linux内核、硬件的关系如下图: Shell是一个应用程序,也可以说是一个命令解释器,它是用户和Linux内核之间的桥梁,可以将用户在图形界面上的操作或在终端输入的命令传递给Linux内核,然后Linux内核再调度各个硬件及其他资源来完成用户的操作。 什么是Linux的内核?在Linux操作系统中,真正能够操作计算机硬件完...

weixin_55118477的博客 3239

华为防火墙USG6000系列多ISP上网(通过WEB界面设置)

华为防火墙多ISP上网,内网分区上网。内网多网段不同上网方式。

daxihe880的博客 1万+

使用GDScript(godot)生成仿杀戮尖塔地图

使用GDScript(godot)生成仿杀戮尖塔地图 extends Node2D export (PackedScene) var Ball var 被连接数 = {} # 每个怪物被下层怪物连接的数量 最多为2 var 连接1 = {} # 第一次连接的上层怪物位置 var 连接2 = {} # 第二次连接的上层怪物位置 var 怪物数量 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0] # 每层怪物的数量 var 总层数 =8 # 总层数 var 怪物坐标行 = {} #

weixin_45038716的博客 3010

Linux shell编程

我们用的是:bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。[注]:Bash (the Bourne-Agian shell)由 Brian Fox 为GNU项目编写,目的是代替sh。

2401_84382970的博客 1194

从选卡到验证:CST仿真GPU加速全流程实战指南

本文详细介绍了CST仿真中GPU加速的全流程实战指南,从硬件选型到软件配置,再到性能验证和常见问题排查。通过对比专业卡与游戏卡的性能差异,提供硬件选型建议,并分享驱动安装、关键设置及CST软件配置的黄金法则,帮助用户显著提升仿真效率。

weixin_30650039的博客 394

Linux的Shell编程

Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。对于JavaEE和Python程序员来说,工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。对于大数据程序员来说,需要编写Shell程序来管理集群。Linux Shell中的变量分为:系统变量和用户自定义变量。系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME显示当前shell中所有变量:set定义变量 : 变量=值。

m0_75260099的博客 3381

别再折腾虚拟机了!手把手教你用WSL2在Windows 11上安装Kali Linux(含汉化与图形界面)

本文详细介绍了如何在Windows 11上通过WSL2安装和配置Kali Linux,包括汉化与图形界面设置。通过WSL2,用户可以享受接近原生性能的Linux体验,同时保持与Windows系统的无缝集成,特别适合网络安全爱好者和开发者。文章还提供了常见问题解决和性能优化建议,帮助用户高效使用Kali工具集。

weixin_42525369的博客 322

【即插即用模块】卷积篇 | TGRS 2025 | HLKConv:小核+空洞=大核,感受野一致,但更轻更准!

本文介绍了分层大核卷积模块HLKConv,该模块通过动态大核+空洞卷积实现高效感受野扩展,将超大核卷积分解为小核+空洞卷积(如53×53核用17×17+dilation=3实现),计算量仅为普通大核的1/10。模块采用双分支设计:基础卷积分支捕捉局部细节,大核空洞分支捕捉长距离关联,通过1×1卷积融合。实验表明HLKConv在红外小目标检测中优于传统大核卷积,适用于高分辨率视觉任务。代码实现了不同核尺寸的配置,输入输出特征维度保持不变,计算效率显著提升。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 346

Linux Shell 编程

Shell 是Linux 内核与用户之间的交互接口,它接收用户输入的命令,解析后传递给内核执行,并将结果返回给用户。简单来说,Shell 是 “命令解释器”,也是一种编程语言(解释型语言,无需编译)。变量名由字母、数字、下划线组成,不能以数字开头。赋值时等号两侧不能有空格(如a=10正确,a = 10错误)。变量值含空格或特殊字符(如)时,需用双引号(")或单引号(')包裹。变量含义示例场景$0当前脚本的文件名echo $0$n脚本的第 n 个参数(n≥1,$1是第一个参数)执行。

zcz1607127821的博客 1148

汽车电子RTOS--AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR(汽车开放系统架构)标准中的一个重要组件,它是一个专门为汽车电子控制单元(ECU)设计的实时操作系统(RTOS)。AUTOSAR OS旨在提供一个标准化的软件平台,以促进不同供应商和汽车制造商之间的组件复用和协同开发,提高软件质量和降低成本。

MHD0815的博客 1798

linux shell编程总结

    本周学习了unix/linux shell编程,参考的是《LINUX与UNIX Shell 编程指南》,David Tansley著;徐焱,张春萌等译,由机械工业出版社出版的了,往内页那么一翻,都是2000年3月译的了,原书估计会更老,不过图书馆能找到合适于我这种初学者的也许就这么本了,将就着的吧。    这本书是以Bourne shell这个UNIX系统都支持的标准shell。Bou

ltbook的专栏 4557

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Linux——Shell编程

Shell是一种命令语言和程序设计语言,它既是用户与Linux系统交互的桥梁,也支持变量定义、流程控制等编程特性。本文详细介绍了Shell基础语法,包括变量定义与使用、参数传递、字符串操作、数组、运算符、输入输出命令(echo/printf/read)以及test条件测试。重点讲解了Shell流程控制语句(if/for/while/case等)和函数定义方法,并深入解析输入输出重定向机制,涵盖标准输出/错误重定向、文件描述符合并及/dev/null的特殊用途。通过丰富的代码示例,系统性地展示了Shell脚本

2501_91237346的博客 1011

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

技术干货:Linux Shell 编程基础,看这一篇就够了!

技术干货:Linux Shell 编程基础,看这一篇就够了!

cdeveloper 的专栏 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux之Shell编程

Linux之Shell编程 1.1.Shell概述 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。 用户<—>Shell&lt...

鬼谷子的博客 299

Linux软件编程:shell

4.3 []:(ls file_[1-5].txt或者ls file_[^3].txt或者ls file_[1,3,5].txt)匹配一位长度、指定字符的文件名。3.2输出(echo $filename):将变量filename中的内容打印在屏幕上。4.2双引号(echo"$filename"):将里面的变量换成对应的值打印。1.基本shell命令:ls、cd、touch、rm、mkdir、rmdir、cp、mv。4.1 *:(ls file*.txt)匹配任意长度、任意字符的文件名。

2501_91498265的博客 1267

linux学习,shell编程

本文分享了Linux中的一些基本操作

qq_61272601的博客 939

【Linux】Shell编程【一】

Shell编程(一),关于Shell变量、运算符等

低调做人,低调编码,神码都是浮云 2309

Linux下的shell语言编程入门

Linux下的shell语言编程入门2006年12月15日 星期五 上午 02:32 通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应。一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率。要达到这样的目的,通常我们利用shell程序或者shell脚本来实现

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 5396

第14章 Linux的shell编程

随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。然而,许多Ubuntu Linux功能使用Shell命令来实现,要比使用图形界面交互,完成的更快、更直接。英文单词Shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。可以这样认为,Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互命令是用户向系统内核发出控制请求,与之交互的文本流。

微客猿 1883

Linux扩展——shell编程

shell概述 shell变量 运算符 $((表达式)) $[表达式] 条件判断 test condition 或 [ condition ] ★流程控制 read读取控制台输入 函数 Shell工具 cut awk sort sed wc 正则表达式

weixin_43739821的博客 1085

Linux Shell编程case语句

Linux Shell编程case语句    case语句适用于需要进行多重分支的应用情况。         case分支语句的格式如下:             case $变量名 in                 模式1)             命令序列1             ;;                 模式2)

非淡泊无以明志,非宁静无以致远 13万+

Linux之shell编程

简单来讲Shell 是一种命令行解释器,为用户与操作系统内核之间的交互提供接口。它允许用户通过输入命令来执行各种操作,如文件管理、程序运行和系统配置等。常见类型(来自deep seek - v3)Bash (Bourne Again Shell):Linux 和 macOS 的默认 Shell。Sh (Bourne Shell):早期的 Unix Shell。Zsh (Z Shell):功能强大,支持插件和主题。

ZhangW7的博客 1571
上一篇: 使用VNC
下一篇: crontab定时程序使用
airobot008
博客等级 码龄18年 8粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值