Shell学习笔记

本文介绍了Shell中的各种实用命令和脚本技巧,包括单双引号的区别、整数运算、命令替换、变量替换等内容,并详细讲解了find命令的用法、xargs命令的作用、cron与crontab的应用场景及注意事项。

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

单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。


$(( ))整数运算 
$( ) 命令替换,类似``
${ } 变量替换


$# 参数个数
$@,$* 都表示全部参数($0除外)


find 
-perm:按照文件权限来查找文件。
-mtime -n +n : -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
-newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件
-type 查找某一类型的文件
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。


xargs 
作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。


cron和crontab
c r o n是系统主要的调度进程,可以在无需人工干预的情况下运行作业。c r o n t a b命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个c r o n t a b文件来保存调度信息。可以使用它运行任意一个s h e l l脚本或某个命令,每小时运行一次,或一周三次,这完全取决于你。每一个用户都可以有自己的c r o n t a b文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。系统管理员是通过c r o n . d e n y和c r o n . a l l o w这两个文件来禁止或允许用户拥有自己的c r o n t a b文件。
c r o n t a b的格式:
分< >时< >日< >月< >星期< >要运行的命令
30 21 * * * /apps/bin/cleanup.sh
表示每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h


&命令
在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。
不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command >out.file 2>&1 &
2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。


nohup
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用n o h u p命令。该命令可以在你退出帐户之后继续运行相应的进程。N o h u p就是不挂起的意思( no hang up)。


awk [-F fild-separator] 'commands' input-file(s)
AWK一次处理是一行, 而一次中处理的最小单位是一个区域
另外还有3个变量, NF: 每一行处理的字段数, NR 目前处理到第几行, FS 目前的分隔符
$ awk 'BEGIN {print "Name\n--------"}{print $1} END {print "end-of-report"}' grade.txt


${#var[@]} 
返回数组元素的个数


mv $i  ${i%sh}shell 
${i%sh} —— 拿掉$i最后的“sh”


awk内建变量示例详解之NR、FNR、NF
  NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。
  在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。
  NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。


vi复制一行:yy
粘贴:p
删除一行:dd
内容概要:本文档详细介绍了基于事件触发扩展状态观测器(ESO)的分布式非线性车辆队列控制系统的实现。该系统由N+1辆车组成(1个领头车和N个跟随车),每辆车具有非线性动力学模型,考虑了空气阻力、滚动阻力等非线性因素及参数不确定性和外部扰动。通过事件触发ESO估计总扰动,基于动态面控制方法设计分布式控制律,并引入事件触发机制以减少通信和计算负担。系统还包含仿真主循环、结果可视化等功能模块。该实现严格遵循论文所述方法,验证了观测误差有界性、间距误差收敛性等核心结论。 适合人群:具备一定编程基础,对非线性系统控制、事件触发机制、扩展状态观测器等有一定了解的研发人员和研究人员。 使用场景及目标:①研究分布式非线性车辆队列控制系统的理论与实现;②理解事件触发机制如何减少通信和计算负担;③掌握扩展状态观测器在非线性系统中的应用;④学习动态面控制方法的设计与实现。 其他说明:本文档不仅提供了详细的代码实现,还对每个模块进行了深入解析,包括非线性建模优势、ESO核心优势、动态面控制与传统反步法对比、事件触发机制优化等方面。此外,文档还实现了论文中的稳定性分析,通过数值仿真验证了论文的核心结论,确保了系统的稳定性和有效性。建议读者在学习过程中结合代码进行实践,并关注各个模块之间的联系与相互作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值