面试题(含答案)

面试题

1.tcp/ip协议中主机与主机通信三要素

Ip地址、子网掩码、ip路由

2.描述ip地址的分类及每一类的范围

Ip地址分为5类

A类保留给政府机构 范围:1.0.0.1-126.155.255.254

B类给大中型企业使用 范围:128.0.0.1—191.255.255.254

C类给个人使用 范围:192.0.0.1—191.255.255.254

D类数组组播 范围:224.0.0.1—239.255.255.254

E类用于实验

3.请描述A B C 三类ip地址的默认子网掩码

A:255.0.0.0

B:255.255.0.0

C:255.255.255.0

4.请描述预留给企业使用的私有网络使用的ip有哪三段

10.x.x.x

172.16.x.x~172.31.x.x

192.168.x.x

5.请简述网络层有哪些协议?

Icmp cgmp arp rarp ip

6.描述T568A T568B的线序

T568A:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕

T568B:白橙、绿、白绿、蓝、白蓝、绿、白棕、棕

7.请简述交换机工作原理

1.交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。

2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。

3.如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)。

4.广播帧和组播帧向所有的端口转发。

8.什么是TTL,作用简述TTL的原理

TTL生命周期

TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量

TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息

9.简述http和https分别是什么协议、作用及端口号

超文本传输协议

所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。

https协议需要到ca申请证书,一般免费证书很少,需要交费。

  http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

  http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

http的连接很简单,是无状态的。

10.简述NAT三种实现方式和区别

静态、动态、端口多路复用地址转换三种技术类型

静态nat是把内部网络中的每个主机地址永久映射成外部网络中的某个合法地址

动态地址:采用外部网络中的一系列和发地址使用动态分配的方法映射到内部网络

端口多路复用地址:把内部地址映射到外部网络的一个ip地址的不同端口上

根据不同的需要,选择相对应的nat技术

11.Linux中管道“|“的作用

“|”是管道命令操作符,简称管道符。利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推

12.简述find命令的格式和常用的用法

find命令是用来给定的目录下查找符合给定条件的文件

find【options】【查找其实路径】【查找条件】【处理动作】

查找路径:整个目录的路径,相对绝对路径都可以

查找条件-n name名称-iname 不区分名称字母的大小写

根据文件从属关系查找

-user username :查找属主指定用户的所有文件

-group groupname:查找属组指定组用户的所有文件

-type 类型

f 普通文件  d 目录文件 l 符号链接文件 c 字符设备文件 b 块文件 c字符设备文件 p 管道文件 s 套接字文件

13.vim编辑器的工作模式和切换

主要包括三种工作模式:

命令模式:启动vim编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。

输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vim编辑器的最后一行会出现“—插入 --”的状态提示信息。

末行模式:该模式中可以设置vim编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vim编辑器的最后一行会出现冒号“:”提示符。

使用vim编辑器时,在命令模式下按(gg )可快速跳转到文件第一行,按(G )可快速跳转到文件最后一行;若要查找关键词“-R”,可以输入( /-R)指令,按(n )可跳转至下一个匹配结果。

vim编辑器的删除、复制、粘贴操作。

使用vim编辑器时,在命令模式下按( dd)可删除当前光标行,按( yy)可复制当前行,按( p)将剪贴板中的文本粘贴到当前行之后。

14.简述raid的含义和特点

含义:磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 [1] 

磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 [1] 

磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。 [1]

特点:1、提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。

2、让磁盘驱动器同时传输数据。这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。

提高速率,能够同时传输数据

15linux常见的系统日志都有哪些,各自的用途

Linux常见的日志文件详述如下

1、/var/log/boot.log(自检过程)

2、/var/log/cron (crontab守护进程crond所派生的子进程的动作)

3、/var/log/maillog (发送到系统或从系统发出的电子邮件的活动)

4、/var/log/syslog (它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件)

要让系统生成syslog日志文件,

在/etc/syslog.conf文件中加上:*.warning /var/log/syslog   

该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息

5、/var/run/utmp

该日志文件需要使用lastlog命令查看

6、/var/log/wtmp

(该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件)

last命令就通过访问这个文件获得这些信息

7、/var/run/utmp

(该日志文件记录有关当前登录的每个用户的信息)

8、/var/log/xferlog

(该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件)

16.ftp简介

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

17.简述vi编辑器的使用

使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式

按i,然后键盘随便输入写内容。 然后按ESC重新进入到命令模式。

在命令模式的情况下,我们按:,进入到了末行模式。 输入wq!,然后回车,强行保存退出。

18.简述修改/etc/sudoers 配置文件的注意事项

①别名的名称可以包含大写字母。数字、下划线。如果是字母必须要大写,(别名为一群拥有相同属性的集合)。

②一个别名下面可以有多个成员,成员间通过半角(,)逗号隔开。成员必须有效实际存在。

别名成员受别名类型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias制约,定义什么类型的别名,就要有相什么类型的成员匹配。

③用户组前面必须加%号。命令别名下的成员必须是文件或目录的绝对路径。

④指定切换用户要用()括号括起来,如果省略,则默认root用户,如果括号里是ALL,则代表能切换到所有用户。

⑤命令路径要使用全路径。

⑥别名规则每行算一个规则,一行容不下时用续行。另外超过一行,用反斜线换行。

⑦一般不建议先给all权限,后面排除。用什么权限,就给什么权限。(注意权限,语法)。

如果不需要密码直接运行命令的应该加NOPASSWD参数。

⑧禁止某类程序或命令执行,要在命令动作前面加上“!”号,并放在允许执行命令之后。

19.如果办公室内主机无法上网(打不开网站),请给出你的排查步骤

①首先确定物理链路是否联通正常。

②查看本机IP,路由,DNS的设置情况是否达标。

③telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。

④ping一下网关,进行最基础的检查,通了,表示能够到达服务器。

⑤测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。

⑥测试ping公网ip的通常情况(记住几个外部IP),

⑦测试DNS的通畅。ping出对应IP。

⑧通过以上检查后,还在网管的路由器上进行检查。

20.描述linuxshell中单引号双引号不加引号的简单区别

单引号:所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就输出什么。

双引号:把双引号里面的内容给输出出来,如果内容中有命令、变量等,会先把,变来那个、命令解析出结果,然后输出最终内容。

双引号内的命令或者变量写法’命令或变量’或$(命令或变量)

无引号:把内容输出出来,可能不会键含有空格的字符串,视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出来,然后输出最终内容,如果字符串中带有空格等特殊字符,则不能完整输出,需要改加双引号。一般连续的字符串,数字,路径等可以用,不过最好用双引号,替代之。

21.输出20个linux命令及作用

ls 列表方式查看

mv 移动

cd 切换目录

cp  复制

mkdir 创建文件架或目录

touch  创建空文件夹用于测试

rm  删除

help 帮助文档

man 提供在线帮助

systemctl 系统配置

vi 文本编辑器

vim 文本编辑器

useradd 添加用户

passwd 设置用户密码

userdel 删除用户

mount 挂载

umount 卸载

reboot 重启

shutdown 关机

halt 关机

22.DNS的工作原理

第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

  第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

  第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。

  第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

  第五步:重复第四步,直到找到正确的纪录。

  第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

Dns域名解析系统

23.shell的变量类型有哪些?常见的4个预定义变量

Linux Shell下的变量按其使用目的可分为3种类型:

环境变量:用于保存操作系统运行时使用的环境参数

位置变量:Bash将传递给脚本的参数保存在位置变量中,以便于在脚本中引用这些参数

预定义变量:由系统保留和维护的一组特殊的变量,这些变量通常用于保存程序运行状态等

自定义变量:由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等

常见预定义变量:

$0:保存当前程序或脚本的名称

$*:保存传递给脚本或进程的所有参数

$$:当前进程给脚本的PID号

$!:后台运行的最后一个进程的PID号

$?:用于返回上一条命令是否成功执行。如果成功执行,将返回数字0,否则返回非零数字(通常情况下都返回数字1)。

$#:用于保存脚本的参数个数

24.shell条件判断类型

条件测试类型

  整数测试

  字符测试

  文件测试

1、条件测试表达式

  [ expression ]  括号两端必须要有空格

  [[ expression ]] 括号两端必须要有空格

  test expression

  组合测试条件

    -a:and

    -o:or

    !:取非

2、整数比较

  -eq 测试两个整数是否相等

  -ne 测试两个整数是否不等

  -gt 测试一个数是否大于另一个数

  -lt 测试一个数是否小于另一个数

  -ge 大于或等于

  -le 小于或等于

  命令间的逻辑关系

  逻辑与:&&

  第一个条件为假 第二个条件不用在判断

  第一个条件为真,第二个条件必须得判断

  逻辑或:||

3、字符串比较

  == 等于 两边要有空格

  != 不等

  > 大于

  < 小于

4、文件测试

  -z string 测试指定字符是否为空,空着真,非空为假

  -n string 测试指定字符串是否为不空,空为假 非空为真

  -e FILE 测试文件是否存在

  -f file 测试文件是否为普通文件

  -d file 测试指定路径是否为目录

  -r file 测试文件对当前用户是否可读

  -w file 测试文件对当前用户是否可写

  -x file 测试文件对当前用户是都可执行

  -z 是否为空 为空则为真

  -a 是否不空

5、if语法

  if 判断条件 0为真 其他都为假

6、条件测试的写法:

  1、执行一个命令的结果

  if grep -q "rm" fs.sh;then

  2、传回一个命令执行结果的相反值

  if !grep -q "rm" fs.sh;then

  3、使用复合命令((算式))

  if ((a>b));then

  4、使用bash关键字 [[判断式]]

  if [[ str > xyz ]];then

  5、使用内置命令:test 判断式

  if test "str" > "xyz";then

  6、使用内置命令:[判断式] 类似test

  if [ "str" > "xyz" ];then

  7、使用-a -o进行逻辑组合

  [ -r filename -a -x filename ]

  8、命令&&命令

  if grep -q "rm" fn.sh && [ $a -lt 100 ];then

  9、命令||命令

  if grep -q "rm" fn.sh || [ $a -lt 100 ];then

 

25.函数内local是什么意思?举一例说明

 local添加后,作用域的范围不一样。local仅仅的作用范围在函数体内

举例更直观 local就是用于定义只允许于指定区块(由{}决定)的变量:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

y:root:/tmp> cat yyy

#!/bin/bash

 

a="abc"

 

func() {

    local a="def"

    echo "local: $a"

}

 

echo "global: $a"

func

 

y:root:/tmp> ./yyy

global: abc

local: def

原文地址:https://www.cnblogs.com/zcdhhh/p/11352992.html