linux基础:第三关课前考试题整理
1.如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644, 要求使用命令取得
644 这样的数字。
[root@server ~]# stat /etc/hosts
File: "/etc/hosts"
Size: 178 Blocks: 8 IO Block: 4096 普通文件
Device: 803h/2051d Inode: 130078 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-12-24 15:50:01.351799952 +0800
Modify: 2015-12-02 21:43:38.484600576 +0800
Change: 2015-12-02 21:43:38.484600576 +0800
#方法1:后向引用法
[root@server ~]# stat /etc/hosts|sed -nr '4s#^.*: \(0(.*)/-.*$#\1#gp'
644
#方法2:awk多分隔符取列
[root@server ~]# stat /etc/hosts|awk -F '[0/]' 'NR==4 {print $2}'
644
#方法3:awk多分隔符取列
[root@server ~]# stat /etc/hosts|sed -n '4p'|awk -F '[0/]' ' {print $2}'
644
#方法4:命令直接取
[root@server ~]# stat -c %a /etc/hosts # %a表示访问权限八进制
644
#方法5:扩展如何将ls -l命令中的权限字符转换为八进制?
[root@server ~]# ll /etc/hosts|cut -c 2-10|tr "rwx-" "4210"|awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'
644
#知识点:1.tr字符替换的使用;2.cut -c截取字符;3.awk指定分隔符为空。
2.linux下通过mkdir命令创建一个新目录/oldboy/ett,它的硬链接数是多少,为什么?
如果在/oldboy/ett下面再创建一个目录test,再问/oldboy/ett的硬链接数是多少?为什么?
[root@server oldboy]# ls -lid /oldboy/ett/
144998 drwxr-xr-x 3 root root 4096 12月 21 11:54 /oldboy/ett/
[root@server oldboy]# cd /oldboy/ett/
[root@server ett]# ls -lai
总用量 12
144998 drwxr-xr-x 3 root root 4096 12月 21 11:54 .
130085 drwxrwxrwx 4 root root 4096 12月 21 11:52 ..
144999 drwxr-xr-x 2 root root 4096 12月 21 11:54 test
[root@server ett]# cd test/
[root@server test]# ls -lai
总用量 8
144999 drwxr-xr-x 2 root root 4096 12月 21 11:54 .
144998 drwxr-xr-x 3 root root 4096 12月 21 11:54 ..
[root@server test]# #备注:inode节点号相同,则硬链接数为/oldboy/ett算一个,/ett目录下隐藏文件.算一个,还有/ett/test目录下..算一个,则在不创建/test目录情况下,/oldboy/ett的硬链接数为2,在创建了/oldboy/ett/test目录后,硬链接数为3。
3.请执行命令取出Linux中eth0的IP地址(请用cut,有能力者也可分别用awk,sed命令答)。
[root@server test]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:93:5D:E4
inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe93:5de4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42296 errors:0 dropped:0 overruns:0 frame:0
TX packets:21437 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3458185 (3.2 MiB) TX bytes:2862338 (2.7 MiB)
#使用sed替换
[root@server test]# ifconfig eth0|sed -nr '2s#^.*:(.*)B.*$#\1#gp'
192.168.1.11
#使用awk取列
[root@server test]# ifconfig eth0|awk -F '[: ]+' 'NR==2 {print $4}'
192.168.1.11 ## NR代表行,$4代表取第四列;
#使用sed awk组合使用
[root@server test]# ifconfig eth0|sed -n '2p'|awk -F '[: ]+' '{print $4}'
192.168.1.11 # “+”代表分隔括号中的分隔符会在本行中出现多次;
#使用cut命令
[root@server test]# grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0|cut -d= -f2
192.168.1.11
4.请给出默认情况eth0网卡配置文件路径及客户端DNS的路径。
1 #/etc/sysconfig/network-scripts/ifcfg-eth0:
2 DEVICE=eth0 #设备
3 HWADDR=00:0C:29:93:5D:E4 #对于虚拟机克隆需要将这项删除,防止冲突
4 TYPE=Ethernet #网络类型
5 UUID=4f58613e-e829-49a8-86da-f0444d86781d ##对于虚拟机克隆需要将这项删除,防止冲突
6 ONBOOT=yes #开机启动
7 NM_CONTROLLED=yes
8 #BOOTPROTO=dhcp
9 BOOTPROTO=static #静态IP
10 IPADDR=192.168.1.11 #IP地址
11 NETMASK=255.255.255.0 #子网掩码
12 GATEWAY=192.168.1.1 #网关
13 DNS1=192.168.1.1 #DNS
14
15 #/etc/resolv.conf
16 ;generated by /sbin/dhclient-script #由这个脚本生成
17 search localdomain oldboy.local #搜索域
18 nameserver 192.168.1.1 #名称服务器,写入会被覆盖
5.查找当前目录下所有文件,并把文件中的www.google.com字符串替换成www.baidu.com;
#模拟创建文件
[root@server ~]# cat >>newfile<<EOF
fgsdgsdfdsmldsmgdls,,,,;sdkgsdwww.google.comgelewgmewlgmewgwelgewww.google.com
gsgewgewgeomomodsgmegipweigtepvsnvdvd dfjwwewww.google.com
rewrwero39r309,.;l''l'..www.google.com
erjeowew.emglwewetwewww.google.com
35325325230www.google.com
EOF
#sed替换
[root@server ~]# find ./ -type f -name "newfile"|xargs sed -i 's#www.google.com#www.baidu.com#g
#查看文件是否替换
[root@server ~]# cat newfile
fgsdgsdfdsmldsmgdls,,,,;sdkgsdwww.baidu.comgelewgmewlgmewgwelgewww.baidu.com
gsgewgewgeomomodsgwww.baidu.commegipweigtepvsnvdvd dfjwwewww.baidu.com
rewrwero39r309,.www.baidu.com;l''l'..www.baidu.com
erjwww.baidu.comeowew.emglwewetwewww.baidu.com
353www.baidu.com25325230www.baidu.com
#扩展:在生产场景,如果遇到木马,广告脚本植入,所有网络文件,以及用户文件都被植入,不可代码重新铺设;使用备份还原会损失上个备份点到备份还原完成的数据,不可取,此时就可以使用sed -i批量将脚本删除,而不影响正常的业务。
6.问题:如何赋予oldboy文件-rw-r--r-x权限属性
[root@server ~]# ls -ld oldboy
drwxr-xr-x 2 root root 4096 12月 24 17:50 oldboy #原目录权限为755
方法1:数字修改方法
[root@server ~]# chmod 645 oldboy
[root@server ~]# ls -ld oldboy
drw-r--r-x 2 root root 4096 12月 24 17:50 oldboy
方法2:字符权限修改方法
[root@server ~]# chmod u-x,g-x oldboy ##等价于chmod u=rw,g=r,o=rx
[root@server ~]# ls -ld oldboy
drw-r--r-x 2 root root 4096 12月 24 17:50 oldboy
#注释
r===4
w===2
x===1
7.执行下面命令时发现提示需要输入密码,请问提示输入的密码是哪个用户的密码;
[root@server ~]# su - test
[test@server ~]$ sudo su - oldboy
[sudo] password for test: ##输入test的密码
8.问题:请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。
[root@server ~]# echo "oldboy";echo "oldboy"
oldboy
oldboy
[root@server ~]# echo -n "oldboy";echo "oldboy" ## -n不换行输出
oldboyoldboy
[root@server ~]# echo -e "oldboy\toldgirl" ## -e:解析转义字符,\t tab
oldboy oldgirl
[root@server ~]#
[root@server ~]# echo -e "oldboy\noldgirl" ##\n回车
oldboy
oldgirl
9.问题:请给出如下格式的date命令 例:11-02-26。在给出实现按周输出 比如:周六输出6,请分别给出命令。
#年短格式
[root@server ~]# date +%y-%m-%d
15-12-24
#年长格式
[root@server ~]# date +%Y-%m-%d
2015-12-24
[root@server ~]# date +%F
2015-12-24
#显示周几
[root@server ~]# date +%u
4
[root@server ~]# date +%w
4
#拓展:日志轮询可以使用使用定时任务定期删除7天前的日志;也可以使用*.log.$(date +%w)创建,轮一周新的日志就自动覆盖就的日志文件。还可以表示为*.log.`date +%w`来创建。其中`date +%w`===$(date +%w)
10.问题:当从root用户切到普通用户时,执行ifconfig会提示如下。
[oldboy@student ~]$ ifconfig
-bash: ifconfig: command not found
提示: c58 会遇到, c64 没有此问题
#环境变量PATH的问题
#可以临时生效
export PATH=/sbin/ifconfig:$PATH
#也可以永久生效,将以上语句写入/etc/profile中
11.扩展问题:打印三天前的日期格式如:2015-12-10
[root@server ~]# date +%F
2015-12-24
[root@server ~]# date +%F -d "-3day" ##显示三天前的日期
2015-12-21
#date的其他用法:
#现在时间
[root@server ~]# date +%F\ %T
2015-12-24 21:34:19
#1表示过去三天时间
[root@server ~]# date +%F\ %T -d "-3day"
2015-12-21 21:35:31
#2表示将来三天时间
[root@server ~]# date +%F\ %T -d "+3day"
2015-12-27 21:36:03
12.已知/oldboy/test.txt文件内容如下:
编辑文件内容:
[root@server oldboy]# echo "
> fsdfdsgdsgsdoldboy
>
> gdgdsgsdgweewgewg
>
> whalodlggoyw" >>test.txt
[root@server oldboy]# ls
test.txt
[root@server oldboy]# cat test.txt
fsdfdsgdsgsdoldboy
gdgdsgsdgweewgewg
whalodlggoyw
请将文件中空行过滤掉;
#方法1:
[root@server oldboy]# grep -v '^$' test.txt
fsdfdsgdsgsdoldboy
gdgdsgsdgweewgewg
whalodlggoyw
#方法2:
[root@server oldboy]# grep -o '.*' test.txt
fsdfdsgdsgsdoldboy
gdgdsgsdgweewgewg
whalodlggoyw
#方法3:使用sed显示
[root@server oldboy]# sed '/^$/d' test.txt
fsdfdsgdsgsdoldboy
gdgdsgsdgweewgewg
whalodlggoyw
#方法4:使用awk
[root@server oldboy]# awk '/^[^$]/' test.txt
fsdfdsgdsgsdoldboy
gdgdsgsdgweewgewg
whalodlggoyw
#方法5:使用awk NF判断
[root@server oldboy]# awk 'NF>0 {print $0}' test.txt
fsdfdsgdsgsdoldboy
gdgdsgsdgweewgewg
whalodlggoyw
13.已知/oldboy/ett.txt文件内容为:
oldboy
olldbooooy
qerwerwer
请使用grep或egrep正则匹配的方式过滤出前两行内容
#方法1:过滤以“o”开头的
[root@server oldboy]# grep '^o' ett.txt
oldboy
olldbooooy
#方法2:过滤以“y”结尾的
[root@server oldboy]# grep 'y$' ett.txt
oldboy
olldbooooy
方法3:排除以“^q”开头的
[root@server oldboy]# grep -v '^q' ett.txt
oldboy
olldbooooy
14.描述下列路径的内容是做什么的?
/var/log/messages #系统日志
/var/log/secure#安全日志
/var/spool/clientmqueue#邮件临时目录
/proc/interrupts#中断相关文件
/etc/fstab#磁盘文件系统开机自启动文件
/etc/profile#环境变量配置文件
15.如何快速查到ifconfig的全路径,请给出命令;
[root@server oldboy]# which ifconfig #which
/sbin/ifconfig
[root@server oldboy]# whereis -b ifconfig #whereis -b -b:表示查二进制命令
ifconfig: /sbin/ifconfig
[root@server oldboy]# locate ifconfig
/sbin/ifconfig
/usr/lib/python2.6/site-packages/Sphinx-1.0.8-py2.6.egg/sphinx/ext/ifconfig.py
/usr/lib/python2.6/site-packages/Sphinx-1.0.8-py2.6.egg/sphinx/ext/ifconfig.pyc
/usr/lib/python2.6/site-packages/Sphinx-1.0.8-py2.6.egg/sphinx/ext/ifconfig.pyo
/usr/lib/python2.6/site-packages/sphinx/ext/ifconfig.py
/usr/lib/python2.6/site-packages/sphinx/ext/ifconfig.pyc
/usr/lib/python2.6/site-packages/sphinx/ext/ifconfig.pyo
/usr/sbin/pifconfig
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/man8/pifconfig.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz
/usr/share/zsh/4.3.11/functions/_ifconfig
[root@server oldboy]# sudo find / -type f -name ifconfig ##find查找,不加sudo,会查找proc等
/sbin/ifconfig
16.每周日上午 9: 30 来老男孩 linux 培训上课(用/oldboy.sh 代替),请用 linux 定时任务命
令表示。
30 09 * * 0 sh /oldboy.sh
17. 请给出查看当前哪些用户在线的 linux 命令。
[root@server oldboy]# who ## root pts/0 Dec 23 19:42 (192.168.1.151)
18. 公司一开发人员申请对某一服务器 10 天的普通用户权限,请问你如何操作?
[root@server ~]# sudo useradd test2 -e `date +%F -d "+10day"`
[root@server ~]# sudo tail -2 /etc/shadow
test:!!:16777:0:99999:7:::
test2:!!:16793:0:99999:7::16803: ##10天有效期,时间到取消账户
19.请给出正确的关机和重起服务器的命令。
halt shutdown -h now reboot shutdown -r init 0
20.请写出下面 linux SecureCRT 命令行快捷键命令的功能?
Ctrl + a 命令首
Ctrl + c 取消进程或者命令
Ctrl + d logout
Ctrl + e 命令尾
Ctrl + l 清屏
Ctrl + u 删除光标以前
Ctrl + k 删除光标以后
tab 命令、路径补全
Ctrl+shift+c 复制
Ctrl+shift+v 粘贴
linux基础:第三关课前考试题整理的更多相关文章
- 老男孩linux实战培训初级班第二次课前考试题
################################################################ 本文内容摘录于老男孩linux实战运维培训中心课前考试题(答案部分) ...
- (转)老男孩linux培训某节课前考试试题及答案分享
目录:[考试目的] ................................2[考试范围] ...............................2[答题策略] .......... ...
- L014-第三关课前linux命令及基础知识考试手把手实战解答小节
又是一周啊,以后保持一周一个微博吧. 这是一个堂解答考试题的课,那么就以题目来展开吧! 1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r--为644,要求用命令获得644这 ...
- Linux基础第四课——文件操作
文件的创建 touch sudo touch 文件1 文件2 文件3 #支持批量创建文件 sudo rm -f 文件1 文件2 文件3 #支持批量创建 也支持批量删除 echo '谁动谁输,对不起我输 ...
- Linux基础第六课——grep|awk|sort|uniq
管道符 | 前面的输出作为后面的输入 grep 可以理解为正则表达式 grep [参数] 文件名 -c 打印符合要求的行数 -v 打印不符合要求的行 -n 在输出符合要求的行的同时连同行号一起输出 - ...
- Linux基础第五课——用户管理
用户管理 一个用户必须有一个主组 一个用户可以拥有多个组 但是必须一个主组 其它组是临时组 一个组可以拥有多个用户 用户的信息放到 /etc/passwd 用户的密码 存入 /etc/shadow 组 ...
- 《Linux基础知识及命令》系列分享专栏
<Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...
- 老男孩linux实战培训初级班第三次课课前考试题
################################################################ 本文内容摘录于老男孩linux实战运维培训中心考试题 如有转载,请务必 ...
- Linux:课程安排、Linux简介、虚拟机安装、课前准备(常用设置和操作)
一.课程安排 1)Linux 的作用 商业服务器基本上都是 Linux: 开源软件都先支持 Linux: 大数据分析.机器学习首先选 Linux: 整个互联网地基靠Linux撑起来: Linux 系统 ...
随机推荐
- 新编码神器Atom使用纪要
Atom是 Github 专门为程序员推出的一个跨平台文本编辑器.她很大程度上继承了SublimeText的美,而又不仅如此.有费了蛮大力气总结了一篇关于SublimeText文章: 如何优雅地使用S ...
- [原创]mybatis详解说明
mybatis详解 2017-01-05MyBatis之代理开发模式1 mybatis-Dao的代理开发模式 Dao:数据访问对象 原来:定义dao接口,在定义dao的实现类 dao的代理开发模式 只 ...
- 透视 HTML子元素的margin-top样式会应用在父元素上的原由
情况说明 当对页面中元素设置margin-top样式时,如果该元素有父元素,则margin-top会应用与父元素,子元素的top与父元素的top重叠.举例说明 <style>body{ma ...
- 6.LibSVM核函数
libsvm的核函数类型(svmtrain.c注释部分): "-t kernel_type : set type of kernel function (default 2)\n" ...
- Windows下MySQL的常用操作
1.MySQL关闭与重启 1.MYSQL服务 我的电脑——(右键)管理——服务与应用程序——服务——MYSQL——开启(停止.重启动) 2.如果你没安装系统服务,可在命令行模式定位到mysql下的bi ...
- 深入理解java中的ArrayList和LinkedList
杂谈最基本数据结构--"线性表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0 ...
- 排版紧凑情况下IOS 浏览器的文字部分选中问题
一.需求 一个每一项都是图文混排的列表页,在需要对其中的某一部分文字进行选中copy的时候,IOS个二货每次都是直接选中了整个列表项,无论怎么操作它的选框都没有办法做到部分选中. 这是我本周遇到遇到的 ...
- Signalr系列之虚拟目录详解与应用中的CDN加速实战
目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...
- Java对象序列化剖析
对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...
- OData Client Code Generator
转发. [Tutorial & Sample] How to use OData Client Code Generator to generate client-side proxy cla ...