linux 脚本的学习

本文介绍如何配置Vim编辑器以提高编辑效率,避免直接修改系统配置。同时,深入探讨Shell脚本的常见错误排查,效能限制,变量管理,及如何正确执行脚本。涵盖测试命令、条件语句、循环结构和函数定义的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vim的配置文件可以方便以后的编辑:

在家目录下手动建立并配置隐藏文件.vimrc,按照下图写入即可,不要直接修改/etc/vimrc,这种系统配置还是不要碰

脚本的错误:

脚本中,如果是写了不存在的命令,那么该行脚本报错(找不到),但后续的语句继续执行,如果写了语法错误,那么后面的脚本将都不执行。

所以要进行排错:

                                     

脚本的效能比不上程序语言,还会耗费比较多的cpu资源,所以不易用来做密集数值计算。

脚本当中:

编写完成的脚本会一行行执行下去,执行脚本的方法:

可以将编写的脚本放在当前家目录的bin中,方便管理

编写脚本最好养成的习惯:

                             

bash shell只支持整数运算,除了用declare声明变量类型,还可以用  $(())   来计算,比如:$( ( ${t} *  ${f} ) ).

想要计算小数点可以用bc指令

脚本命令:

利用bash命令或者直接下达指令的形式执行脚本,其实都是通过新建一个bash来执行脚本的,也就是说这个新建bash是一个子程序,那么在子程序中建立的变量一旦脚本结束是不会传回给父程序的。这也是为什么脚本中的变量不会修改当前bash的变量,shell脚本中设定的路径和环境变量只对改shell和其子shell有效。 对其父shell和其它shell无效。

TIPS:子程序的变量和动作均会在脚本结束时结束,不会在传回父程序。

PS:就算在脚本中使用export命令,也不能成功,只有使用source命令来执行脚本,才会生效。

                                               

test命令各个参数检测功能:

        

          

 

test指令还有一种写法,就是用中括号来代替标识    [ ].

虽然和test作用一样,但是,中括号经常用在if判断表达式中。

脚本有默认的参数变量,你只需要设定好执行脚本时的要传的参数值就可以了:

例如:

结果:

shift造成变量偏移:

                                                                                    

               

 

 

if -------then ---------if表达式:

                                 

PS:这个中括号是相当于test命令的

多重if语句嵌套:

                                   

                             

类比程序语言的switch写法:

类似程序语言的函数功能:

                                                                      

在写脚本函数时,一定要将函数写在程序的最前面,因为脚本执行从上到下,从左到右。

TIPS:直接写函数名就可以调用。

函数的内建参数:

函数的参数和脚本的参数预设默认变量一样,但传递方式不一样,脚本是在命令行界面,下达脚本指令后跟参数,而函数的参数是在语句中体现:

循环:

                                   

还有一种跟while相反的循环,当满足条件,循环终止,否则,继续循环:

                                                                  

例子:

                          

until写法一样,只是功能不同。

 

for循环

通常肯定不会那么笨,要写 in 后面那一连串的东西,直接 in   一个变量(该变量内容是一长串内容),例子:

                                

            

for的另外一种写法:

                                                          

              

             

例子:

                

脚本debug:

                            

 

基于Spring Boot搭建的一个多功能在线学习系统的实现细节。系统分为管理员和用户两个主要模块。管理员负责视频、文件和文章资料的管理以及系统运营维护;用户则可以进行视频播放、资料下载、参与学习论坛并享受个性化学习服务。文中重点探讨了文件下载的安全性和性能优化(如使用Resource对象避免内存溢出),积分排行榜的高效实现(采用Redis Sorted Set结构),敏感词过滤机制(利用DFA算法构建内存过滤树)以及视频播放的浏览器兼容性解决方案(通过FFmpeg调整MOOV原子位置)。此外,还提到了权限管理方面自定义动态加载器的应用,提高了系统的灵活性和易用性。 适合人群:对Spring Boot有一定了解,希望深入理解其实际应用的技术人员,尤其是从事在线教育平台开发的相关从业者。 使用场景及目标:适用于需要快速搭建稳定高效的在线学习平台的企业或团队。目标在于提供一套完整的解决方案,涵盖从资源管理到用户体验优化等多个方面,帮助开发者更好地理解和掌握Spring Boot框架的实际运用技巧。 其他说明:文中不仅提供了具体的代码示例和技术思路,还分享了许多实践经验教训,对于提高项目质量有着重要的指导意义。同时强调了安全性、性能优化等方面的重要性,确保系统能够应对大规模用户的并发访问需求。
### 学习Linux脚本编程的方法 学习Linux脚本编程需要从基础概念入手,逐步掌握Shell脚本的核心功能和应用场景。以下内容将详细介绍如何系统地学习Linux脚本编程。 #### 1. 理解Shell脚本的基本结构 一个规范的Shell脚本通常以指定解释器的路径作为第一行,例如`#!/bin/bash`或`#!/bin/sh`[^1]。这行代码明确了脚本由哪个程序(解释器)执行。对于大多数Linux系统而言,`sh`是`bash`的一个软链接,因此在大多数情况下两者没有明显区别,但为了更规范的写法,建议使用`#!/bin/bash`。 #### 2. 掌握基本语法和命令 Linux脚本编程的核心在于对Shell命令的熟练运用。学习如何编写脚本时,应熟悉以下基本概念: - **变量**:通过`$`符号引用变量,例如`$VAR`[^4]。 - **输入输出重定向**:了解`>`(覆盖输出)、`>>`(追加输出)、`<`(输入)等操作符的用法。 - **管道**:使用`|`连接命令,实现数据流的传递,例如`ls | grep "file"`[^4]。 - **算术运算**:可以使用`bc`进行复杂计算,例如: ```bash result=$(echo "scale=2; 10 / 3" | bc) echo $result ``` #### 3. 学习控制结构 掌握Shell脚本中的条件判断和循环语句是编写复杂脚本的基础: - **条件判断**:使用`if`、`then`、`else`语句进行逻辑判断,例如: ```bash if [ "$VAR" -eq 10 ]; then echo "VAR is 10" else echo "VAR is not 10" fi ``` - **循环**:使用`for`、`while`等循环结构处理重复任务,例如: ```bash for i in {1..5}; do echo "Iteration $i" done ``` #### 4. 实践常见应用场景 Linux脚本编程广泛应用于文件系统操作和操作系统控制[^2]。可以通过以下实践加深理解: - **文件操作**:编写脚本批量重命名文件、查找特定类型的文件等。 - **自动化任务**:结合`cron`定时任务,实现定期备份或日志清理。 - **系统监控**:编写脚本监控CPU、内存使用情况,并生成报告。 #### 5. 提高效率与减少重复工作 对于运维人员而言,Shell脚本是提高工作效率的重要工具[^3]。通过将繁琐的命令序列化为脚本,可以显著减少重复劳动。例如,编写脚本自动部署环境、检查服务器状态等。 #### 6. 深入学习进阶知识 在掌握基础后,可以进一步学习以下内容: - **函数**:定义可复用的代码块,增强脚本的模块化。 - **参数传递**:利用`$1`、`$2`等变量接收命令行参数。 - **错误处理**:使用`exit`状态码和`trap`命令捕获异常。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值