1.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于磁盘这种外部设备文件,一般应将其放在(C)目录中。

A./bin

B./etc

C./dev

D./lib

2.当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于(D)目录。?

A./home

B./bin

C./etc

D./dev

3.有/etc/fstab文件中内容如下,介绍该文件每行每一列的内容

UUID=2e7d5aad-dc8c-4d95-9838-4d5e04b33ef3 swap                    swap    defaults        0 0
第一列:设备的UUID
第二列:挂载点
第三列:磁盘文件系统的格式(xfs swap ext4 等等)
第四列:文件系统的参数
第五列:需不需要做备份;通常这个参数的值为0或者1
第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)

4.如果向磁盘写入数据提示如下错误:No space left on device,但是通过df -h查看磁盘空间,发现没满, 那么可能的原因是什么?

1.1首先查看我们的磁盘剩余情况
df -h #发现磁盘没有满
1.2创建目录测试报错
创建目录报错文件还是正常
查看磁盘inode
最后发现目录backup中inode 满了
1.3解决方案
删除backup目录中不常用的文件数据
由于本文是测试inode满 所以删除所有数据,工作中要注意汇报上级。

5.用电脑自带的画图工具分别画出RAID 0,RAID 1,RAID 5和RAID 10,并说说各自对应的优缺点是什么



6.正常情况下第二块SATA硬盘的设备名应为(hdb),它上面的第三个主分区对应的文件名是(hdb3)

7.df命令和du命令的作用分别是?

du命令:主要查看目录的大小
df命令:主要查看磁盘使用的情况

8.linux系统在创建时,至少创建哪两个分区

根/和swap分区

9.如何将/dev/sdb格式化为xfs文件系统

mkfs.xfs /dev/sdb

10.磁盘空间利用率最大的RAID技术是,哪些RAID具备故障恢复能力?

RAID0

RAID5

11.在各种RAID级别中,磁盘空间利用率最低,但数据安全性最大的是

RAID10

12.8个300G的硬盘做RAID5后的容量为

(8-1)\*300=2100

13.8个300G的硬盘做RAID1后的容量为

1200G

14.假设如下容量的磁盘:500G,600G,组成RAID 0,那么RAID 0的容量是多少,如果组成RAID 1,那么RAID 1的容量又是多少

RAID 0 500+600=1100G
RAID 1 500G

15.假设如下容量的磁盘:两块500G,600G磁盘组成RAID 5,那么RAID 5的容量是多少。

1500G

16.假设如下容量的磁盘:四块500G,600G磁盘组成RAID 5,RAID 5的容量是多少。

2500G

基础类

1.编辑一个1.txt文件,内容如下
cat >>1.txt <<EOF
10.0.3.1 00:0F:AF:81:19:1F
10.0.3.2 00:0F:AF:85:6C:25
10.0.3.3 00:0F:AF:85:70:42
10.0.2.20 00:0F:AF:85:55:DE
10.0.2.21 00:0F:AF:85:6C:09
10.0.2.22 00:0F:AF:85:5C:41
10.0.0.151 00:0F:AF:85:6C:F6
10.0.0.152 00:0F:AF:83:1F:65
10.0.0.153 00:0F:AF:85:70:03
10.0.1.10 00:30:15:A2:3B:B6
10.0.1.11 00:30:15:A3:23:B7
10.0.1.12 00:30:15:A2:3A:A1
10.0.1.1 00:0F:AF:81:19:1F
10.0.2.2 00:0F:AF:85:6C:25
10.0.3.3 00:0F:AF:85:70:42
10.0.2.20 00:0F:AF:85:55:DE
10.0.1.21 00:0F:AF:85:6C:09
10.0.2.22 00:0F:AF:85:5C:41
10.0.0.151 00:0F:AF:85:6C:F6
10.0.1.152 00:0F:AF:83:1F:65
10.0.0.153 00:0F:AF:85:70:03
10.0.3.10 00:30:15:A2:3B:B6
10.0.1.11 00:30:15:A3:23:B7
10.0.3.12 00:30:15:A2:3A:A1
EOF

(1)对该文件输出内容进行排序(提示:通过第三列的第一个字符,以及第4列的所有字符进行排序)

[root@chengyinwu ~]# sort -t "." -k3.1,3.1 -n -k4.1,4.3 -n 1.txt

(2)过滤该文件所有的字母,不区分大小写

[root@chengyinwu ~]# grep -i [a-Z] 1.txt

(3)过滤出以数字3结尾的行

[root@chengyinwu ~]# grep '3$' 1.txt
2.将"web3_access.log"上传至你的linux服务器

(1)统计出该文件IP地址出现的次数,并按正序对其进行排序

[root@chengyinwu ~]# awk '{print $1}' access.log |sort -n |uniq -c |sort -n

(2)统计该文件内HTTP状态返回码出现的次数(例如200,404,403,在第九列),并按照倒序进行排序

[root@chengyinwu ~]# awk '{print $9}' access.log |sort -n |uniq -c |sort -nr

(3)过滤出所有状态返回码是200的行,并将这些返回码为200行的全部替换成300

[root@chengyinwu ~]# grep -o '200' access.log |sed 's#200#300#g'
3.匹配/etc/passwd里包含root关键字的行(要求至少两种方法,分别使用awk和grep)
#1.[root@chengyinwu ~]# awk '/root/' /etc/passwd
#2.[root@chengyinwu ~]# grep 'root' /etc/passwd
4.以“:”为分隔符,取出/etc/passwd第一行的最后一列的内容
[root@chengyinwu ~]# awk -F ":" 'NR==1 {print $NF}' /etc/passwd
5.取出以“:”为分隔符,第三列(用户UID)以0结尾的
[root@chengyinwu ~]# awk -F ":" '{print $3}' /etc/passwd |grep '0$'
6.新建用户u1、u2,密码是redhat,属于同一个附加组grp1,用户u2不允许登陆到系统中
[root@chengyinwu ~]# groupadd grp1
[root@chengyinwu ~]# useradd u1 -G grp1
[root@chengyinwu ~]# useradd u2 -G grp1 -s /sbin/nologin
[root@chengyinwu ~]# echo "redhat" |passwd --stdin u1
[root@chengyinwu ~]# echo "redhat" |passwd --stdin u2
7.查看用户u1的uid和gid信息
[root@chengyinwu ~]# id u1
8.创建组distro,其GID为2019
[root@chengyinwu ~]# groupadd distro -g 2019
9.创建用户olddir,其ID号为1005,基本组为distro
[root@chengyinwu ~]# useradd olddir -u 1005 -g distro
10.给用户oldman添加密码,密码为oldboyedu
echo "oldboyedu" |passwd --stdin oldman

进程类

1.使用ps查看进程,解释进程状态中R,S,D,Z,T所代表的含义
[root@chengyinwu ~]# ps aux
R 进程运行 s 进程是控制进程, Ss进程的领导者,父进程
S 可中断睡眠 < 进程运行在高优先级上,S<优先级较高的进程
T 进程被暂停 N 进程运行在低优先级上,SN优先级较低的进程
D 不可中断进程 + 当前进程运行在前台,R+该表示进程在前台运行
Z 僵尸进程 l 进程是多线程的,Sl表示进程是以线程方式运行
2.使用yum安装一个nginx并启动,查看nginx进程的详细信息
[root@chengyinwu ~]# yum install nginx -y
[root@chengyinwu ~]# ps aux |grep nginx
root 32334 0.0 0.0 112708 988 pts/0 R+ 16:13 0:00 grep --color=auto nginx
3.开启两个xshell终端连接同一台虚拟机,一个终端输入命令"yum update" ,一个终端查看yum命令的状态,再开一个终端输入"yum install -y mariadb",然后查看yum命令的状态,当yum命令执行完成以后,再次查看yum命令的状态。
#1:[root@yinwucheng ~]# yum update -y
#2:[root@yinwucheng ~]# ps aux |grep yum
root 1532 17.3 1.2 789044 26176 pts/0 D+ 16:42 0:01 /usr/bin/python /usr/bin/yum update -y
root 1545 0.0 0.0 112708 988 pts/1 R+ 16:42 0:00 grep --color=auto yum #1:[root@yinwucheng ~]# yum install mariadb -y
#2:[root@yinwucheng ~]# ps aux |grep yum
root 1549 4.3 1.2 804692 24904 pts/0 Sl+ 16:43 0:00 /usr/bin/python /usr/bin/yum install mariadb -y
root 1557 0.0 0.0 112708 988 pts/1 R+ 16:43 0:00 grep --color=auto yum
[root@yinwucheng ~]# ps aux |grep yum
root 1549 8.4 2.9 828432 59968 pts/0 D+ 16:43 0:00 /usr/bin/python /usr/bin/yum install mariadb -y
root 1559 0.0 0.0 112708 984 pts/1 R+ 16:43 0:00 grep --color=auto yum [root@yinwucheng ~]# ps aux |grep yum
root 1587 0.0 0.0 112708 988 pts/1 R+ 16:44 0:00 grep --color=auto yum
4.使用"vim test.c"编辑代码代码如下
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h> int main(int argc, char *argv[])
{
pid_t pid;
pid = fork();
if (pid == 0) {
int iPid = (int)getpid();
fprintf(stderr,"I am child,%d\n",iPid);
sleep(1);
fprintf(stderr, "Child exits\n");
return EXIT_SUCCESS;
}
int iPid = (int)getpid();
fprintf(stderr,"I am parent,%d\n",iPid);
fprintf(stderr, "sleep....\n");
sleep(600);
fprintf(stderr, "parent exits\n");
return EXIT_SUCCESS;
}
然后使用"gcc test.c"编译这段代码,会在当前目录生成一个a.out的文件,使用"./a.out"执行该文件(如果没有gcc命令,则使用yum进行安装)

(1)新开一个终端,使用top命令查看进程状态,是否存在一个僵尸进程

top
1 zombie 僵尸进程存在

(2)使用ps命令查看该僵尸进程的状态

[root@chengyinwu ~]# ps aux |grep out
root 32608 0.0 0.0 4208 352 pts/0 S+ 16:18 0:00 ./a.out
root 32609 0.0 0.0 0 0 pts/0 Z+ 16:18 0:00 [a.out] <defunct>
root 32698 0.0 0.0 112708 984 pts/1 R+ 16:20 0:00 grep --color=auto out

(3)使用kill 命令尝试终止该僵尸进程(不要使用-9参数强制终止),然后查看该进程的状态,是否能够终止

kill 32609
杀不死

(4)杀死该僵尸进程的父进程,查看该进程是否被终止

kill 32608
死了
5.输入top命令,解释头六行每行每列所代表的含义(不算空行)
top - 16:27:01 up 13 days,  2:09,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 77 total, 1 running, 76 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1014904 total, 143700 free, 160792 used, 710412 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 690872 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 统计信息区
前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下: 01:06:48 当前时间
up 1:22 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下: Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s): 0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si 最后两行为内存信息。内容如下: Mem: 191272k total 物理内存总量
173656k used 使用的物理内存总量
17616k free 空闲内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
123988k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。 进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。 序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
6.开两个终端,在一个终端输入top命令,另一个终端终止该进程,查看效果
#1:[root@yinwucheng ~]# top
#2:[root@yinwucheng ~]# ps aux |grep top
root 1588 0.0 0.1 161880 2208 pts/0 S+ 16:46 0:00 top
root 1590 0.0 0.0 112708 988 pts/1 R+ 16:46 0:00 grep --color=auto top
[root@yinwucheng ~]# kill 1588
7.在linux中输入如下命令"(while :; do uptime; sleep 1; done) &" ,新开一个终端查看该进程的状态,并尝试终止该进程
[root@yinwucheng ~]# pkill -9 -t pts/1  干了

Linux面试题-8的更多相关文章

  1. Linux面试题汇总答案

    转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...

  2. Linux面试题汇总答案(转)

    转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...

  3. Linux面试题(史上最全、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  4. 史上最全Linux面试题(2020最新版)

    作者:ThinkWon 链接:https://blog.csdn.net/thinkwon/article/details/104588679 导读:本文整理了最新的Linux面试题,近3万字,约10 ...

  5. 100 道 Linux 笔试题,能拿 80 分就算大神!

    本套笔试题共100题,每题1分,共100分.(参考答案在文章末尾) 1. cron 后台常驻程序 (daemon) 用于: A. 负责文件在网络中的共享 B. 管理打印子系统C. 跟踪管理系统信息和错 ...

  6. Linux面试题总结

    1.简述Apache两种工作模式,以及它们之间的区别.答:(1)prefork MPM使用多个子进程,每个子进程只有一个线程来处理一个http请求,直到这个TCP连接被释放.root主进程在最初建立s ...

  7. 2020非常全的软件测试linux常用命令全集,linux面试题及参考答案

    一.前言: 作为一名软件测试工程师,我相信大部分的人都和Linux打过交道,因为我们的服务器一般都是装的Linux操作系统,包括各种云服务器也都是用的Linux,目前主流是CentOS7,那么对于一个 ...

  8. 推荐收藏:100道Linux笔试题,能拿90分以上的都去了BAT

    本套笔试题共100题,每题1分,共100分.(参考答案在文章末尾) 1. cron 后台常驻程序 (daemon) 用于: A. 负责文件在网络中的共享 B. 管理打印子系统 C. 跟踪管理系统信息和 ...

  9. linux篇-linux面试题汇总

    Linux经典面试题,看看你会几题? 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统 ...

  10. linux面试题

    一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取uu要加载的文件系统. 3. Linux文件系统中每个文件用 i节点 ...

随机推荐

  1. java8 新特性精心整理

    前言 越来越多的项目已经使用 Java 8 了,毫无疑问,Java 8 是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和 JVM 等方面的十多个新特 ...

  2. Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现

    作者 | 声东 阿里云售后技术专家 文章来源:Docker,点击查看原文. 以我的经验来讲,理解 Kubernetes 集群服务的概念,是比较不容易的一件事情.尤其是当我们基于似是而非的理解,去排查服 ...

  3. 想研究BERT模型?先看看这篇文章吧!

    最近,笔者想研究BERT模型,然而发现想弄懂BERT模型,还得先了解Transformer. 本文尽量贴合Transformer的原论文,但考虑到要易于理解,所以并非逐句翻译,而是根据笔者的个人理解进 ...

  4. Python学习笔记整理总结【ORM(SQLAlchemy)】

    一.介绍SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执 ...

  5. Springboot2.1.x配置Activiti7单独数据源问题

    Springboot2.1.x配置Activiti7单独数据源问题 简介 最近基于最新的Activiti7配置了SpringBoot2. 简单上手使用了一番.发现市面上解决Activiti7的教程很少 ...

  6. 从ASP.Net Core Web Api模板中移除MVC Razor依赖项

    前言 :本篇文章,我将会介绍如何在不包括MVC / Razor功能和包的情况下,添加最少的依赖项到ASP.NET Core Web API项目中. 一.MVC   VS WebApi (1)在ASP. ...

  7. 1. jQuery中的DOM操作

    1)查找节点 通过jQuery选择器来完成 2)创建节点 创建元素节点:var newTd = $("<td></td>") 创建文本节点:在创建元素节点时 ...

  8. Linux Shell 基础知识(二)

    1.本文知识结构 2.文件的查询与检索 2.1. cd 目录切换 找到文件/目录位置:cd 切换到上一个工作目录: cd - 切换到home目录: cd or cd ~ 显示当前路径: pwd 更改当 ...

  9. Spark 学习笔记之 共享变量

    共享变量: 共享变量通常情况下,当向Spark操作(如map,reduce)传递一个函数时,它会在一个远程集群节点上执行,它会使用函数中所有变量的副本.这些变量被复制到所有的机器上,远程机器上并没有被 ...

  10. WordPress 使用本地化的 emoji 表情包

    WordPress 结合使用 Native Emoji 和 WP Local Emoji 两个插件,可以达到使用本地化的 emoji 表情包的目的. 安装好上述两个插件并且启用: 为了使 Native ...