分享好友 最新动态首页 最新动态分类 切换频道
Shell编程基础与实战指南
2024-12-29 13:58

图片引用链接:https://www.bilibili.com/video/BV16Z4y1N7R1?p=2&spm_id_from=pageDriver

Shell编程基础与实战指南

 

文件测试:、…
逻辑比较、算数运算: 、


1. 常用 Shell 类型

解释器类型介绍/bin/shBourne Shell,是 UNIX 最初使用的 shell/bin/bashBourne Again Shell,它是 Bourne Shell 的扩展,简称 bash,是 Linux OS 默认 shell,有灵活和强大的编辑接口,同时又很友好的用户接口,交互性很强/bin/nologin未登录解析器,Shell 设置为 /bin/nologin 适用于控制用户禁止登录系统的,有时候有些服务,比如邮件服务,大部分都用来接受主机的邮件而已,并不需要登录/bin/dash比 Bash 小,只需要较少的磁盘空间,对话性功能少,交互性差/bin/cshC 语言风格/bin/tcshC shell 扩展版本

2. 注释

 

3. 变量

3.1 系统环境变量

通过加载 Shell 配置文件(全局)中变量数据,共享给 Shell 所有 Shell 程序使用。

3.2 用户环境变量

Shell 环境加载个人配置文件中定义的变量。

3.3 查看环境变量
 
3.4 常用环境变量
 
3.5 自定义变量
 

+/- "-" 可用来指定变量的属性"+" 取消变量所设的属性。
a:array,设置为普通索引的数组。
A:array,设置为关联数组(map)。
r:readonly,将变量设置为只读。
x:export,设置变量为环境变量。
i:int,设置为整型变量。
f:function,设置为一个函数变量。

 
 
  1. 变量名由字母、数字和下划线组成,数字不能开头。
  2. 等号两侧不能有空格。
  3. 在 bash 环境中,变量的默认类型都是字符型,不能直接参与数值运算。
  4. 变量的值如果有空格,必须使用双引号
  5. 不能使用关键词作为变量名称。
3.6 查询变量
 
3.7 变量删除
 
3.8 定义只读常量
 
3.9 全局变量

仅限于父子shell。

在当前 shell 和子 shell 环境中都可以使用。

 
 
3.10 特殊变量
位置参数变量作用$nn为数字,$0 代表命令本身,$1-$9代表第一到第九个参数,十以上需要使用大括号 ${10}$*这个变量代表命令行中所有的参数, $* 把所有的参数看成一个整体$@这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待,空格分隔$#这个变量代表命令行中所有参数的个数,当命令行上没有任何参数时, $# 的值为 0${!#}返回命令行用到的脚本名$?函数返回值或者上一个 shell 命令的返回值$$当前 shell 进程 ID 号

4. Shell 配置文件

全局配置文件

 

个人配置文件

 
4.1 创建环境变量
 
4.2 shell 登录环境和非登录环境加载文件流程

需要登录执行的 shell 脚本环境变量配置在 /etc/profile、/当前用户/.bash_profile
不需要登录执行的 shell 脚本环境变量配置在:/当前用户/.bashrc、/etc/bashrc

4.3 使用 Shell 登录环境/非登录环境执行脚本
 
 
 

5. 字符串

5.1 字符串的三种格式

字符串表示使用双引号

 
 
 
 
5.2 获取字符串长度
 
5.3 拼接字符串
 
5.4 截取字符串

6 数组

6.1 数组的定义与遍历

索引数组

 

key-value 关联数组

 
5.2 数组的拼接
 
5.3 数组的删除
 

6. 内部/外部命令

 

内置命令会比外部命令执行的更快。
执行外部命令会调动磁盘 I/O,还需要 fork 出一个单独的进程来执行。
执行内置命令相当于调用当前 shell 进程的一个函数,还是在当前 shell 环境内,减少了上下文切换。

7. alias

 

8. echo

 

9. read

 
 

10. expr

整数运算、字符串处理

10.1 expr 整数运算
 
 

可以直接输出
引用变量使用 $,特殊字符需要转义,只能计算一个表达式

10.2 expr 字符串处理
 

11. 整数比较

注意空格

双括号内格式随意,有 情况, 表示赋值建议使用本方法,小数不能比较

12. 整数/浮点数/字符串比较

没有 情况,需要转义,可以

  • /
  • /

没有 情况,不需要转义,可以

  • /
  • /

字符串比较的特殊方法

  • 检查字符串长度是否为 0。
  • 检查字符串长度是否不为 0。
  • 字符串不空返回 true。

13. [[ ]] 和 [ ] 区别

  • 会将字符串拆开单个比较, 不会。

14. 文件测试

 
 

15. 布尔运算

16. 逻辑运算

17. 算数运算 (( )) / $[ ]

 
 

直接输出,里面直接使用变量名,特殊字符不需要转义,多个表达式赋值
需要获取值之后才能输出

 

赋值简单,特殊字符不需要转义
不能直接输出

 

特殊字符不需要转义
不能多表达式计算

18. bc 命令

 
 

内置变量

 

内置数字函数

 
 
 
 
 

19. case

case 只支持一部分正则表达式,且不需要每个 case 选项都有一个 break,和 C 不一样。

 

20. 循环

 
 
 
 
 

21. select

死循环,需要配合 break 使用。

 
 
 

22. 函数

系统函数:basename、dirname
自定义函数

 
 
参数说明$#传递到脚本或参数个数$*以一个单字符串显示所有参数$$脚本运行的当前进程号$!后台运行的第一个进程号$@与 $* 类似,使用时加引号,并在引导中返回每个参数$?显示最后命令的退出状态

shell 程序命令:运行命令时开启一个子进程运行命令。
函数:在当前 shell 环境中运行,没有开启进程。

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

cut - 列 文本处理工具

可以切割指定列字符字节的数据

 
 
 
 
 

sed - 行 文本处理工具

stream editor,流编辑器,可对文本文件的每一行数据匹配查询之后进行增、删、改、查等操作。支持按行、字段、正则匹配文本。

读取文件中每行数据到缓存区,匹配后执行 sed 命令,将执行后的结果输出。

 
 
 
 
 
 
 
 

awk - 文本分析工具

默认分隔符为空格

 
 
 
 
 
 

sort - 排序工具

最新文章
如何让百度快速收录网站内容?
还是那句话,只要坚持,总会被青睐的。做搜索引擎推广,不可能做完马上见效的,seo是需要时间的,可能你前几天做的事情,过几天百度才会知道。1、网站内部做好。怎么做好?这个问题问的深奥啊,我怎么知道你的网站有没有做好,你的网站我又
虚拟偶像影视动画制作软件(虚拟偶像影视动画制作软件哪个好)
摘要:虚拟偶像影视动画制作软件,虚拟偶像影视动画制作软件现如今,随着科技的迅猛发展,人们对于数字化、虚拟化、智能化工具的需求日益增加。在影视动画行业,虚拟偶像已经成为了一种趋势,不少影视公司纷纷尝试推出自己的虚拟偶像,同时
漫蛙漫画官网入口最新版软件亮点
漫蛙漫画官网入口最新版下载是一款专为漫画爱好者打造的阅读软件。它汇集了丰富的漫画资源,包括各种题材和风格的作品,满足用户的多样化需求。软件界面简洁友好,操作便捷,支持离线下载,让用户随时随地畅享漫画世界。同时,漫蛙漫画还提
一款具有创新性和趣味性的 AI 换脸应用,可让用户体验到摸胸的感觉
AI 换脸技术是近年来计算机视觉和人工智能领域的热门话题,它可以将一个人的脸替换到另一个人的身上,从而实现换脸的效果。而今天我要向大家介绍的是一款具有创新性和趣味性的 AI 换脸应用,它不仅可以让用户体验到换脸的乐趣,还可以让用
【现身】传苹果将推10.8英寸OLED iPad Air;Vision Pro现身中国监管数据库;美格纳中国区总部开业,专注OLED显示驱动芯片等领域
1.美格纳中国区总部在合肥开业,专注OLED显示驱动芯片等领域2.南京高端软件及信息服务产业融合集群专项资金项目,芯视界、芯行纪等上榜3.苹果Vision Pro设备已现身中国监管数据库4.传苹果将推10.8英寸OLED iPad Air5.日本住友重工将推出SiC
全球十大搜索引擎排名,Google高居榜首
【全球十大搜索引擎排名】Google全球市场份额为68%,高居榜首。雅虎第二,市场份额为7%,百度第三,市场份额为6.5%,微软第四,市场份额为 3%,其它依次为eBay、NHN、Yandex、Facebook、Ask和阿里巴巴。另:中国是全球第二大搜索市场,所占
Python爬虫实战,完整的思路和步骤(附源码)
小的时候心中总有十万个为什么类似的问题,今天带大家爬取一个问答类的网站。 本堂课使用正则表达式对文本类的数据进行提取,正则表达式是数据提取的通用方法。 环境介绍: python 3.6 pycharm requests re json 爬虫的
搭建你的网站:Wordpress网站建设指南 – 外贸网站建设,Wordpress网站建设,外贸建站公司,外贸独立站,Wordpress成品网站
在这个数字化时代,拥有一个具有吸引力和易用性的网站对于个人和企业而言变得越来越重要。而WordPress作为一个流行的网站建设工具,无疑是许多人首选的选择。今天,我们将向您介绍如何搭建属于您自己的网站,让您在网上展示自己的独特风采
【8735(移动版)腾讯手机管家下载】酷派8735 移动版腾讯手机管家16.1.19免费下载
腾讯手机管家专注手机骚扰拦截,动态守护手机安全,深度清理微信、QQ缓存,让手机体积减半,拒绝卡慢。---认真服务---【骚扰拦截】智能拦截骚扰电话,过滤诈骗垃圾短信【清理加速】清理加速能力升级,释放空间告别卡慢【微信清理】个性清理
哪些因素会影响车价计算器的结果?
车价计算器的结果会受到多种因素影响。 贷款金额由车辆价格和首付款比例决定,首付款高贷款金额就低。 贷款利率很关键,不同金融机构和贷款方案利率有差异,利率高还款总额大。 贷款期限也重要,长的每月还款额低但总利息多,短的每月还款
相关文章
推荐文章
发表评论
0评