第二周

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

文本处理命令

  • cat 用来展示文本
  • tac 逆向的展示文本
  • rev 将每一行文字逆向展示
  • hexdump 用来查看二进制文件的内容
  • more/less 分页查看文本
  • head/tail 开头和末尾。 tail -f常被用来追踪更新状。 head -n +k 和 tail -n -k 分别代表了我要看前k行,和我要看倒数k行。head -n -k意思是,除了倒数k行,其他都显示,而tail -n +k 指的是 从第k行开始展示。
  • cut 按列展示。 head/tail可以用来处理行,而cut可以用来处理列。-d 用来指明分隔符,而-f用来指明第几列。
  • paste 用来展示多个文件。会合并每一行展示。 注意cat会分上下不同行展示。

文本分析命令

  • wc 用来计数
  • sort -d 还是分隔符 -k: 用哪一个来判别 -n:数字大小
  • uniq -c 每行的次数加行的内容 -d:出现过n次的行 -u:只出现过一次的行
  • diff 统计不一样的地方(每一行比较)
  • tr 可以用来替换字符

文件查找工具

  • xargs xargs cmd arg 就是xargs动态生成了cmd的参数 -nx可以表达为1个一行,比如需要add user,一个个添加,你就可以在后面加个 -n1
  • locate 文件搜索,速度非常快。但是是在数据库里搜索的,查不到刚新建的文件。适合用来搜索比较固定的文件。
  • find 文件搜索,可以指定目录,如果不指定就是在当前目录下,而且默认递归。
    其中注意 -size检索有点怪,他会返回一个(k-1,k] 区间的文件。-k 会返回[0,k-1], +k会返回(k, +limit)
  • fls可以把查找的文件输出到一个file里 delete可以把找到的文件全部删除,但这是一个非常危险的操作。ok可以配合别的命令一起使用,例如 find -name "*.txt" -ok cp {} /opt ; 这里 {} 代表了find命令找到的文件,而 ; 是提示符 -exec是拷贝的时候不会再问你y不y了。

文件处理三剑客

grep: 过滤文本,把特定的行挑选出来。-m 匹配m次后停止 -v取反 -I 大小写不敏感
sed: 也支持正则表达式。非交互式地修改文件。也可以像grep一样过滤文件。sed的行为是,读取一行处理一行,并且sed在替换方面功能比较强。

文本格式化(printf)

相当于增强版的echo。可以把输出的结果进行格式化,

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

grep默认就支持正则表达式,-E可以使用扩展正则表达式,扩展正则表达式的好处是可以不用加繁琐的‘\’来表明这个符号是特有的符号

在记录正则表达式和拓展表达式之前,先回顾下wildcard的用法。

  • *代表任何的字符
  • ? 代表单个字符
  • [0-9] 代表任何从0-9的字符

正则表达式(扩展):

  • .会匹配任意单个字符
  • *贪婪模式
  • [] 里面选择一个。比如[wang] [1-6]
  • ? 0 or 1
  • + 最少1次
  • {m,n} m到n次。m和n可以被省略,变成一个的单传的上界或者下界
  • ^/$ 分别代表行首或者行尾
  • <> 用来匹配单词
  • () 用来分组
  • | or

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

SHELL中所有的变量都被认为是字符。
变量命名规则:

  • 区分大小写
  • 不能用内置变量
  • 数字字母下划线,不能以数字开头

不同种类的变量:

  • 环境变量: 允许在子进程中使用 export
  • 只读变量: 其实就是常量
  • 位置变量: 在脚本代码中调用通过命令行传递给脚本的参数
  • 状态变量: 退出状态码变量 $?, 注意这里记录的是最后一个命令的退出状况。
  • 局部变量: 只在函数内部中其效果

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

RABBIT.png

5. 结合编程的for循环,条件测试,条件组合,完成批量创建100个用户,

1)for遍历1..100
2)先id判断是否存在
3)用户存在则说明存在,用户不存在则添加用户并说明已添加。


user.png

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

  • head 磁头,用来指向数据的位置。每一个扇区对应了一个head。所以磁头指向同一个位置
  • track 磁道,在盘面上的一圈一圈的轨道。磁盘头可以移到不同的track上来获取不同位置的磁盘信息。编号从里到外0-n
  • sector 扇区 磁盘上的最小单位。
  • cylinder 柱面 所有的同一个磁道的集合。确实是一个柱子的感觉

7. 总结MBR,GPT结构。

  • MBR 不超过2T。但是现在还是在广泛使用中的。一块硬盘最多有4个主分区。也可以3个分区加1个扩展分区(N个逻辑分区)
    0磁道0扇区 512 bytes:
    446: bootloader
    64: 每16个byte识别一个分区
    BIOS

  • GPT 支持128个分区,容量可以达到8Z。自带备份分区表。UEFI

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

fdisk
fdisk -l 来观看目前分区的情况

fdisk-l.png

fdisk + 磁盘来进行交互式操作
fdiskinteract.png
需要注意的是,逻辑分区一定是从5开始的,1-4是预留给主分区和拓展分区的。

parted
很危险的命令,可以直接分区或者删除分区

mkfs

mkfs是用来指定文件系统的命令(格式化分区),图中示例了给/dev/sdb1加上了ext4的文件管理系统
mkfs.png

tune2fs

可以用来看ext系列的分区的属性。
tune2fs.png

xfs_info

可以用来看xfs的分区
xfs_info .png

fsck

mount
新磁盘识别以后,要指定管理系统(fdisk),然后还要指定文件管理系统(mkfs),接下来,需要把这个分区和“/”产生联系,要做到这点就需要挂载。图片里,我们把dev/sdb1挂到了root底下的logs文件夹。需要注意的是,mount的文件夹应该是空的。


mount.png

unmount
取消挂载关系可以用umount,比如如图所示


umount.png

swapon
swap -a 启用swap空间

swapoff
禁用所有swap


swapoff.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容