第二周作业 N74004-上海-章毅天

1. 总结linux安全模型

认证:验证用户身份

授权:不同用户设置不同权限

审计

2. 总结学过的权限,属性及ACL相关命令及选项,示例。

rwxs  chown chgrp chmod setfacl(设置) getfacl(查看)

3. 结合vim几种模式,学会使用vim几个常见操作。

1)如何打开文件。并在打开文件(命令模式)之后如何退出文件。

vim+文件名 esc:wq

2)打开文件(命令模式)之后,进入插入模式。并在插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。esc+q

3)打开文件(命令模式)之后,进入插入模式,编写一段话,"马哥出品,必属精品", 之后从插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。

vim +文件名

i

"马哥出品,必属精品"

esc

:wq

4)使用cat命令验证文件内容,是刚刚自己写的内容。

cat +文件名

5)(可选),命令模式下,光标在单词,句子上进行前后,上下跳转。行复制粘贴。行删除。

行删除 dd 

回退u

向后移动一个字符 ctrl+b

向前移动一个字符 ctrl+f

移动到行首 ctrl+a

移动到行尾 ctrl+e

从光标处剪切到行尾 ctrl+k

从光标处剪切到词尾 alt+b

从光标剪切到单词的开头:alt+backspace

从光标处剪切到前一个空格:ctrl+w

粘贴最后剪切的文本:ctrl+y

循环并粘贴先前剪切的文本:alt+y

循环并粘贴先前命令的最后一个参数:alt+.

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

grep 查找 yum install list | grep httpd

 sed 10 | sed -n ‘1~2p’

awk  ‘{print “hello.nwk” }’

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

. 任意单个字符

【wang】指定范围的字符

【^wang】不在指定范围的字符

【:alnum:】字母和数字

【:alpha:】代表任何英文大小写字符

【:lower:】小写字母

【:upper:】大写字母

【:blank:】空白字符

【:space:】水平和垂直的空白字符

【:cntrl:】不可打印的控制字符 退格和删除等

【:digit:】十进制数字

【:xdigit:】十六进制数字

【:graph:】可打印的非空白字符

【:print:】可打印的字符

【:punct:】标点符号

* 匹配前面字符任意次

?0或1次

+1次或多次

{n}匹配n次

{m,n}至少m,至多n次

^ 行首

$行尾

\<,\b 语首

\>,\b 语尾

()分组

a|b a或者b

c|cat c或者cat

(C|c)at C或cat


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

(1)变量名必须有一定意义,并且意义准确。

(2)不建议大小写混用。

(3)在失去意义的情况下,尽量使用较短的变量名,用时暂时存储一个计算数值,把变量命名为tmp_count显然要比this_is_a_temperary_counter好

(4)不采用匈牙利命名法表示变量的类型

(5)函数名应该以动词开头,因为函数是一组具有特定功能的语句块

(6)尽量避免使用全局变量

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

read -p "input the sumheads:"head

read -p "input the sumfeet:"feet

[["$head"=~^[1`9][0`9]*$]]&&[["$feet"=~^[1`9][0`9]*$]]||{echo wrong format:exit}

rabbits=$[$[feet/2]-$head]

chicken=$[$head-$rabbits]

c=$[$chiken*2]

h=$[$rabbits*4]

tmp=$[$[$c+$h]/$feet]

echo chiken=$chiken

echo rabbit=$rabbits

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

1)for遍历1..100

for i in {1...100}

do

echo $i

done

2)先id判断是否存在

id +username

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

#!/bin/bash

read -p "please input a username:"

if id -u $username >/dev/null 2>&1;then

        echo "user exists"

else

        echo "user does not exist"

fi

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

head:磁头

track:磁道

sector:扇区

cylinder:柱面

10. 总结MBR,GPT结构。

MBR 即主引导记录 其分区不超过2T 只能存储4个分区表条目

GPT突破了MBR的限制 能储存多于4个分区表条目 并且允许有128个主分区可以对超过2T的磁盘进行分区

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

fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff

fdisk -l 查看现在的分区

fdisk +磁盘目录 分区

n

两个回车

+40G再按两个回车

fdisk -l

save后退出

mkfs 建立文件系统 等于Windows中的格式化创建简单卷

mount +分区目录挂载

12. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。

raid0 至少需要两块硬盘,如果一块硬盘损坏则全部的硬盘会全部损坏,容量是所有硬盘容量的总和 读写能力成倍提升。

raid1 镜像至少两块硬盘容量只有一块硬盘的容量 但是另外一个硬盘为备份 读能力提升 写能力下降

raid5 校验区保存在每个磁盘上 读写性能有所提升 最少三块硬盘 可用磁盘空间-1 允许最多一块硬盘损坏。

raid10 由raid0和raid1组成两组raid1组成raid0至少四块硬盘

raid01 由raid1和raid0组成两组raid0组成raid1至少四块硬盘

13. 完成不影响业务对LVM磁盘扩容及缩容示例。

扩容:

pvcreate /dev/sdd

pvs

pvdisplay

vgextend -r -L +15G /dev/myvg/mylv

lvs

lvdisplay

df-h

resize2fs /dev/myvg/mylv

缩减:

umount /mnt/mylvm

fsck -f /dev/myvg/mylv

resize2fs /dev/myvg/mylv 10G

lvreduce -L 10G /dev/myvg/mylv

mount -a 

df -h

lvdisplay

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