一:简答
1.1:centos6与7启动流程
前五步相同:
Centos6 | Centos7 |
---|---|
1.开机 | 1.开机 |
2.bios开机自检 | 2.bios开机自检 |
3.MBR引导 | 3.MBR引导 |
4.GRUB菜单 选择不同内核 CentOS6进入单用户模式 | 4.GRUB菜单 选择不同内核 CentOS7进入单用户模式 |
5.加载内核 /boot加载到内存 | 5.加载内核 /boot加载到内存 |
6.运行INIT进程 CentOS6第一个进程 | 6.运行systemd进程 读取第一个运行程序 ps -ef |
7.读取/etc/inittab | 7.读取运行级别 /etc/systemd/system/ |
8.串行 读取/etc/rc.sysinit 初始化系统 设置主机名 ip地址 | 8.并行 初始化系统/etc/systemd/system |
9.根据运行级别启动相应脚本软件(串行) | 9.启动服务 |
10.启动minggetty登录界面 运行login | 10.启动getty登录界面 运行login |
1.2:centos6与7运行级别
Centos 6 | Centos 7 | |
---|---|---|
0 | 关机 | 关机 poweroff.target |
1 | 单用户 | 救援模式 rescue.target |
2 | 没有网络的多用户 | 多用户模式 multi-user.target |
3 | 完全多用户 | 多用户模式 multi-user.target |
4 | 待开发 保留 | 多用户模式 multi-user.target |
5 | 图形界面模式 | 图形界面模式 graphical.target |
6 | 重启 | 重启 reboot.target |
1.3:什么是inode,什么是block
含义:
inode (index node)
1.索引节点inode号码
2.inode空间 存放文件属性信息(大小 所有者 权限 文件类型 硬连接数 时间)和block的位置,但是文件名没有存放在这里
block 数据块
block 用来存放文件的内容
特点:
inode: (ls -i查看目录inode号)
1.256字节 (磁盘分区大于500MB)
2.inode在同一个分区(文件系统)中是唯一的
3.创建1个非空的文件需要占用1个inode和至少一个block
block:
1.block大小是4K
2.文件比较小的,剩余的将无法使用
3.文件比较大的,占用多个block
查看整体情况:
block 一共有多 还剩多少(查看磁盘空间使用情况)
df -h 以人类可读的形式
inode一共有多少 还剩多少
df -i inode剩余
1.4:写出20个系统命令,并简述作用
ls 全拼list,功能是列出目录的内容及其内容属性信息。
cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录。
cp 全拼copy,其功能为复制文件或目录。
find 查找的意思,用于查找目录及目录下的文件。
mkdir 全拼make directories,其功能是创建目录。
mv 全拼move,其功能是移动或重命名文件。
pwd 全拼print working directory,其功能是显示当前工作目录的绝对路径。
rm 全拼remove,其功能是删除一个或多个文件或目录。
touch 创建新的空文件,改变已有文件的时间戳属性。
tree 功能是以树形结构显示目录下的内容。
more 分页显示文件内容。
less 分页显示文件内容,more命令的相反用法。
head 显示文件内容的头部。
tail 显示文件内容的尾部。
cut 将文件的每一行按指定分隔符分割并输出。
uname 显示操作系统相关信息的命令。
hostname 显示或者设置当前系统的主机名。
chattr 改变文件的扩展属性。
lsattr 查看文件扩展属性。
file 显示文件的类型。
1.5: 软硬链接区别
如何创建:
硬链接 ln
软链接 ln -s
含义:
硬链接ln:
在同一分区中inode号码相同的,节点相同的文件,超市前后门(多个入口)
软链接:
相当于快捷方式,存放存放源文件的位置,inode节点号与源文件不同
特点:
1.不能对目录创建硬链接,但可以创建软链接,对目录的软链接会被经常用到
2.软链接可以跨文件系统,硬链接不可以跨文件系统
怎么没的 (源文件 软链接 硬链接 与删除)
1.删除软链接文件,对源文件及硬链接文件没有影响
2.删除文件的硬链接文件,对源文及软链接文件没有影响
3.删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(闪烁)
4.同时删除源文及硬链接文件,整个文件才会被真正的删除
1.6:raid0 raid1特点
Raid级别 | 需要几块盘 | 存取速度 | 容量 | 冗余 | 安全性 | 使用场景 | 举例 |
---|---|---|---|---|---|---|---|
Raid0 | 至少1快 | 读写都快 | 所有硬盘容量的总和 | 0 | 差,损失1块全不能用 | 不要安全只求速度 | 数据块从库,存储从库 |
Raid1 | 只能2块 | 写入慢,读取正ok | 总量的一半 | 100% | 好,坏1块还可以使用,有备份 | 只追求安全性,对速度无要求 | 系统盘,监控服务器 |
Raid5 | 最少3块 | 写入慢,读取正常 | 损失一块盘容量 | 有1块盘 | 正常,最多坏1块 | 对速度安全,对速度要求不高 | 普遍数据库,存储访问量不高 |
Raid10 | 最少4块 | 读写都块 | 总量的一半 | 可以损坏一半 | 好,坏1块还可以使用,有备份 | 安全和性能都要 | 高并发或高访问量,数据库主库 存储 |
1.7:磁盘分区常见方案
企业磁盘分区规则 | /boot引导分区 | swap交换分区 | / 分区 | /data分区 |
---|---|---|---|---|
通常情况 | 200M~1G | 小于8G给1.5倍,大于8G 最多给8G | 剩余多少给多少 | |
数据重要的情况 | 200M~1G | 小于8G给1.5倍,大于8G 最多给8G | 20~200G | 余下全部分给/data |
大网站数据重要的情况 | 200M~1G | 小于8G给1.5倍,大于8G 最多给8G | 20~200G | 剩余保留,谁用谁分 |
1.8: 单引号,双引号,不加引号区别
区别 | |
---|---|
单引号 | 所见即所得 |
双引号 | 解析命令,但是需要与或$( )结合 |
不加引号 | 与双引号类似,支持花括号(通配符) |
反引号 | == $( )与后者作用相同,与双引号类似解析命令 |
二:填空
2.1:写出一下特殊符号的含义(一种即可)
#
配置文件注释
root用户命令提示符
;
命令结束,连续不同命令的分隔符
!
逻辑运算中的“非”(not)
~ 当前用户家目录
.(点) 当前目录
.. 上一级目录
\- 切换上一次的目录
\` ` 返回上一级目录
\> 标准输出重定向,先清空文件内容再写入
\>> 标准输出追加重定向,追加内容到文件尾部
2> 标准错误输出重定向,先清空文件然后把错误信息写入文件中
2>> 标准追加错误输出重定向, 把错误信息追加到文件结尾
2.2:写出一下正则表达式的含义
. 匹配任意字符 类似通配符的问号 不匹配空行
* 逐行匹配,前1个字符连续出现0次或0次以上
.* 表示所有内容
^ 以...开头的行
$ 以...结尾的行
^$ 空行
[ ] 匹配[]集合内的任意一个字符
[^ ] 取反,不包含[]集合内的任意一个字符
2.3:写出一下扩展正则表达式的含义
+ 匹配前一个字符1次或1次以上
? 匹配前一个字符0次或1次
| 或者
{ } 匹配字符最少几次,最多几次
三:命令
3.1:找出/etc/passwd文件中以root开头,以bash结尾的行,并显示行号
grep -n '^root.*bash$' /etc/passwd
3.2:匹配file文件中foo那行及上下5行、显示foo及前5行、显示foo及后5行
grep -C 5 'foo' file 上下五行
grep -B 5 'foo' file 上五行
grep -A 5 'foo' file 下五行
3.3:打印file.txt文件中的第10行
sed -n '10p' file.txt
3.4:查询文件oldboy.txt的第4-6行
sed -n '4,6p' file.txt
3.5:删除文件oldboy.txt中所有带有数字的行
sed -i '/[0-9]/d' file.txt
3.6:将文件中的oldboy全部替换为oldgirl,同时将49000448改为31333741。
sed -e 's#oldboy#oldgirl#g;s#49000448#31333741#g' file.txt
3.7:把/目录下所有以.txt结尾的文件中包含oldgirl的字符串全部替换为oldboy.
grep 'oldgirl' `find /-type f -name '*.txt'`|sed -i 's#oldgirl#oldboy#g'
3.8:使用awk取出/etc/passwd第一列数据也就是取出
用户名。
awk -F: '{print $1}' /etc/passwd
请看下题:
cat reg.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 0042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
3.9:用awk获取reg.txt文件中第三行的倒数第二列字段
awk 'NR==3{print $(NF-1)}' reg.txt
3.10:显示文件reg.txt所有以41开头的ID号码的人的全名和ID号码
awk '$3~/^41/{print $1,$2,$3}' reg.txt
3.11:显示小雨的姓名与id号
awk '$2~/Xiaoyu/{print $1,$2,$3}' reg.txt
3.12:显示Xiaoyu的捐款.每个值时都有以520135
awk '$NF{print $4}' reg.txt |tr ':' '$'
awk -F'[: ]+' -vOFS="$" '$2~/Xiaoyu/{print "$"$4,$5,$6}' reg.txt
awk -F'[: ]+' '$2~/Xiaoyu/{gsub(/:/,"$");print $NF}' reg.txt
3.13:计算第一次捐款的总额
awk -F: '{i=i+$2}END{print i}' reg.txt
3.14:使用awk计算0加到100
seq 100|awk '{i=i+$1}END{print i}'
3.15:计算/etc/ssh/sshd.config文件中所有以#开头的行数
awk '$1~/^#/{i=i+1}END{print i}' /etc/ssh/sshd_config
3.16:取出/etc/fstab 权限
16777282 -rw-r--r--. 1 root root 501 Mar 26 13:52 /etc/fstab
ll -id /etc/fstab |awk -F'[ .]' '{print $2}'
3.17:查找/oldboy下最近7天修改过、大于10k,小于10M的文件复制到/tmp下(两种方法)
find /tmp/ -type f -size +1k -size -10M -mtime -7 |xargs -i cp {} /tmp/
find /tmp/ -type f -size +1k -size -10M -mtime -7 -exec cp {} /tmp/ \;
\cp `find /tmp/ -type f -size +1k -size -10M -mtime -7` /tmp/
3.18:调换/etc/passwd 第一列和最后一列内容(至少2种方法)
abc:x:1010:1000::/home/abc:/bin/bash
awk -F: -vOFS=":" '{u=$1;$1=$NF;$NF=u;print $0}' /etc/passwd
sed -r 's#(^.*:)(.*)(/.*)#\3 \1#g' /etc/passwd
3.19:查找/etc下以.conf结尾的文件并以时间命名打包到/tmp下(两种方法)
find /etc/ -type f -name '*.conf' -exec tar zcf /tmp/a.tar.gz {} +
find /etc/ -type f -name '*.conf'|xargs tar zcf /tmp/a.tar.gz {} +
tar zcf /tmp/.a.tar.gz `find /etc/ -type f -name '*.conf'`
3.20:取ip地址(三种方法)
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
ip a s eth0|sed -nr '3s#^.*t (.*)/.*#\1#gp' #用sed
ip a s eth0|awk -F"[ /]+" 'NR==3{print $3}' #用awk
ip a s eth0|sed -n '3p'|awk -F'[ /]+' '{print$3}' #sed+awk
ip a s eth0|grep 'inet '|sed -r 's#^.*t (.*)/.*#\1#g' #grep+sed
ip a s eth0|grep 'inet '|awk -F'[ /]+' '{print $3}' #grep+awk
3.21:找出/oldboy下面以.txt结尾的文件把里面的oldboy替换为oldgirl(三种方法)
sed -i 's#oldboy#oldgirl#g' `find /oldboy/ -type f -name '*.txt'`
awk 'gsub(/oldboy/,"oldgirl"){print $0}' `find /oldboy/ -type f -name '*.txt'`
grep 'oldboy' `find /oldboy/ -type f -name '*.txt'`|sed 's#oldboy#oldgirl#g'
四:翻译
You have mail in /var/spool/mail/root
你有一封来自此目录的邮件
Can't open file for writing
不能打开文件修改
unexpected EOF while looking for matching `"'
找不到符号""
Name or service not known
找不到域名
user 'oldboy' already exists
oldboy用户已存在