第4章 第4周课前测试考试题
4.1 定时任务规则的含义01
第1题 如果在某用户的crontab文件中有以下记录,该行中的命令多久执行一次(RHCE考试题)?( ) 30 4 * * 3 mycmd
A. 每小时。 B. 每周。 C. 每年三月中每小时一次。
解答:每周三的4点30分,执行mycmd。
4.2 定时任务规则的含义02
第2题 如果在某用户的crontab文件中有以下记录,该行中的命令多久执行一次(RHCE考试题)?( )*/5 * * * * mycmd
A. 每5分钟一次。 B. 每小时过5分钟。 C. 不会运行,格式无效。
解答:每隔5分钟,执行mycmd。
4.3 如何书写定时任务
第3题 每隔1分钟,打印一个+号到oldboy.log,请给出crontab完整命令。
解答:
1
2
3
|
crontab
-e
* * * * *
echo
'+'
>>oldboy.log
*
/1
* * * *
echo
'+'
>>oldboy.log
# 等价于上一条命令
|
4.4 定时任务:按小时打包文件
第4题 每隔2个小时将/etc/services文件打包备份到/tmp下(最好每次备份成不同的备份包)。
解答:
(1) 命令行测试
1
2
|
[root@lb01 ~]
# cd /etc
[root@lb01 etc]
# tar zcf /tmp/services_bak_`date +%F-%H`.tar.gz ./services
|
检查
1
2
3
4
|
[root@lb01 etc]
# ll /tmp/services_bak_2016-08-26-23.tar.gz
-rw-r--r-- 1 root root 127304 2016-08-26 23:21
/tmp/services_bak_2016-08-26-23
.
tar
.gz
[root@lb01 etc]
# du -h /tmp/services_bak_2016-08-26-23.tar.gz
128K
/tmp/services_bak_2016-08-26-23
.
tar
.gz
|
(2) 编写脚本
1
2
3
4
5
|
[root@lb01 etc]
# mkdir /server/scripts -p# 规范脚本路径
[root@lb01 scripts]
# vim /server/scripts/services_bak.sh
#/bin/sh
cd
/etc
&& \
/bin/tar
zcf
/tmp/services_bak_
`
date
+%F-%H`.
tar
.gz .
/services
|
(3) 测试脚本
1
2
3
|
[root@lb01 scripts]
# /bin/sh /server/scripts/services_bak.sh
[root@lb01 scripts]
# ll /tmp/services_bak_2016-08-26-23.tar.gz
-rw-r--r-- 1 root root 127304 2016-08-26 23:28
/tmp/services_bak_2016-08-26-23
.
tar
.gz
|
(4) 编辑crontab
1
2
3
|
[root@lb01 scripts]
# crontab -e
## tar file '/etc/services' to /tmp every 2 hours by chendianhu at 2016.6.2 ##
00 *
/2
* * *
/bin/sh
/server/scripts/services_bak
.sh >
/dev/null
2>&1
|
(5) 调试crontab:利用date命令调整时间,最好关闭定时任务的时间同步来做测试
1
2
3
4
|
[root@lb01 scripts]
# date -s "20160827 06:00:00"
Sat Aug 27 06:00:00 CST 2016
[root@lb01 scripts]
# date +%F-%X
2016-08-27-06:00:01
|
4.5 定时任务:打包站点目录
第5题 每天晚上12点,打包站点目录/var/www/html备份到/data目录下(最好每次备份按时间生成不同的备份包)
思路:
(1) 命令行测试
(2) 编写脚本
(3) 测试脚本
(4) 编辑crontab
(5) 调试crontab
解答:
(1) 命令行测试
1
2
3
4
5
6
|
[root@lb01 ~]
# mkdir -p /var/www/html
[root@lb01 ~]
# touch /var/www/html/stu{1..10}.html
[root@lb01 ~]
# cd /var/www/
[root@lb01 www]
# tar zcf /data/html_bak_`date +%F`.tar.gz ./html
[root@lb01 www]
# ll /data/html_bak_2016-08-27.tar.gz
-rw-r--r-- 1 root root 220 2016-08-27 15:26
/data/html_bak_2016-08-27
.
tar
.gz
|
(2) 编写脚本
1
2
3
4
5
|
[root@lb01 www]
# cd /server/scripts/
[root@lb01 scripts]
# vim html_bak.sh
#/bin/sh
cd
/var/www/
&& \
/bin/tar
zcf
/data/html_bak_
`
/bin/date
+%F -d
"-1day"
`.
tar
.gz .
/html
|
(3) 测试脚本
1
2
3
4
|
[root@lb01 scripts]
# /bin/sh html_bak.sh
[root@lb01 scripts]
# ll /data/
总用量 4
-rw-r--r-- 1 root root 220 2016-08-27 15:48 html_bak_2016-08-26.
tar
.gz
|
(4) 编辑crontab
1
2
3
|
[root@lb01 scripts]
# crontab -e
##tar directory '/var/www/html' to /data at 00 hours every night by chendianhu at 2016.6.2##
00 00 * * *
/bin/sh
/server/scripts/html_bak
.sh >
/dev/null
2>&1
|
(5) 调试crontab
1
2
3
4
5
6
7
8
|
[root@lb01 scripts]
# date
2016年 08月 27日 星期六 15:50:08 CST
# 当前日期和时间
[root@lb01 scripts]
# date -s "20160827 23:59:58"
2016年 08月 27日 星期六 23:59:58 CST
# 修改日期和时间
[root@lb01 scripts]
# date
2016年 08月 28日 星期日 00:00:00 CST
# 到达零点
[root@lb01 scripts]
# ll /data/html_bak_2016-08-27.tar.gz # 执行定时任务,打包
-rw-r--r-- 1 root root 220 2016-08-28 00:00
/data/html_bak_2016-08-27
.
tar
.gz
|
4.6 定时任务:提示信息
第6题 每周六、日上午 9:00 和下午14:00 来老男孩这里学习(执行程序/server/script/oldboy.sh 代替学习)。
解答:
(1) 命令行测试
1
2
|
[root@lb01 scripts]
# echo 'go to oldboytaining learning linux'
go to oldboytaining learning linux
|
(2)编写脚本
1
2
3
|
[root@lb01 scripts]
# vim /server/scripts/oldboy.sh
#/bin/sh
echo
'go to oldboytaining learning linux'
>>~
/message
.txt
|
(3) 测试脚本
1
2
3
|
[root@lb01 scripts]
# /bin/sh /server/scripts/oldboy.sh
[root@lb01 scripts]
# cat ~/message.txt
go to oldboytaining learning linux
|
(4) 编辑crontab
1
2
3
|
[root@lb01 scripts]
# crontab -e
##print message at every weeken by chendianhu at 2016.6.2##
00 09,14 * * 0,6
/bin/sh
/server/scripts/oldboy
.sh >
/dev/null
2&>1
|
(5) 调试crontab:调整时间
1
2
|
[root@lb01 scripts]
# date -s "20160828 08:59:59"
[root@lb01 scripts]
# cat ~/message.txt
|
4.7 目录或文件的作用
第7题 请描述下列路径的内容是做什么的?
/etc/sysctl.conf
/etc/rc.local
/etc/hosts
/etc/fstab
/var/log/secure
解答:
文件或目录 作用
/etc/sysctl.conf 优化系统内核参数的文件
/etc/rc.local 存放开机自启动程序命令的文件
/etc/hosts 局域网域名解析文件
/etc/fstab 开机自动挂载文件
/var/log/secure 系统安全日志文件,依赖于rsyglog服务
4.8 正则表达式
第8题 请说出下列 grep 正则表达式的含义
^
$
.(点号)
\
*
\{n,m\}
[^t]
^[^t]
解答:
符号 含义
^ 以……开头,比如^w,代表以w开头
$ 以……结尾,比如w$,代表以w结尾
.(点号) 代表且只能代表任意一个字符
\ 转义字符,使有着特殊意义的字符,脱掉马甲,恢复成正常字符
* 重复0个或多个前面的一个字符,比如:grep -n "a*" oldboy.log
\{n,m\} 重复字符n到m次,比如:grep -n "a\{3,4\}" oldboy.log,重复字符“a”3到4次
[^t] 匹配不包含^后面的任意一个字符,即除了字符t,其它的全部匹配(过滤出来)
^[^t] 匹配以(非字符t)开头的字符
4.9 vi常用命令
第9题 根据中文给出命令
(1) 退出并保存
(2) 退出并强制保存
(3) 强制退出,但不保存
(4) 光标移动到文件的最后一行
(5) 光标移动到文件的第一行
(6) 从光标所在位置将光标移动到当前行的开头
(7) 从光标所在位置将光标移动到当前行的结尾
(8) 取消上一次的动作
(9) 删除一行
(10) 向下搜索
(11) 向上搜索
解答:
命令 作用
:wq 退出并保存
:wq! 退出并强制保存
:q! 强制退出,但不保存
Shift+g(G) 光标移动到文件的最后一行
gg 光标移动到文件的第一行
Shift+6(^) | home | 0 从光标所在位置将光标移动到当前行的开头
Shift+4($) | end | Shift+a 从光标所在位置将光标移动到当前行的结尾
u 取消上一次的动作
dd 删除一行
/char 向下搜索,继续搜索n,反向搜索N
?char 向上搜索, 继续搜索n,反向搜索N
扩展:
命令 功能说明
i 命令模式==>编辑模式,在光标位置前插入字符
a 命令模式==>编辑模式,在光标位置后插入字符
o 命令模式==>编辑模式,在当前行下方插入新的一行,并从行首开始
Esc 编辑模式==>命令模式
:set nu 显示行号
:set nonu 不显示行号
yy 复制光标当前所在行
3yy 复制光标当前所在行以及下面2行,即复制3行的内容
p 粘贴
10dd 删除光标当前所在行,以及下面的两行
4.10 chmod命令修改文件权限
第10题 授权oldboy目录及其子目录755的权限,请给出命令。
思路:
利用chmod命令可以修改文件的权限,加-R参数可以递归修改目录下的文件和子目录的文件权限。
解答:
1
2
3
4
|
[root@oldboy ~]
# chmod -R 755 /oldboy/# -R参数:递归
[root@oldboy ~]
# ls -ld /oldboy/ /oldboy/a/# 验证
drwxr-xr-x. 3 root root 4096 May 11 16:46
/oldboy/
drwxr-xr-x. 3 root root 4096 May 11 16:46
/oldboy/a/
|
总结:
1
2
|
chmod
- change
file
mode bits
#修改文件的权限位
-R, --recursive change files and directories recursively
|
4.11 chown命令修改文件的属主和属组
第11题 把oldboy目录及其子目录的属主改为oldboy,组改为root,请给出命令。
思路:
利用chown命令可以修改文件的属主和属组,加-R参数可以递归修改目录下的文件和子目录的文件属主和属组信息。
解答:
1
2
3
4
5
|
[root@oldboy ~]
# chown -R oldboy.root /oldboy/# -R参数:递归
[root@oldboy ~]
# chown -R oldboy:root /oldboy/# 格式【属主:属组 == 属主.属组】
[root@oldboy ~]
# ls -ld /oldboy/ /oldboy/a/# 验证
drwxr-xr-x. 3 oldboy root 4096 May 11 16:46
/oldboy/
drwxr-xr-x. 3 oldboy root 4096 May 11 16:46
/oldboy/a/
|
总结:
1
2
|
chown
- change
file
owner and group
# 修改文件的属主和属主
|
4.12 考查umask的作用
第12题 描述下umask的作用,并举例。
解答:
umask:权限掩码。作用:配置文件的默认权限。
1. root用户umask值默认为:0022
新建一个文件时,文件的权限肯定是644(666-022)
新建一个目录时,目录的权限肯定是755(777-022)
原因:目录权限755和文件权限644是一个目录或普通文件安全的边界。
1
2
3
4
5
|
[root@oldboy ~]
# touch test.txt# 新建文件
[root@oldboy ~]
# mkdir test# 新建目录
[root@oldboy ~]
# ls -ld test.txt test
drwxr-xr-x. 2 root root 4096 May 11 17:21
test
# 目录默认权限755
-rw-r--r--. 1 root root 0 May 11 17:20
test
.txt
# 文件默认权限644
|
2. 普通用户umask值默认为:0002
新建一个文件时,文件的权限肯定是664(666-002)
新建一个目录时,目录的权限肯定是775(777-002)
原因:普通用户自己创建的文件,属主和属组权限当然可以给大些。
1
2
3
4
5
|
[oldboy@oldboy ~]$
touch
test
.txt
# 新建文件
[oldboy@oldboy ~]$
mkdir
test1
# 新建目录
[oldboy@oldboy ~]$
ls
-ld
test
.txt test1
drwxrwxr-x. 2 oldboy oldboy 4096 May 11 17:15 test1
# 目录默认权限775
-rw-rw-r--. 1 oldboy oldboy 0 May 11 17:15
test
.txt
# 文件默认权限664
|
总结:
1. umask值是可以改的,但一般不改。
2. 文件权限的计算方法有奇偶之分,当umask是偶数时,目录就用777-umask,文件就用666-umask;当umask是奇数时,计算方法如下:
假设umask值为:045(哪个数字位是奇数,就要给这个数字位加1处理)
6 6 6 ==>文件的起始权限值
0 4 5 - ==>umask的值
-----------------
6 2 1 ==>由于umask的最后一位数字是5,所以,在其他用户位要再加1
0 0 1 +
-----------------
6 2 2
3. 目录权限的计算方法无奇偶之分,直接相减即可。
4.13 考查如何添加用户
第13题 添加一个用户oldboy,并指定属于sa组,要求组ID为801,uid为808,并且不建立家目录及禁止其登录。
思路:
先创建用户的属组,再用useradd命令添加用户。
解答:
1
2
3
4
5
6
7
8
9
10
11
|
[root@oldboy ~]
# groupadd -g 801 sa# 先添加sa组,-g指定组ID
[root@oldboy ~]
# useradd -g sa -u 808 -M -s /sbin/nologin oldboy
# -g指定主组,-u指定uid,-M代表不创建家目录,-s指定用户的登录shell
# -G指定所属的附加组,-m代表创建用户的家目录
[root@oldboy ~]
# tail -1 /etc/passwd# 看是否在用户配置文件中有了新用户的记录
oldboy:x:808:801::
/home/oldboy
:
/sbin/nologin
# 可以看到用户的家目录,用户的shell为/sbin/nologin
[root@oldboy ~]
# id oldboy# 看用户的uid,所属组(组uid)
uid=808(oldboy) gid=801(sa)
groups
=801(sa)
[root@oldboy ~]
# ls -ld /home/oldboy# 验证是否创建家目录
ls
: cannot access
/home/oldboy
: No such
file
or directory
|
总结:
1. 用户的登录shell可以用下面这条命令来查看:
1
2
3
4
5
6
7
|
[root@oldboy ~]
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
|
2. id + 用户名:可以看到用户的uid和所属(附加)组的gid
3. useradd命令的常用参数
1
2
3
4
5
6
7
8
9
10
|
useradd
- create a new user or update default new user information
-c, --comment COMMENT
# 描述信息
-d, --home HOME_DIR
# 指定用户的家目录
-e, --expiredate EXPIRE_DATE(YYYY-MM-DD)
# 指定用户的过期时间
-g, --gid GROUP
# 指定用户的主组
-G, --
groups
GROUP1[,GROUP2,...[,GROUPN]]
# 指定用户的附加组
-m, --create-home
# 强制创建家目录
-M Do not create the user's home directory
# 不创建家目录
-s, --shell SHELL
# 指定用户的shell
-u, --uid UID
# 指定用户的UID
|
4.14 查看用户的uid和所属组
第14题 如何查看用户的uid及属于的组信息。
思路:
id命令搞定。
解答:
1
2
3
4
5
|
[root@oldboy ~]
# id oldboy
uid=808(oldboy) gid=801(sa)
groups
=801(sa),802(teachers)
[root@oldboy ~]
# grep oldboy /etc/passwd
oldboy:x:808:801::
/home/oldboy
:
/sbin/nologin
# uid为808;所属主组为sa,gid为801;所属附加组为teachers,gid为802。
|
总结:
1
2
|
id
- print real and effective user and group IDs
# 打印用户和组的ID信息
|
[口头表达技能考试题]
1.描述linux的开机到登陆界面的启动过程(记时2分钟)
2.描述linux下软链接和硬链接的区别。(记时2分钟)
3.linux shell中单引号、双引号及不加引号的区别(记时2分钟)
4.linux运行级别0-6(记时1分钟)
5.描述linux下文件删除的原理(记时3分钟)
6.描述硬盘的组成及工作原理(记时3分钟)
1.描述linux的开机到登陆界面的启动过程(记时2分钟)
开机
BIOS自检
MBR
Bootloader
内核引导
/sbin/init
读取inittab文件,执行rc.sysinit,rc等脚本
启动mingetty,进入系统登陆界面
2.描述linux下软链接和硬链接的区别。(记时2分钟)
软链接:两文件是不同的索引节点,相当于文件别名
硬链接:两文件有相同的索引节点,其中一文件改变,另一文件也跟着变
3.linux shell中单引号和双引号或不加引号的区别(记时2分钟)
单引号:所见即所得
双引号:会进行变量扩展替换
不加引号:不会将含有空格的字符串视为一个整体
4.linux运行级别0-6(记时1分钟)
0 关机
1 单用户模式
2 多用户模式 但没有NFS系统
3 完整多用户模式
4 未使用
5 X11
6 重起(reboot)
5.描述linux下文件删除的原理(3分钟
删除时是将文件的链接数减掉1。索引节点内的链接数会记录链接到这个文件的文件名数目,当链接数为0时,表示没有任何文件名与这个索引节点链接,也即该文件被删除了,这时它的索引节点被释放出来可以再为其它文件所用。
6.描述硬盘的组成及工作原理(记时3分钟)
硬件层面:盘体、控制电路板和接口部件等组成.盘体是一个密封的腔体,里面密封着磁头、盘片(磁片、碟片)等部件.
软件层面:硬盘在逻辑上被划分为磁道、柱面以及扇区。每个盘片的每个面都有一个读写磁头。在最外圈,离主轴最远的地方是“0”磁道,硬盘数据的存放就是从最外圈开始的。那么,磁头是如何找到“0”磁道的位置的 呢?从图1-5中可以看到,有一个“0”磁道检测器,由它来完成硬盘的初始定位。“0”磁道是如此的重要,以致很多硬盘仅仅因为“0”磁道损坏就报废。
[技术技能笔试考试题]
说明:
请针对问题给出相关命令答案,写到问题的下边即可(如果实在不会可以百度搜,写上答案,标记是百度搜索得到(该题分数减半))。
以下均为centos linux root环境下命令结果
考试范围:
以往课程内容及留的作业(包括预习内容),
考试题(10道):共100分,要求15分钟内完成
选择:
1) 如果在某用户的crontab文件中有以下记录, 该行中的命令多久执行一次(RHCE考试题)?
30 4 * * 3 mycmd
A 每小时。
B 每周。
C 每年三月中每小时一次。
答案:B(每周三 4点30分)
2) 如果在某用户的crontab文件中有以下记录, 该行中的命令多久执行一次(RHCE考试题)?
*/5 * * * * mycmd
A 每5分钟一次。
B 每小时过5分钟。
C 不会运行, 格式无效。
答案:A
简答:
1.每隔1分钟,打印一个+号到oldboy.log ,请给出crontab完整命令。
解答:* * * * * echo + >>/tmp/oldboy.log
或者写成脚本形式:
* * * * * /tmp/echo_plus.sh
cat /tmp/echo_plus.sh
#!/bin/bash
#filename:tmp/echo_plus.sh
echo + >>/tmp/oldboy.log
2.每隔2个小时 将/etc/service文件打包备份到/tmp下(最好每次备份成不同的备份包)。
解答:* */2 * * * etc_service_backup.sh
cat etc_service_backup.sh
#! /bin/bash
#filename:etc_service_backup.sh
cd /tmp && tar zcf etc_service.tar.gz_`date +%F-%H` /etc/service/* && cd -
3.每天晚上12点,打包站点目录/var/www/html 备份到/data目录下(最好每次备份按时间生成不同的备份包)
解答:0 0 * * * www_html_backup.sh
cat www_html_backup.sh
#! /bin/bash
#filename:www_html_backup.sh
cd /tmp && tar zcf etc_service.tar.gz_`date +%F-%H` /var/www/html/* && cd -
4.每周 六、日 上午9:00和下午14:00 来老男孩这里学习(执行程序/server/script/oldboy.sh代替学习)。
解答:0 9,14 * * 5,6 /server/script/oldboy.sh
5.请描述下列路径的内容是做什么的?
/etc/sysctl.conf
/etc/rc.local
/etc/hosts
解答:
/etc/sysctl.conf:存放一些内核系统控制配置信息,如网络相关配置(IP转发等)
/etc/rc.local:所有的 script 都执行以后最后一个执行的文件
/etc/hosts:本机的一个简单的DNS数据库,存放常用主机的IP地址与主机名称的数据。
6.请说出下列正则表达式的含义
^ 匹配一行的开头,但依赖于上下文环境,可能在正则表达式中表示否定一个字符 集的意思
$ 行尾
.(点号) 匹配任意字符( 除换行符 )
\ 转义(escapes) 一个特殊的字符,使这个字符表示原来字面上的意思。
* 匹配重复零次或多次前一字符
\{n,m\} 指示前面正则表达式匹配的次数.,最少匹配n次且最多匹配m次。
[^t] 匹配不是t的任意字符
^[^t] 行首除t以外的字符
解答:
7.vi命令考察,根据中文给出命令
解答:都是在命令模式下
退出保存 :wq
退出并强制保存,!为强制的意思 :w! :q
强制退出,不保存 :q!
光标移动到文件的最后一行 G
光标移动到文件的第一行 gg
从光标所在位置将光标移动到当前行的开头 0
从光标所在位置将光标移动到当前行的结尾 $
取消上一次的动作 u
删除一行 d
向下搜索 /
向上搜索 ?
8.授权oldboy及其子目录755的权限,请给出命令。
解答:
9.把oldboy及其子目录的属主改为oldboy,组改为root,请给出命令。
解答:chown -R tom.root oldboy
10.描述下umask的作用
解答:一个影响到用户创建文件或目录时默认权限的数值
root 默认 umask = 022
普通账号默认 umask = 002