第二周作业

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

一、文本处理工具

1.查看文本内容 cat        命令格式:cat [OPTION] [FILE]
常见的选项有:
    -E 显示行结束符$
    -A 显示所有控制符
    -n 对显示出的每一行进行编号

示例:

2.逆向显示文本 tac
示例:

3.同一行内容逆向显示(翻面) rev
示例:

4.分页查看文本内容 less        命令格式:less [FILE]
less可以实现分页查看文件,可以在查看文本时使用:
    /文本 搜索文本
    pgup 向上翻页
    pgdn 向下翻页
     q 退出

5.查看文本头部内容 head        命令格式:head [OPTION] [FILE]
常用选项:
    -n#          指定获取前#行
    -#            同上
如果指定位负数则会获取首行到倒数#行

示例:

6.查看文本尾部内容 tail        命令格式:tail [OPTION] [FILE]
常用选项:
    -n#        指定获取后#行
    -#          同上
如果指定为+#则会从#获取到最后一行

示例:

7.按列抽取文本显示 cut        命令格式:cut [OPTION...] [FILE]
常用选项:
    -d .        指定分隔符,默认tab
    -f   #      第几个字段

示例:

8.合并多个文件 paste         命令格式:paste [option] [file..]
常用选项:
    -d .        指定分隔符,默认tab
    -s           所有行合成一行显示

示例:

9.文本排序 sort            命令格式:sort [option] [file]
常用选项:
    -r 执行反方向整理                         
    -R 随机排序
    -n 执行按数字大小整理
    -h 人类可读排序
    -u 合并重复项,即去重
    -t  c    使用c作为字段界定字符

示例:

10.文本去重 uniq        命令格式: uniq [option] [file]
常用选项:
     -c 显示每行重复出现的次数
     -d 仅显示重复过的行
     -u 仅显示不曾重复的行

示例:

  11.文本数据统计 wc   
  常用选项:   
     -l        计数行数
     -w      计数单词总数
     -c       计数字节总数
     -m      计数字符总数

示例:

二、文件查找工具

1. locate:非实时查找

locate查询系统上预建的文件索引数据库/var/lib/mlicate/mlocate.db
索引的构建是在系统较为空闲时进行(很消耗资源),执行updatedb可以更新数据库
特点:
    查找速度快
    模糊查找
    非实时查找
    搜索的是文件的全路径,不仅仅是文件名
    可能只搜索用户具备读取和执行权限的目录

命令格式:locate [option] [PATTERN]
常用选项:
-i        不区分大小写的搜索
-n N   只列举前N个匹配项目
-r        使用基本正则表达式

示例:

2. find:实时查找

find是实时查找工具,通过遍历指定路径完成文件查找
工作特点:
    查找速度略慢
    精确查找
    实时查找
    查找条件丰富
    可能只搜索用户具备读取和执行权限的目录

命令格式:find [OPTION]... [查找路径] [查找条件] [处理动作]
find命令查找条件丰富可以对指定目录进行查找,根据文件名和inode,属主、属组,文件类型,文件大小,时间戳,权限来进行查找

3. 参数替换 xargs
由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs可以读入stdin的数据,许多命令不能解释过多参数,命令执行可能会失败,xargs也可以解决
find经常和xargs命令进行组合

示例:

三、文本处理三剑客

1. grep 文本过滤

grep 命令主要针对文本的(正则表达式)行基于模式进行过滤,文本搜索工具。

命令格式: grep [OPTIONS] PATTREN [FILE]
常见选项:
-m # 匹配#次后停止
-v 显示不被pattren匹配到的行,即取反
-i 忽略大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-A # 某字符后#行
-B # 某字符前#行
-C # 某字符前后#行
-e 实现多个选项间的逻辑or关系
-f file 根据模式文件处理
-r 递归,但不处理软链接
-R 递归,处理软链接

示例:

2. sed 行编辑器
sed是行编辑器,sed是从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行,直到最后一行。

命令格式:sed [OPTION] 'script;script;...' [inputfile]
                  sed  选项  '地址命令;地址命令;...'  文件
常见选项:
    -n 关闭自动打印
    -e 多点编辑
    -f 从指定文件中读取编辑脚本
    -E,-r 使用扩展正则表达式
    -i.bak 备份文件并原处编辑
    -s 将多个文件视为独立文件,而不是单个连续的长文件流

地址格式:
可以使用具体的行数,也可以使用正则表达式

命令:
-p 打印当前模式空间内容,追加到默认输出之后
-d 删除模式空间匹配的行,并立即启用下一轮循环
a[#] text 在指定的行后面追加文本,支持实现多行追加
 i[#] text 在指定行前面插入文本
c[#] text 替换行文本内容
= 为模式空间中的行打印行号
! 模式空间中匹配行取反处理

查找替代:
格式:s/pattern/string/修饰符    也可以使用其他分隔符,如:s@@@ , s###
替换修饰符:
g 行内全部替换
p 显示替换成功的行
w /PATH/FILE 将替换成功的行保存至文件中
I,i 忽略大小写

示例:

三、文本格式化命令 printf

printf 增强版echo,实现丰富的格式化输出,常用于脚本编写中,命令后续的文本内容样式会按照命令中的指定格式打印输出

命令格式:printf  ''指定的格式"  "文本1"  "文本2" ......

常用格式替换符
%s    字符串
%d,%i    十进制整数
%f    浮点格式
%c    ASCII字符
%o    八进制值
%u    不带正负号的十进制值
%x    十六进制值(a-f)
%X   十六进制值(A-F)
%%    表示%本身

常用的转义字符
\a    警告字符
\b    后退
\f    换页
\n    换行
\r    回车
\t    水平制表符
\v    垂直制表符
\    表示\本身

示例:


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

正则表达式的元字符分类:字符匹配,次数匹配,位置锚定,分组

基本正则表达式:

字符匹配
.     匹配任意单个字符(除了\n),可以是一个汉字或其他国家的文字
[]     匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z]
[^]     匹配指定范围外的任意单个字符。示例:[^wanng]
[:alnum:]     字母和数字
[:alpha:]     代表任何英文大小写字符,即A-Z,a-z
[:lower:]     小写字母
[:upper:]     大写字母
[:punct:]     标点符号
[:blank:]     空白字符(空格和制表符)

次数匹配
*           匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
.*          任意长度的任意字符
\?          匹配其前面的字符出现0次或1次,即:可有可无
\+          匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
\{n\}         匹配前面的字符n次
\{m.n\}     匹配前面的字符至少m次,至多n次
\{,n\}         匹配前面的字符至多n次,即:<=n
\{n,\}         匹配前面的字符至少n次,即:>=n

位置锚定
^      行首锚定,用于模式的最左侧
$      行尾锚定,用于模式的最右侧
^PATTREN$     用于匹配模式整行
^$      空行
\<      词首锚定,用于单词模式的左侧
\>      词尾锚定,用于单词模式的右侧
\<PATTERN\>     匹配整个单词

分组
分组:() 将多个字符捆绑在一起,当作一个整体处理
后向引用:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为::\1,\2,\3,...

或者 \|
a\|b      a或b
C\|cat      C或cat
\(C\|c\)at     Cat或cat

扩展正则表达式:
使用扩展正则表达式需要加选项 -E,-r

字符匹配
.  匹配任意单个字符(除了\n),可以是一个汉字或其他国家的文字
[]  匹配指定范围内的任意单个字符,示例:[wang]    [0-9]  [a-z]
[^] 匹配指定范围外的任意单个字符。示例:[^wanng]
[:alnum:]  字母和数字
[:alpha:]  代表任何英文大小写字符,即A-Z,a-z
[:lower:]  小写字母
[:upper:]  大写字母
[:punct:]  标点符号

次数匹配
*      匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
.*      任意长度的任意字符
?      匹配其前面的字符出现0次或1次,即:可有可无
+      匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
{n}    匹配前面的字符n次
{m.n}  匹配前面的字符至少m次,至多n次
{,n}    匹配前面的字符至多n次,即:<=n
{n,}    匹配前面的字符至少n次,即:>=n

位置锚定
^          行首锚定,用于模式的最左侧
$          行尾锚定,用于模式的最右侧
^PATTREN$  用于匹配模式整行
$          空行
\<          词首锚定,用于单词模式的左侧
\>          词尾锚定,用于单词模式的右侧
\ 匹配整个单词

分组其他
()  分组
后向引用:\1, \2, \3, ...注意: \0 表示正则表达式匹配的所有字符

|  或者
a|b        a或b
C|cat      C或cat
(C|c)at    Cat或cat


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

变量命名的规则:
1.区分大小写
2.不能使用程序中方保留字和内置变量。如:if,for等
3.不能使用数字,字母及下划线,且不能以数字开头,不支持短横线 "-",和主机名相反
4.用英文单词命名,并体现出实际作用,不使用简写
5.变量名大写
6.局部变量小写
7.函数名小写

环境变量的使用:
1.环境变量可以使子进程(包括孙子进程)继承父进程的变量,但是父进程不能使用子进程的变量
2.一旦子进程修改从父进程继承的变量,会将新的值传递给孙子进程
变量声明和赋值:
export name=VALUE
declare -x name=VALUE
或者分两步实现
name=VALUE
export name
变量引用:
$name
${name}
删除变量:
unset name

位置变量的使用
在bash shell中内置的变量,在脚本代码中调用通过命令行传递给脚本参数
$1,$2,...     对应第1个,第2个参数
$0    命令本身,包括路径
$*    传递脚本的所有参数,全部参数合为一个字符串
$@    传递给脚本的所有参数,每个参数为独立字符串
$#    传递给脚本的参数个数

只读变量的使用
只能声明定义,后续不能修改和删除,即常量
声明只读变量:
readonly name
declate -r name

状态变量
进程执行后,将使用变量$?来保存状态码的相关数字,不同的值反应成功和失败,$?取值0~255
执行$?返回的值为0代表上一个进程执行成功,若返回的值是1~255则代表上一个执行的进程失败


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




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



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

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


7. 总结MBR,GPT结构。

MBR分区模式:fdisk管理MBR分区,支持最多3个主分区,至少1一个扩展分区,扩展分区内的逻辑分区数字是以5开始,适合于2T以内的磁盘使用

GPT分区模式:gdisk管理GPT分区,支持分128个主分区,适用于存储空间大的硬盘



8. 总结学过的分区,文件系统管理,SWAP管理相关的命令及选项,示例

分区管理:
lsblk:查看本机的硬盘

fdisk [磁盘路径]     进入MBR模式分区
  选项:
    p    打印现有分区
    n    新建分区
    d    删除分区
    w    存盘退出
    q    不存盘退出

  partprobe:将硬盘的分区表与内存同步

文件系统管理:
xfs:SGI,支持最大8EB的文件系统,不支持缩减,只支持扩展
ext4:是ext文件系统的最新版,提供了很多新的特性,包括秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,相对成熟的文件系统

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

推荐阅读更多精彩内容

  • 一、. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示...
    周泰民ztm阅读 83评论 0 0
  • 1. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例...
    大老虎的小绵羊阅读 40评论 0 0
  • 1. 总结linux安全模型 认证:验证用户身份 授权:不同用户设置不同权限 审计 2. 总结学过的权限,属性及A...
    浑树阅读 162评论 0 0
  • 1. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例...
    松_cc86阅读 25评论 0 0
  • 1. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例...
    14fed2575abf阅读 40评论 0 0