第二周作业

1. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例。


grep: 用于在文本中搜索指定模式的工具。它支持使用正则表达式进行高级搜索。

 例子:grep '/sbin' test.txt

 sed: 流编辑器,用于在文本流中进行文本替换、删除、插入等操作。它可以在不修改原始文件的情况下对文本进行修改。

 例子:sed 's/\/sbin/print/' test.txt 

 awk: 用于对文本进行处理和报告的强大工具。它支持自定义的文本处理规则和操作。

 例子:awk -F ":" '{print $1}' /etc/passwd 

 cut: 用于从文本中剪切出指定字段或列的工具。 

 例子:ip addr|grep 'link'|head -1|cut -d':' -f2 

 sort: 对文本进行排序的工具,可以按行、按字段等进行排序。 

 例子:echo "5 3 1 4 2" | tr ' ' '\n' | sort -n 

 uniq: 用于从排序后的文本中删除重复的行。 

 例子:echo "5 3 1 4 2 4 2" | tr ' ' '\n' | sort -n|uniq 

 tr: 用于转换或删除文本中的字符。

 例子:echo "5 3 1 4 2 4 2" | tr ' ' '\n' 

 head 和 tail: 分别用于显示文本的开头几行和末尾几行。

例子:echo "5 3 1 4 2 4 2" | tr ' ' '\n'| head -1 

 cat: 将文件连接到标准输出或文件的工具,通常用于查看文件内容。

 例子:cat test.txt wc: 统计文本文件的行数、字数和字符数。 

 例子:echo "5 3 1 4 2 4 2" | tr ' ' '\n'|wc -l 

 find: find 命令用于在文件系统中查找文件和目录。虽然它主要用于查找文件,但也可以结合其他命令和管道来搜索文件内容。 

 例子:find / -name xx.sh 

 which:查找文件,多用于查找命令来源 

 例子:which ls 

 whereis:查找工具速度最快的,只能查找二进制程序、文档和源码 

 例子:whereis touch 

 printf:一个用于格式化输出文本的命令。它可以按照指定的格式将文本输出到标准输出或指定的文件中 

 例子:printf "Name: %s\tAge: %d\n" "John" 25

2. 总结文本处理的grep命令相关的基本正则和扩展正则表达式。

  基本正则表达式 :

 .: 匹配任意单个字符,除了换行符。 

[]: 匹配括号内的任意一个字符。 

 ^: 匹配行首的位置。 

 $: 匹配行尾的位置。 

 *: 匹配其前面的字符出现 0 次或多次。 

 \: 转义字符,用于匹配特殊字符。

扩展正则表达式 :

+: 匹配其前面的字符出现 1 次或多次。

?: 匹配其前面的字符出现 0 次或 1 次。

|: 或操作,匹配两个或多个模式中的一个。

(): 分组,用于限制或扩展模式的范围。

{}: 限定符,用于指定重复次数。

[]: 字符类,用于匹配括号内的任意一个字符。


3. 总结变量命名规则,不同类型变量(环境变量,位置变量,只读变量,局部变量,状态变量)如何使用。

变量命令规则:


命名要求

区分大小写不能使程序中的保留字和内置变量:如:if,for

只能使用数字、字母及下划线,且不能以数字开头,不支持短横线

变量名大写

局部变量小写

函数名小写

大驼峰StudentFirstName,由多个单词组成,且每个单词的首字母是大写,其它小写

小驼峰studentFirstName,由多个单词组成,第一个单词的首字母小写,后续每个单词的首字母是大写,其它小写

下划线:student_name

环境变量

可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程.

export name=VALUE

位置变量

位置变量:在bash shell中内置的变量,在脚本代码中调用通过命令行传递给脚本的参数

$1,$2, ….. 对应第1个、第2个等参数

$0命令本身,包括路径

$*传递给脚本的所有参数,全部参数合为一个字符串

$@传递给脚本的所有参数,每个参数为独立字符串

$#传递给脚本的参数的个数

只读变量

只读变量:只能声明定义,但后续不能修改和删除,即常量

声明只读变量:

readonly name

查看只读变量:

readonly -p

局部变量

定义在函数内部的变量

状态变量

进程执行后,将使用变量$?保存状态码的相关数字,不同的值反应成功或失败,$?取值范例0-255

$?的值为0 #代表成功

$?的值是1到255 #代表失败

在脚本中使用以下命令自定义退出状态码

exit [n]

 4. 通过shell编程完成,30鸡和兔的头,80鸡和兔的脚,分别有几只鸡,几只兔? 

for i in {1..30}

do

if (( i2+(30-i)4 == 80 )); then

echo "鸡的数量为: $i"

echo "兔子的数量为:" $((30-i))

fi

done

5. 结合编程的for循环,条件测试,条件组合,完成批量创建100个用户, 1)for遍历1..1002)先id判断是否存在3)用户存在则说明存在,用户不存在则添加用户并说明已添加。

1)for遍历1..100'

2)先id判断是否存在

3)用户存在则说明存在,用户不存在则添加用户并说明已添加。  

#!/bin/bash

name=user

for i in {1..100};do id $name$i &> /dev/null

if [ $? -eq 0 ];then

 echo "$name$i已存在"

else

 useradd -d /home/$name$i -s /bin/bash $name$i && echo "$name$i已创建"

fi

done

6. 磁盘存储术语总结: head, track, sector, sylinder. 

head-磁头 track-磁道 sector-扇区 sylinder-柱面

7. 总结MBR,GPT结构。


MBR: 使用32位表示扇区数,分区不超过2T

0磁道0扇区:512bytes

446bytes: boot loader 启动相关

64bytes:分区表,其中每16bytes标识一个分区

2bytes: 55AA,标识位

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

MBR分区:主和扩展分区对应的1 -- 4,/dev/sda3,逻辑分区从5开始,/dev/sda5

GPT: 支持128个分区,使用64位,支持8Z(512Byte/block )- 64Z (4096Byte/block)

使用128位UUID(Universally Unique Identifier)表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC柠验位

 8. 总结学过的分区,文件系统管理,SWAP管理相关的命令及选项,示例fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff

fidk

fdisk -l [-u] [device ... ] 查看分区

fdisk [device ... ] 管理MBR分区

gdisk [device ... ] 类fdisk 的GPT分区工具

子命令:

p 分区列表

t 更改分区类型

n 创建新分区

d 删除分区

V 校验分区

u 转换单位

w 保存并退出

q 不保存并退出

查看内核是否已经识别新的分区

cat /proc/partitions

CentOS 7,8同步分区表:

partprobe

parted

格式:

parted [选项] ... [设备 [命令 [参数] ... ] ... ]

范例:

parted /dev/sdb mklabel gpt|msdos

parted /dev/sdb print

parted /dev/sdb mkpart primary 1 200(默认M)

parted /dev/sdb rm 1

parted -1 列出所有硬盘分区信息

mkfs

是分区创建文件格式 mkfs .ext4 /dev/sda mkfs .xfs /dev/sda

xfs_info 查看xfs文件信息

mount -a 自动挂载文件系统 mount -r 只读挂载

umount 卸载挂载点

swapon 启用swap分区

swapoff 禁用swap分区

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容

  • 一、. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示...
    周泰民ztm阅读 83评论 0 0
  • 1. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例...
    14fed2575abf阅读 40评论 0 0
  • 1. 总结linux安全模型 认证:验证用户身份 授权:不同用户设置不同权限 审计 2. 总结学过的权限,属性及A...
    浑树阅读 162评论 0 0
  • 一、总结vim的三种模式的切换,配置vimrc实现写脚本自动生成注释. 答:vim的三种模式有命令模式、插入模式和...
    早日开除老板阅读 47评论 0 0
  • 亲爱的小伙伴们,作业来一波吧 ###第一周作业,请同学们完成作业后,将本周博客作业提交地址:https://www...
    散步的狮子阅读 86评论 0 0