homework 4

本文详细介绍了Linux系统管理与运维的多个方面,包括使用`while read`处理`/etc/passwd`计算用户id总和、数组与字符串处理、进程与线程的区别、内存管理、IPC与RPC通信方式、秒杀并发问题解决方案、内核设计流派、启动流程及GRUB工作原理、服务脚本编写、systemd配置文件解析、启动流程、awk工具详解、数组与函数操作、CA管理工具和加密算法。内容深入浅出,旨在帮助读者全面理解Linux系统的运维操作。
摘要由CSDN通过智能技术生成

一、使用while read line和/etc/passwd,计算用户id总和

while read 遍历文本或文件的每一行

/etc/passwd文件中,以冒号分隔的第三列就是用户id信息

方法一:while read 定义 line 循环

sum=0;while read line;do let sum+=$line;done <<< $(awk -F: '{print $3}' /etc/passwd); echo $sum

方法二:写一个脚本定义 line 叠加

二、总结索引数组和关联数组,字符串处理,高级变量使用及示例。

数组名和索引:

# 索引的编号从0开始,属于数值索引

# 索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash 4.0版本之后开始支持

# bash的数组支持稀疏格式(索引不连续)

声明数组:                

1) declare  -a  ARRAY_NAME        #普通数组可以不事先声明,直接使用

2) declare  -A  ARRAY_NAME        #关联数组必须先声明,再使用

注意:两者不可相互转换

# 可通过declare -a查看所有已定义的索引数组

# 可通过declare -A查看所有已定义的关联数组

1)索引数组

索引的编号从0开始,属于数值索引
索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash 4.0版本之后开始支持
bash的数组支持稀疏格式(索引不连续)
索引数组可通过declare -a array_name定义索引数据,也可不定义直接使用如:arr1=({1..10})
引用数组通过${array_name[index]}方式引用

索引数组可通过array_name[index]=new_value方式修改值

通过unset array_name[index]可删除数组元素,索引数组删除部分元素后会导致稀疏格式(索引不连续)

通过unset array_name将删除整个数组

取出数组的所有值,索引5以后的值,和索引0开始,往后取3个值 

2)关联数组

#关联数组必须先声明再使用
declare -A ARRAY_NAME

不声明直接使用会报语法错误

关联数组赋值和引用

3)字符串处理

基于偏移量取字符串

基于模式取子串

查找替换

查找删除

大小写转换

4)高级变量使用

age变量赋值时若name有值则age的值就是name的值,当name不存在时就是-右侧的字符串

若此时name值为空,则age依旧是name变量的值,就是空

三、求10个随机数的最大值与最小值。

编辑一个取10个随机数的最大值与最小值的脚本:vim run.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值