shell学习笔记之一——入门

本文深入探讨了Shell脚本的基本概念、使用方法及优化技巧。从设置Shell、多命令执行、内置命令到变量使用、echo命令、printf命令、重定向与管道、tr命令、构造高效管道以及特殊文件与环境变量PATH的运用。通过实例解析,帮助开发者掌握Shell脚本的核心知识,提升脚本编写效率。

1. Shell脚本最常用于系统管理工作,或是用于结合现有的程序以完成小型的、特定的工作。

2. 现在UNIX系统都会拥有好几个Shell,因此需要告知UNIX内核应该以哪个Shell来执行所指定的Shell脚本。方法是:通过脚本文件中特殊的第一行来设置:

    在第一行的开头处使用 #! 这两个字符。但是开头的这一行的长度限制是从63到1024个字符,所以,尽量不要超过64个字符。

3. 在一行里可以放置多条命令,之间用分号(;)分隔,Shell会依次执行这些命令。

4. Shell识别三种基本命令: 内建命令、Shell函数和外部命令;

    内建命令就是由Shell本身所执行的命令;

    Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。

    外部命令就是由Shell的副本(新的进程)所执行的命令。

5. Shell变量的命名规则与C++相同,以字母或下划线开头,由任意长度的数字、字母以及下划线组成。

    注意在给变量赋值时,如myname=hello,等号两端是没有任何空格的。

6. echo命令

    原始的echo命令只会将参数打印到标准输出,参数之间以一个空格隔开,并以换行符结尾。

    BSD版本的echo看到第一个参数为 -n 时,会省略结尾的换行符号,如echo -n "Enter your name: "

7. printf命令

    printf命令模仿C程序库里的printf()库程序。它几乎复制了该函数所有的功能。printf命令的完整语法分为两部分:

    printf format - string [arguments ...]

8. 重定向与管道

    以 < 改变标准输入:program < file可将program的标准输入修改为file

    以 > 改变标准输出:program > file可将program的标准输出修改为file

    以 >> 改变标准输出:program >> file可将program的标准输出附加到file的结尾处

    以 |  建立管道:program1 | program2 可将program1的标准输出修改为program12的标准输入

9. tr命令 :tr [options ] source-char-list replace-char-list

    用途:转换字符。例如,将大写字符转换成小写。选项可让你指定所要删除的字符,以及将一串重复出现的字符浓缩成一个。

10. 构造管道时,应试着让每个阶段的数据变得更少。换句话说,如果你有两个要完成的步骤与先后次序无关,可以把会让数据量变少的那一个步骤放在管道的前面。

       这么做可以提升脚本的整体性能,例如,使用sort排序之前,先以grep找出相关的行。

11. 特殊文件:/dev/null 与 /dev/tty (待补充...)

12. 环境变量PATH

      $PATH是一个以冒号分隔的目录列表,可以在列表所指定的目录下找到所要执行的命令。Shell会沿着查找路径$PATH来寻找命令。

      如果要编写自己的脚本,最好准备好自己的bin目录来存放它们,并且让Shell能够自动找到它们。这不难,只要建立自己的bin目录,并将它加入到$PATH的列表即可:

    

$ cd                       切换到home目录
$ mkdir bin                建立个人的bin目录
$ mv nusers bin            将我们的脚本置入该目录
$ PATH=$PATH:$HOME/bin     将个人的bin目录附加到PATH
$ nusers                   试试看,Shell找到并执行它

要让修改永久生效,在.profile文件这把你的bin目录加入$PATH,而每次登录时Shell都读取.profile文件

【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)内容概要:本文介绍了基于IEEE33节点的配电网韧性提升方法,重点研究了移动储能系统的预布局与动态调度策略。通过Matlab代码实现,提出了一种结合预配置和动态调度的两阶段优化模型,旨在应对电网故障或极端事件时快速恢复供电能力。文中采用了多种智能优化算法(如PSO、MPSO、TACPSO、SOA、GA等)进行对比分析,验证所提策略的有效性和优越性。研究不仅关注移动储能单元的初始部署位置,还深入探讨其在故障发生后的动态路径规划与电力支援过程,从而全面提升配电网的韧性水平。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、能源系统优化等相关领域的工程技术人员。; 使用场景及目标:①用于科研复现,特别是IEEE顶刊或SCI一区论文中关于配电网韧性、应急电源调度的研究;②支撑电力系统在灾害或故障条件下的恢复力优化设计,提升实际电网应对突发事件的能力;③为移动储能系统在智能配电网中的应用提供理论依据和技术支持。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析,重点关注目标函数建模、约束条件设置以及智能算法的实现细节。同时推荐参考文中提及的MPS预配置与动态调度上下两部分,系统掌握完整的技术路线,并可通过替换不同算法或测试系统进一步拓展研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值