1.1 基础篇
1)创建目录/data/oldboy ,并且在该目录下创建文件oldboy.txt.然后在文件oldboy.txt里写入内容“
[root@xbyqxit /]# mkdir -p /data/oldboy
[root@xbyqxit /]# cd /data/oldboy/
[root@xbyqxit oldboy]# touch oldboy.txt
[root@xbyqxit oldboy]# cat >oldboy.txt <>
[root@xbyqxit oldboy]#
2)把/data目录及其子目录下所有以扩展名.txt结尾的文件中包含oldgril的字符串全部替换为oldboy。
[root@xbyqxit oldboy]# find /data -type f -name ‘*.txt’ |xargs sed ‘s#oldgril#oldboy#g’ -i
3)下列文件中,包含了主机名到IP地址的映射关系的文件是 ( )
A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks
4)若要将鼠标从VM中释放出来,可按 ( )键来实现
A Ctrl alt B. crtl alt del C. CTRL alt Enter D. ctrl ENTER
5)若一台计算机的内存为128MB, 则交换分区的大小通常是( )
A 64MB B 128MB C 256MB D 512MB
6)Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用上光标上下移动来查看文件内容,应使用( )命令。
A cat B more C less D menu
7)下列关于/etc/fstab文件描述,正确的是( )
A fstab文件只能描述属于Linux的文件系统
B CD_ROM 和软盘必须是自动加载的
C fstab 文件中描述的文件系统不能被卸载
D启动是按fstab文件描述内容加载系统文件
8)如何查看当前Linux系统的状态,如cpu使用,负载情况等
[root@xbyqxit oldboy]# uptime
07:29:36 up 5:39, 2 users, load average: 0.00, 0.00, 0.00
[root@xbyqxit oldboy]# w
07:29:38 up 5:39, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 07:15 0.00s 0.20s 0.00s w
root pts/2 10.0.0.1 04:49 28:36 0.19s 0.19s -bash
[root@xbyqxit oldboy]#top
9)举例你熟悉的服务器性能查看命令
查看内存使用情况
[root@xbyqxit oldboy]# free -m
total used free shared buffers cached
Mem: 2005 462 1542 0 76 204
-/ buffers/cache: 182 1823
Swap: 2047 0 2047
[root@xbyqxit oldboy]#
查看服务器负载
[root@xbyqxit ~]# uptime
07:38:08 up 5:47, 2 users, load average: 0.00, 0.00, 0.00
[root@xbyqxit ~]#
查看cpu信息
[root@xbyqxit ~]# cat /proc/cpuinfo
/proc/mounts 系统挂载信息
/proc/loadavg 系统负载信息
/proc/meminfo 系统内存信息
/proc/cpuinfo 系统cpu信息
10)编写个shell脚本将/usr/local/test 目录下大雨100k的文件转移到/tmp目录下。
[root@xbyqxit test]# find /usr/local/test -type f -size 100k -exec mv {} /tmp/ ;
11)如何查看占用端口8080的进程。
答:[root@xbyqxit test]# netstat -apn |grep 8080
12) Linux所有服务脚本都存放在()
A /etc/rc.d/init.d
B /etc/init.d
C /etc/rc.d/rc
D /etc/rc.d
13)如果用户想对某一命令详细的了解,可用( )
A ls B help C man D dir
14) 企业中Linux服务器系统分区标准是什么?(硬盘300G,内存16G)
15)Linux运维工程师都需要具备哪些技能和职业品质?
运维核心职责:数据不能丢,网站7*24小时运行,用户体验好.
16)Vim 中把所有的oldboy 替换为oldgirl。给出命令
:%s#oldboy#oldgirl#g
17)查找/app/logs/下七天以前的log文件并删除
[root@xbyqxit test]# find /app/logs -type f -mtime 3 -exec rm -rf {} ;
[root@xbyqxit test]# rm -rf $(find /app/logs -type f -mtime 3)
[root@xbyqxit test]# rm -rf `find /app/logs -type f -mtime 3`
[root@xbyqxit test]# find /app/logs -type f -mtime 3 | xargs rm
18)写一个脚本查找最后创建时间是3天前,后缀是*.log的文件并删除。
[root@xbyqxit test]# find / -type f -mtime 3 -name ‘*.log’ | xargs rm
19)写一个脚本将某目录下大于100k的文件移动至/tmp下。
[root@xbyqxit test]# find /usr/local/test -type f -size 100k -exec mv {} /tmp/ ;
20)如何查看/var/log目录下的文件数
[root@xbyqxit test]# ls /var/log/ | wc -l
31
21) 简述Linux启动过程
(一)开机自检bios自检,
(二)MBR引导系统启动,
(三)grub菜单,加载内核镜像,
(四)运行init进程(系统中的第一个进程,)
(五)从/etc/inittab读取运行级别,
(六)执行/etc/rc.sysinit初始化脚本,
(七)根据不同的运行级别运行/etc/rc.?d下面的服务,
(八)启动mingetty,
(九)显示登录界面
22)如何统计/usr/home/data下有多少个目录?
[root@xbyqxit test]# find /usr/home/data -type d | wc -l
23)了解运维工作包括哪些内容
职责:
负责集群的运维;内部系统的开发
能力要求:
具备良好的分析故障解决能力、具备优秀的学习能力,能够阅读英文资料,对突发事件能够快速响应、判断故障并有效解决;
熟悉 DevOps 以及自动化,熟悉 CI,CD,CM 的相关工具,例如 JIRA,Jenkins 等;
具备主流应用软件维护经验,例如:Nginx、Redis、MongoDB、ELK、Cassandra、GlusterFS 等;
熟悉常用网络及加密协议;
熟悉 Ansible 或其他自动化工具,具备至少1年以上自动化相关使用经验;
至少会使用 2 种以上服务器脚本语言,例如:Bash、Python 等;
熟悉 AWS 等云平台;
熟悉 Zabbix、Prometheus、Grafana 等监控工具,能够自行编写监控模板;
熟悉 Docker,并熟悉 Kubernetes 或 Mesos、Swarm 中的一种;
认同 DevOps 文化,实践过 DevOps 和持续交付,热衷于自动化任何可以自动化的地方, 参与过任何开源项目。
24)Linux用于启动系统所需加载的内核程序位于( )
A / B /lib/modules/2.4.20_8/kernel C /boot D /proc
/是根目录, /proc/mounts 系统挂载信息 , /proc/loadavg 系统负载信息
/proc/meminfo 系统内存信息 , /proc/cpuinfo系统cpu信息
25)统计磁盘空间或文件系统使用情况的命令是( )
A df B dd C du D fdisk
dd 是在vim下删除当前行的快捷键
du是显示文件占用空间
fdisk是硬盘分区的
26) 显示系统主机名的命令是( )
A uname -r B who am I C uname -n D whoami
Uname -r 显示系统内核版本, who am I 显示当前窗口登录用户日期以及网关, whoami 显示当前用户
27) 在使用mkdir命令创建新的目录时,在其他父目录不存在时先创建父目录的选项是 ()
A -m B -d C -f D -p
-m >建立目录的同时设置目录的权限, 没有-d参数, 没有-f参数,-p递归创建,
28)打印出file1文件的第1到第3行
[root@xbyqxit test]# sed -n ‘1,3p’ file1
1
2
3
[root@xbyqxit test]# awk ‘NR==1,NR==3’ file1
1
2
3
[root@xbyqxit test]# tail -10 file1 | head -3
1
2
3
[root@xbyqxit test]#
29)管道的含义
把前面一个命令的结果传递到后面的命令去执行
30)若当前目录为/home,命令ls -l 将显示Home目录下的( )
A 所有文件 B所有隐含文件 C所有非隐含文件 D文件的具体信息
-l以长格式显示目录下的内容列表:包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;-h显示文件大小带单位,-i显示文件索引节点号(inode)一个索引节点代表一个文件;
31)下面关于文件 “/etc/sysconfig/network-scripts/ifcfg-eth0”的描述哪个是正确的?( )
A 他是一个系统脚本文件 B他是可执行文件 C它存放本机的名字 D他指定本机eth0的IP地址
分区方案 通用(数据不重要) 数据重要 不知道是否重要 /boot引导分区 200M 200M 200M Swap交换分区(虚拟内存) 内存1.5倍(内存小于8G) 8G(内存>=8G) 内存1.5倍(内存小于8G) 8G(内存>=8G) 内存1.5倍(内存小于8G) 8G(内存>=8G) /根目录 剩余多少给多少 40G-200G 40G-200G /data 剩多少分多少 剩余的空间保留,不分区 谁使用这台机器 谁自己分区
DEVICE=eth0 (网卡名称 默认一般第一块网卡是eth0第二块eth1类推) TYPE=Ethernet 上网方式——以太网 ONBOOT=yes 是否开机自启动 NM_CONTROLLED=yes 是否受系统的network服务控制 BOOTPROTO=none 网卡获ip的方式 BOOTPROTO=static 静态IP BOOTPROTO=dhcp 动态IP BOOTPROTO=none 无(不指定) USERCTL=no 普通网卡是否可以管理网卡 默认是no PEERDNS=yes 网卡配置文件里面的dns是否优先于/etc/resolv.conf IPV6INIT=no DNS1=223.5.5.5 阿里云的公共DNS DNS2=114.114.114.114 运营商的DNS IPADDR=10.0.0.222 IP地址 NETMASK=255.255.255.0 子网掩码 GATEWAY=10.0.0.2 默认网关 HWADDR=00:0c:29:30:2c:7b 硬件地址、mac地址
32)Linux内核引导时,从文件( /etc/fstab )中读取要加载的文件系统。
33) Linux文件系统中每个文件用( inode )来标识
34) 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是(/etc )
35)将前一个命令的标准输出作为后一个命令的标准输入,称之为( 管道 )
36)进行字符串查找,使用( grep )命令
37)默认情况下管理员创建了一个用户,就会在( )目录下创建一个用户主目录
A/usr B/ home C /root D /etc
38) 在vi编辑器里,命令”dd’用来删除当前的( )
A行 B 变量 C字 D字符
39) 按下( )键能终止当前运行的命令
Actrl-C B ctrl -F C ctrl-B D ctrl-D
Ctrl d 退出当前用户 返回
40) Linux系统中查看ip地址的命令是( )
A ipconfig B ifconfig C icmp D iptables
41) 在Linux系统中,用来存放系统所需要的配置文件和子目录是( )
A /etc B /var C /root D /home
42) 关闭Linux(不重新启动)可以使用命令( )
A.ctrl alt DEL B halt C shutdown -r now D.reboot
43) 简述raid0,1,5的特点和优点
答:
44)
简要介绍:
常用磁盘阵列方案及优缺点
Raid级别 硬盘数量 容量 性能 冗余 应用场景 Raid 0 1块以上 所有硬盘容量总和 接近单块硬盘的n倍 最低 追求速度不追加冗余(数据库从库) Raid 1 只能2块 所有硬盘总和的一半 写入比较慢,读取接近于一块硬盘的速度 有 数据不能丢 没有性能要求(系统盘)监控服务器 Raid 5 最低3块 所有硬盘数n-1 (n-1)*n的总磁盘容量(n为磁盘数) 有 RAID 0和RAID 1的折衷方案(系统应用,数据库)
Raid级别 硬盘数量 容量 性能 冗余 应用场景 Raid 0 1块以上 所有硬盘容量总和 接近单块硬盘的n倍 最低 追求速度不追加冗余(数据库从库) Raid 1 只能2块 所有硬盘总和的一半 写入比较慢,读取接近于一块硬盘的速度 有 数据不能丢 没有性能要求(系统盘)监控服务器 Raid 5 最低3块 所有硬盘数n-1 (n-1)*n的总磁盘容量(n为磁盘数) 有 RAID 0和RAID 1的折衷方案(系统应用,数据库)
45)目录查找包含“hello-beijing”或“hello-nanjing”的所有文件及行号
[root@xbyqxit test]# find /usr/local -type f | xargs grep -n hello
11:“hello-beijing”或“hello-nanjing”
12:“hello-beijing”或“hello-nanjing”
13:“hello-beijing”或“hello-nanjing”
[root@xbyqxit test]#
46) 目录下,所有文件中的“hello”替换为“beijing”
[root@xbyqxit test]# find /usr/local -type f | xargs sed ‘s#hello#beijing#g’
“beijing-beijing”或“beijing-nanjing”
“beijing-beijing”或“beijing-nanjing”
“beijing-beijing”或“beijing-nanjing”
[root@xbyqxit test]# find /usr/local -type f | xargs sed ‘s#hello#beijing#g’ -i
[root@xbyqxit test]#
47) 描述Linux运行级别0-6的各自含义?
答:
0 关机 1 单用户 2 多用户,不支持nfs 3 完整多用户模式 4 没有 5 桌面模式 6 重启
查看运行级别: runlevel 修改运行级别:init 5 vim /etc/initab(改最后一行)
48) 请描述Linux系统从开机到登录界面的启动过程?
A.开机自检BIOS自检
B.MBR引导系统启动
C.GRUB菜单
D.加载内核镜像
E.从/etc/rc.inittab读取运行级别
F.执行/etc/rc.sysinit脚本
G.根据不同运行级别运行/etc/rc?.d下的服务
H.启动mingetty显示登录界面
49) 递归删除目录的命令
rm -rf
50) 在vi编辑器中的命令模式下,键入____________可在光标当前所在行下添加一新行
A ; B; C ; D
51) 在给定文件中查找与设定条件相符字符串的命令为:
A grep B gzip C find D sort
52) 在下列命令中,不能显示文本文件内容的命令是( )
A more B less C tail D join
53) 简述下什么是GPL,GNU,自由软件?
GNU:GNU not is unix,是一项开源项目。软件有bash,gcc,awk等
GPL:通用公共许可协议(开源),使用者修改源码,必须将修改后的源码上传。
54)如何选择Linux操作系统版本?
开发人员开发平台:选择Linux桌面系统,Ubuntu。
服务器端Linux:首选redhat(付费)或者centos(完全免费,除去redhat _logo|、收费部分内容(替换)其余与redhat一样)
新技术新功能: suseopensuse
中文Linux系统:红旗,麒麟
55)统计/var/log/下文件( 非目录) 的个数
[root@xbyqxit test]# ls /var/log |wc -l
31
[root@xbyqxit test]#
56)生产场景如何对Linux系统进行合理规划分区?
分区方案 通用(数据不重要) 数据重要 不知道是否重要 /boot引导分区 200M 200M 200M Swap交换分区(虚拟内存) 内存1.5倍(内存小于8G) 8G(内存>=8G) 内存1.5倍(内存小于8G) 8G(内存>=8G) 内存1.5倍(内存小于8G) 8G(内存>=8G) /根目录 剩余多少给多少 40G-200G 40G-200G /data 剩多少分多少 剩余的空间保留,不分区 谁使用这台机器 谁自己分区
57)请简单描述
vi编辑器的使用
进入编辑模式 a I o
Esc进入命令模式: :wq保存退出 :q退出 :wq!强制保存退出 :x保存并退出 /搜索关键字 %s##a#bg a替换为b全文替换,当前行替换去掉%, :%d删除所有内容
快捷键: dd删除当前行 yy复制当前行 pp粘贴 G跳到最后一行 gg跳到首行
58)请输出你知道的20个Linux命令及作用
1)ls 显示文件列表 2)rm 删除文件或者目录 3)mv 移动/改名文件或者目录 4)top 动态显示系统进程、系统负载 5)ps 显示进程信息 6)who 显示当前用户 7)yum 以yum的方式安装rpm包自动解决依赖 8)rpm 手动安装rpm软件包 自行解决依赖 9)tar 解压压缩文件 10)zip 解压压缩文件 11)find 查找文件/目录 12)grep 过滤字符 13)sed 替换字符 14)pwd 显示当前目录路径 15)cd 进入指定目录 16)touch 创建文件 17)tree 以树的形式显示目录文件 18)cat,tail,head,more 查看文件内容 19)vi/vim 编辑文本 20)hostname 显示主机名 21)uptime 显示系统负载 22)df显示 磁盘使用情况 23)du 显示文件目录使用情况 24)useradd 添加用户 25)userdel 删除用户 26)passwd 设置用户密码 27)w 显示系统负载 28)ehco 打印输出 29)alias 显示别名 30)unalias 取消别名 31)histort 显示历史命令操作记录 32)export 设置变量 33)shutdown 关机 34)reboot 重启 35)chkconfig 管理服务软件自启 36)runlevel 显示系统当前运行级别 37)getenforce 查看selinux的运行状态 38)setenforce 关闭或者开启selinux 39)init 修改系统运行级别 40)service 管理服务 41)netstart 查看服务端口 42)mount 挂载设备 43)umount 卸载挂载设备 44)ssh 远程连接 45)route 查看路由表 46)ifdown 关闭指定网卡 47)ifup 启动指定网卡 48)su 切换用户 49)awk 取列 50)ping 测试网络连通性
59)用什么命令可以测试另外一台服务器的某个端口是否打开?
telnet
60) 给定一个文本文件,请打印出他的第十行。(可用任意语言实现)
例如文件file.txt的内容
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
输出 line 10
[root@xbyqxit test]# tail -1 file.txt
Line 10
[root@xbyqxit test]# awk ‘NR==10′ file.txt
Line 10
[root@xbyqxit test]# sed -n ’10p’ file.txt
Line 10
[root@xbyqxit test]# grep 10 file.txt
Line 10
[root@xbyqxit test]#
61)分别写出Linux挂载和卸载/data分区的命令
umount mount
62) 寻找名称为
mytest.log的文件
[root@xbyqxit /]# find / -type f -name ‘mytest.log’
/tmp/mytest.log
[root@xbyqxit /]#
63)用命令行更改config.txt文件,把里面所有的”name” 更改为”address”
[root@xbyqxit tmp]# cat >config.txt<>
> namenamenamename
> namename
> namename
> EOF
[root@xbyqxit tmp]# sed ‘s#name#address#g’
^Z
[3] Stopped sed ‘s#name#address#g’
[root@xbyqxit tmp]# sed ‘s#name#address#g’ config.txt
addressaddressaddressaddress
addressaddress
addressaddress
[root@xbyqxit tmp]# sed ‘s#name#address#g’ config.txt -i
[root@xbyqxit tmp]#
1.2 提高篇
64)( )命令是在vi编辑器中执行存盘退出。
A :q B :ZZ C :q! D :wq
65) 用虚拟机安装了一台Linux系统,突然想克隆一台服务器,克隆后发现无法上网。如何解决?
清空[root@xbyqxit ~]# > /etc/udev/rules.d/70-persistent-net.rules
删除网卡配置文件里面的UUID和HWADDR项目 并且重启网卡服务
UUID=550e8400-e29b-41d4-a716-446655440000
HWADDR=00:0c:29:30:2c:7b
66)常用网络检测命令及参数列举说明,至少五个
ping #测试网络的连通性
lelnet #测试网络已经对应端口的连通性
ifconfig #查看网卡参数
route #查看路由表
netstart #查看网络统计信息
cat /etc/resolv.conf #查看DNS
cat /etc/sysconfig/network # 查看网关
67)脚本实现:查找目录 /avr/log/下大于1M的文件移动至/tmp/log下
[root@xbyqxit tmp]# find /avr/log -type f -size 1M -exec mv {} /tmp/log ;
68)若给需要将/home/zheng目录下所有文件打包压缩成/tmp/zheng.tar.gz.你准备怎么做?当需要从压缩包中恢复时,又该如何处理?
[root@xbyqxit tmp]#
find /home/zheng -type f | xargs tar -czvf /tmp/zheng.tar.gz
[root@xbyqxit tmp]#
[root@xbyqxit tmp]# tar xzvf zheng.tar.gz -C /
69)简述解决忘记root密码的方法
进入单用户模式修改
「Linux学习笔记」Linux运维工程师70道基础面试题|练习题笔记
开机出现提示按任意键键入菜单,进入grub菜单后选择第二项kernel 按e键
进入新界面后按下空格 后接着输入数字1 (单用户模式),回车。后弹回grub菜单,接着按b键。自动重启后进入单用户模式 输入passwd 按提示修改root密码即可。修改完成后重启即可
70)Linux下侦测主机到目的主机之前所经过的路由的命令是( )
A ping B route C traceroute Difconfg
ping命令用来测试主机之间网络的连通性
route命令用来显示并设置Linux内核中的网络路由表
traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。
ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数
71) 以下命令可以从文本文件的每一行中戳取指定内容的数据
A cp B dd C fmt D cut
cut命令用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容,类似于下的type命令
-b:仅显示行中指定直接范围的内容;
-c:仅显示行中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:显示指定字段的内容;
-n:与“-b”选项连用,不分割多字节字符;
cp 用于复制文件目录
dd 在vim编辑文本中 删除当前所在行的快捷键
fmt命令读取文件的内容,根据选项的设置对文件格式进行简单的优化处理,并将结果送到标准输出设备。
-c或–crown-margin:每段前两列缩排;
-p<列起始字符串>或-prefix=<列起始字符串>:仅合并含有指定字符串的列,通常运用在程序语言的注解方面;
-s或–split-only:只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列;
-t或–tagged-paragraph:每列前两列缩排,但第1列和第2列的缩排格式不同;
-u或–uniform-spacing:每列字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔;
-w<每列字符数>或–width=<每列字符数>或-<每列字符数>:设置每列的最大字符数。
72)如何查看消耗内存资源最多的前5个进程,写出命令
[root@xbyqxit ~]# ps auxw | head -1;ps auxw| sort -rn -k4 | head -5
73)如何查看某个进程占用的多大内存
[root@xbyqxit ~]# ps auxw | grep sshd
root 1594 0.0 0.0 66260 1204 ? Ss 00:55 0:00 /usr/sbin/sshd
root 1757 0.0 0.2 102104 4160 ? Ss 00:55 0:00 sshd: root@pts/0
root 1761 0.0 0.2 102104 4152 ? Ss 00:55 0:00 sshd: root@pts/1
root 1840 0.0 0.0 103336 868 pts/0 S 01:10 0:00 grep sshd
[root@xbyqxit ~]# top -p 1757
「Linux学习笔记」Linux运维工程师70道基础面试题|练习题笔记
74) 如何查看占用端口8080的进程?如何查看pid为100的进程所监听的tcp端口
[root@xbyqxit ~]# netstat -anp | grep 8080
[root@xbyqxit ~]# netstat -t | grep 100
75)Linux为监控某进程的cpu和内存消耗,通常使用__ps____命令
76) 查看某个端口属于哪个进程___ss____/netstart__
[root@xbyqxit zheng]# netstat -npta | grep 22
[root@xbyqxit zheng]# ss | grep 22
ESTAB 0 0 10.0.0.222:ssh 10.0.0.1:5626
ESTAB 0 0 10.0.0.222:ssh 10.0.0.1:ninaf
[root@xbyqxit zheng]#
1.3 操作题
77) 在当前目录/home/zheng/下新建一个目录back,将当前目录改为back,在back下新建2个长度为0的文件test1,test2,然后把Test2移动到其父目录中并改名为file12.
[root@xbyqxit zheng]# pwd
/home/zheng
[root@xbyqxit zheng]# mkdir back
[root@xbyqxit zheng]# cd back/;pwd
/home/zheng/back
[root@xbyqxit back]# touch test1 test2;ll
total 0
-rw-r–r–. 1 root root 0 Apr 4 01:21 test1
-rw-r–r–. 1 root root 0 Apr 4 01:21 test2
[root@xbyqxit back]# mv test2 ../file2
[root@xbyqxit back]# cd ../;ll
total 4
drwxr-xr-x. 2 root root 4096 Apr 4 01:22 back
-rw-r–r–. 1 root root 0 Apr 4 01:21 file2
[root@xbyqxit zheng]#