企业面试题(随时补充)

常见面试题

【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

【问题2】为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。

【问题3】为什么不能用两次握手进行连接?

答:3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。

      现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S 是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分 组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

【问题4】如果已经建立了连接,但是客户端突然出现故障了怎么办?

答:TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务

1、三次握手

(1)三次握手的详述

首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。

最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。(A、B关闭状态CLOSED——B收听状态LISTEN——A同步已发送状态SYN-SENT——B同步收到状态SYN-RCVD——A、B连接已建立状态ESTABLISHED)

(2)总结三次握手过程:

起初A和B都处于CLOSED状态——B创建TCB,处于LISTEN状态,等待A请求——A创建TCB,发送连接请求(SYN=1,seq=x),进入SYN-SENT状态——B收到连接请求,向A发送确认(SYN=ACK=1,确认号ack=x+1,初始序号seq=y),进入SYN-RCVD状态——A收到B的确认后,给B发出确认(ACK=1,ack=y+1,seq=x+1),A进入ESTABLISHED状态——B收到A的确认后,进入ESTABLISHED状态。

TCB传输控制块Transmission Control Block,存储每一个连接中的重要信息,如TCP连接表,到发送和接收缓存的指针,到重传队列的指针,当前的发送和接收序号。

(3)为什么A还要发送一次确认呢?可以二次握手吗?

答:主要为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。如A发出连接请求,但因连接请求报文丢失而未收到确认,于是A再重传一次连接请求。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接,A工发出了两个连接请求报文段,其中第一个丢失,第二个到达了B,但是第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放以后的某个时间才到达B,此时B误认为A又发出一次新的连接请求,于是就向A发出确认报文段,同意建立连接,不采用三次握手,只要B发出确认,就建立新的连接了,此时A不理睬B的确认且不发送数据,则B一致等待A发送数据,浪费资源。

(4)Server端易受到SYN攻击?

服务器端的资源分配是在二次握手时分配的,而客户端的资源是在完成三次握手时分配的,所以服务器容易受到SYN洪泛攻击,SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server则回复确认包,并等待Client确认,由于源地址不存在,因此Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络拥塞甚至系统瘫痪。

防范SYN攻击措施:降低主机的等待时间使主机尽快的释放半连接的占用,短时间受到某IP的重复SYN则丢弃后续请求。

2、四次挥手

(1)四次挥手的详述

假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

数据传输结束后,通信的双方都可释放连接,A和B都处于ESTABLISHED状态。(A、B连接建立状态ESTABLISHED——A终止等待1状态FIN-WAIT-1——B关闭等待状态CLOSE-WAIT——A终止等待2状态FIN-WAIT-2——B最后确认状态LAST-ACK——A时间等待状态TIME-WAIT——B、A关闭状态CLOSED)

(2)总结四次挥手过程:

起初A和B处于ESTABLISHED状态——A发出连接释放报文段并处于FIN-WAIT-1状态——B发出确认报文段且进入CLOSE-WAIT状态——A收到确认后,进入FIN-WAIT-2状态,等待B的连接释放报文段——B没有要向A发出的数据,B发出连接释放报文段且进入LAST-ACK状态——A发出确认报文段且进入TIME-WAIT状态——B收到确认报文段后进入CLOSED状态——A经过等待计时器时间2MSL后,进入CLOSED状态。

(3)为什么A在TIME-WAIT状态必须等待2MSL的时间?

MSL最长报文段寿命Maximum Segment Lifetime,MSL=2

答:  两个理由:1)保证A发送的最后一个ACK报文段能够到达B。2)防止“已失效的连接请求报文段”出现在本连接中。

(4)为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

(5)为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。

TCP协议三次握手和四次挥手常见面试题:

1.为什么需要三次握手,两次不可以吗?或者四次、五次可以吗?

我们来分析一种特殊情况,假设客户端请求建立连接,发给服务器SYN包等待服务器确认,服务器收到确认后,如果是两次握手,假设服务器给客户端在第二次握手时发送数据,数据从服务器发出,服务器认为连接已经建立,但在发送数据的过程中数据丢失,客户端认为连接没有建立,会进行重传。假设每次发送的数据一直在丢失,客户端一直SYN,服务器就会产生多个无效连接,占用资源,这个时候服务器可能会挂掉。这个现象就是我们听过的“SYN的洪水攻击”。

总结:第三次握手是为了防止:如果客户端迟迟没有收到服务器返回确认报文,这时会放弃连接,重新启动一条连接请求,但问题是:服务器不知道客户端没有收到,所以他会收到两个连接,浪费连接开销。如果每次都是这样,就会浪费多个连接开销。

四次挥手过程(关闭客户端到服务器的连接)

step1:第一次挥手

首先,客户端发送一个FIN,用来关闭客户端到服务器的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u。

step2:第二次挥手

服务器收到这个FIN,它发送一个ACK,确认ack为收到的序号加一。

step3:第三次挥手

关闭服务器到客户端的连接,发送一个FIN给客户端。

step4:第四次挥手

客户端收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加一。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

客户端发送FIN后,进入终止等待状态,服务器收到客户端连接释放报文段后,就立即给客户端发送确认,服务器就进入CLOSE_WAIT状态,此时TCP服务器进程就通知高层应用进程,因而从客户端到服务器的连接就释放了。此时是“半关闭状态”,即客户端不可以发送给服务器,服务器可以发送给客户端。

此时,如果服务器没有数据报发送给客户端,其应用程序就通知TCP释放连接,然后发送给客户端连接释放数据报,并等待确认。客户端发送确认后,进入TIME_WAIT状态,但是此时TCP连接还没有释放,然后经过等待计时器设置的2MSL后,才进入到CLOSED状态。

2.为什么需要2MSL时间?

首先,MSL即Maximum Segment Lifetime,就是最大报文生存时间,是任何报文在网络上的存在的最长时间,超过这个时间报文将被丢弃。《TCP/IP详解》中是这样描述的:MSL是任何报文段被丢弃前在网络内的最长时间。RFC 793中规定MSL为2分钟,实际应用中常用的是30秒、1分钟、2分钟等。

TCP的TIME_WAIT需要等待2MSL,当TCP的一端发起主动关闭,三次挥手完成后发送第四次挥手的ACK包后就进入这个状态,等待2MSL时间主要目的是:防止最后一个ACK包对方没有收到,那么对方在超时后将重发第三次握手的FIN包,主动关闭端接到重发的FIN包后可以再发一个ACK应答包。在TIME_WAIT状态时两端的端口不能使用,要等到2MSL时间结束才可以继续使用。当连接处于2MSL等待阶段时任何迟到的报文段都将被丢弃。

3.为什么是四次挥手,而不是三次或是五次、六次?

双方关闭连接要经过双方都同意。所以,首先是客服端给服务器发送FIN,要求关闭连接,服务器收到后会发送一个ACK进行确认。服务器然后再发送一个FIN,客户端发送ACK确认,并进入TIME_WAIT状态。等待2MSL后自动关闭。

总结:

(1)为了保证客户端发送的最后一个ACK报文段能够到达服务器。即最后一个确认报文可能丢失,服务器会超时重传,然后服务器发送FIN请求关闭连接,客户端发送ACK确认。一个来回是两个报文生命周期。

如果没有等待时间,发送完确认报文段就立即释放连接的话,服务器就无法重传,因此也就收不到确认,就无法按步骤进入CLOSED状态,即必须收到确认才能close。

(2)防止已经失效的连接请求报文出现在连接中。经过2MSL,在这个连续持续的时间内,产生的所有报文段就可以都从网络消失。

Linux 选择题

说明:在ABCD中加黑的部分为正确答案。

1. cron 后台常驻程序 (daemon) 用于: 

A. 负责文件在网络中的共享

B. 管理打印子系统

C. 跟踪管理系统信息和错误

D. 管理系统日常任务的调度

2. 在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ?

A. 串行口

B. 硬盘 

C. 虚拟终端

D. 打印机

3. 下面哪个Linux命令可以一次显示一页内容?

A. pause

B. cat

C. more 

D. grep

4. 怎样了解您在当前目录下还有多大空间?

A. Use df

B. Use du /

C. Use du . 

D. Use df .

5. 怎样更改一个文件的权限设置?

A. attrib

B. chmod 

C. change

D. file

6. 假如您需要找出 /etc/my.conf 文件属于哪个包 (package) ,您可以执行:

A. rpm -q /etc/my.conf

B. rpm -requires /etc/my.conf

C. rpm -qf /etc/my.conf 

D. rpm -q | grep /etc/my.conf

7. 假如当前系统是在 level 3 运行,怎样不重启系统就可转换到 level 5 运行?

A. Set level = 5

B. telinit 5 

C. run 5

D. ALT-F7-5

8. 那个命令用于改变 IDE 硬盘的设置?

A. hdparam

B. ideconfig

C. hdparm 

D. hddparm

9. 下面哪个命令可以列出定义在以后特定时间运行一次的所有任务?

A. atq

B. cron

C. batch

D. at

10.下面命令的作用是:set PS1="[\u\w\t]\\$" ; export PS1

A. 改变错误信息提示

B. 改变命令提示符

C. 改变一些终端参数

D. 改变辅助命令提示符

11.作为一个管理员,你希望在每一个新用户的目录下放一个文件 .bashrc ,那么你应该在哪个目录下放这个文件,以便于新用户创建主目录时自动将这个文件复制到自己的目录下。

A. /etc/skel/

B. /etc/default/

C. /etc/defaults/

D. /etc/profile.d/

12.在bash中,export命令的作用是:

A. 在子shell中运行命令

B. 使在子shell中可以使用命令历史记录

C. 为其它应用程序设置环境变量

D. 提供NFS分区给网络中的其它系统使用

13.在使用了shadow口令的系统中,/etc/passwd和/etc/shadow两个文件的权限正确的是:

A. -rw-r----- , -r--------

B. -rw-r--r-- , -r--r--r--

C. -rw-r--r-- , -r--------

D. -rw-r--rw- , -r-----r--

14.下面哪个参数可以删除一个用户并同时删除用户的主目录?

A. rmuser -r

B. deluser -r

C. userdel -r

D. usermgr -r

15.有一个备份程序mybackup,需要在周一至周五下午1点和晚上8点各运行一次,下面哪条crontab的项可以完成这项工作?

A. 0 13,20 * * 1,5 mybackup

B. 0 13,20 * * 1,2,3,4,5 mybackup

C. * 13,20 * * 1,2,3,4,5 mybackup

D. 0 13,20 1,5 * *  mybackup

16.如何从当前系统中卸载一个已装载的文件系统

A. umount

B. dismount

C. mount -u

D. 从 /etc/fstab 中删除这个文件系统项

17.如果你的umask设置为022,缺省的你创建的文件的权限为:

A. ----w--w-

B. -w--w----

C. r-xr-x---

D. rw-r--r--

18.在一条命令中如何查找一个二进制命令 Xconfigurator 的路径?

A. apropos Xconfigurator

B. find Xconfigurator

C. where Xconfigurator

D. which Xconfigurator

19.哪一条命令用来装载所有在 /etc/fstab 中定义的文件系统?

A. amount

B. mount -a

C. fmount

D. mount -f

20.运行一个脚本,用户不需要什么样的权限?

A. read

B. write

C. execute

D. browse on the directory

21.在Linux中,如何标识接在IDE0上的slave硬盘的第2个扩展分区?

A. /dev/hdb2

B. /dev/hd1b2

C. /dev/hdb6

D. /dev/hd1b6

22.在应用程序起动时,如何设置进程的优先级?

A. priority

B. nice

C. renice

D. setpri

23.在 bash 中, 在一条命令后加入"1>&2" 意味着:

A. 标准错误输出重定向到标准输入

B. 标准输入重定向到标准错误输出

C. 标准输出重定向到标准错误输出

D. 标准输出重定向到标准输入

24.下面哪条命令可以把f1.txt复制为f2.txt?

A. cp f1.txt | f2.txt

B. cat f1.txt | f2.txt

C. cat f1.txt > f2.txt

D. copy f1.txt | f2.txt

25.显示一个文件最后几行的命令是:

A. tac

B. tail

C. rear

D. last

26.如何快速切换到用户John的主目录下?

A. cd @John

B. cd #John

C. cd &John

D. cd ~John

27.把一个流中所有字符转换成大写字符,可以使用下面哪个命令?

A. tr a-z A-Z

B. tac a-z A-Z

C.sed /a-z/A-Z

D. sed --toupper

28.使用什么命令可以查看Linux的启动信息?

A. mesg -d

B. dmesg

C. cat /etc/mesg

D. cat /var/mesg

29.运行级定义在:

A. in the kernel

B. in /etc/inittab

C. in /etc/runlevels

D. using the rl command

30.如何装载(mount)上在 /etc/fstab 文件中定义的所有文件系统?

A. mount -a

B. mount /mnt/*

C. mount

D. mount /etc/fstab

31.使用ln命令将生成了一个指向文件old的符号链接new,如果你将文件old删除,是否还能够访问文件中的数据?

A. 不可能再访问

B. 仍然可以访问

C. 能否访问取决于文件的所有者

D. 能否访问取决于文件的权限

32.xt2fs文件系统中,缺省的为root用户保留多大的空间?

A. 3%

B. 5%

C. 10%

D. 15%

33.哪个命令用来显示系统中各个分区中inode的使用情况?

A. df -i

B. df -H

C. free -b

D. du -a -c /

34.多数Linux发行版本中,图形方式的运行级定义为?

A. 1

B. 2

C. 3

D. 5

35.在系统文档中找到关于print这个单词的所有说明?

A. man print

B. which print

C. locate print

D. apropos print

36.man 5 passwd 含义是?

A. 显示 passwd 命令的使用方法

B. 显示 passwd 文件的结构

C. 显示 passwd 命令的说明的前五行

D. 显示关于passwd的前五处说明文档。

37.如何在文件中查找显示所有以"*"打头的行?

A. find \* file

B. wc -l * < file

C. grep -n * file

D. grep ‘^\*’ file

38.在ps命令中什么参数是用来显示所有用户的进程的?

A. a

B. b

C. u

D. x

39.显示二进制文件的命令是?

A. od

B. vil

C. view

D. binview

40.如何显示Linux系统中注册的用户数(包含系统用户)?

A. account -l

B. nl /etc/passwd |head

C. wc --users /etc/passwd

D. wc --lines /etc/passwd

41.在一行结束位置加上什么符号,表示未结束,下一行继续?

A. /

B. \

C. ;

D. |

42.命令 kill 9 的含义是:

A. kills the process whose PID is 9.

B. kills all processes belonging to UID 9.

C. sends SIGKILL to the process whose PID is 9.

D. sends SIGTERM to the process whose PID IS 9.

43.如何删除一个非空子目录/tmp?

A. del /tmp/*

B. rm -rf /tmp

C. rm -Ra /tmp/*

D. rm -rf /tmp/*

44.使用什么命令可以在今天午夜运行命令 cmd1 ?

A. at midnight cmd1

B. cron -at "00:00" cmd1

C. batch -t "00:00" < cmd1

D. echo "cmd1" | at midnight

45.你的系统使用增量备份策略,当需要恢复系统时,你需要按什么顺序恢复备份数据?

A. 最后一次全备份,然后从最早到最近的增量备份

B. 最后一次全备份,然后从最近到最早的增量备份

C. 最早到最近的增量备份,然后最后一次全备份

D. 最近到最早的增量备份,然后最后一次全备份

46.对所有用户的变量设置,应当放在哪个文件下?

A. /etc/bashrc

B. /etc/profile

C. ~/.bash_profile

D. /etc/skel/.bashrc

47.Linux系统中,一般把命令 ls 定义为 ls --color 的别名,以便以不同颜色来标识不同类型的文件。但是,如何能够使用原先的ls命令?

A. \ls

B. ;ls

C. ls $$

D. ls --noalias

48.在Linux系统中的脚本文件一般以什么开头?

A. $/bin/sh

B. #!/bin/sh

C. use /bin/sh

D. set shell=/bin/sh

49.下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

A. cmd1&&cmd2

B. cmd1|cmd2

C. cmd1;cmd2

D. cmd1||cmd2

50.在哪个文件中定义网卡的I/O地址?

A. cat /proc/modules

B. cat /proc/devices

C. cat /proc/ioports

D. cat /io/dma

51.Linux中,提供TCP/IP包过滤功能的软件叫什么?

A. rarp

B. route

C. iptables

D. filter

52.如何暂停一个打印队列?

A. lpr

B. lpq

C. lpc

D. lpd

53.在vi中退出不保存的命令是?

A. :q

B. :w

C. :wq

D. :q!

54.在 XFree86 3.x 中, 缺省的字体服务器为:

A. xfs

B. xfserv

C. fonts

D. xfstt

55.使用什么命令检测基本网络连接?

A. ping

B. route

C. netstat

D. ifconfig

56.下面哪个协议使用了二个以上的端口?

A. telnet

B. FTP

C. rsh

D. HTTP

57.在PPP协议中,哪个认证协议不以明文传递密码?

A. PAM

B. PAP

C. PGP

D. CHAP

58.下面哪个文件系统应该分配最大的空间?

A. /usr

B. /lib

C. /root

D. /bin

59.如何在Debian系统中安装rpm包?

A. alien pkgname.rpm

B. dpkg --rpm pkgname.rpm

C. dpkg --alien pkgname.rpm

D. alien pkganme.rpm ; dpkg -i pkganme.deb

60.在安装软件时下面哪一步需要root权限?

A. make

B. make deps

C. make config

D. make install

61.什么命令用来只更新已经安装过的rpm软件包?

A. rpm -U *.rpm

B. rpm -F *.rpm

C. rpm -e *.rpm

D. rpm -q *.rpm

62.在 windows 与 Linux 双起动的系统中,如果要让LILO 管理引导,则 LILO 应该放在:

A. MBR

B. /

C. root分区的首扇区

D. /LILO

63.ldconfig的配置文件是

A. /lib/ld.so

B. /etc/ld.so.conf

C. /etc/ld.so.cache

D. /etc/modules.conf

64.下面哪个命令可以压缩部分文件:

A. tar -dzvf filename.tgz *

B. tar -tzvf filename.tgz *

C. tar -czvf filename.tgz *

D. tar -xzvf filename.tgz *

65.网络服务的daemon是:

A. lpd

B. netd

C. httpd

D. inetd

66.Linux与windows 的网上领居互联,需要提供什么daemon?

A. bind

B. smbd

C. nmbd

D. shard

67.对于Apache服务器,提供的子进程的缺省的用户是:

A. root

B. apached

C. httpd

D. nobody

68.sendmail中缺省的未发出信件的存放位置是:

A. /var/mail/

B. /var/spool/mail/

C. /var/spool/mqueue/

D. /var/mail/deliver/

69.apache的主配置文件是:

A. httpd.conf

B. httpd.cfg

C. access.cfg

D. apache.conf

70.关于可装载的模块,装载时的参数,如I/O地址等的存放位置是:

A. /etc/conf.modules

B. /etc/lilo.conf

C. /boot/System.map

D. /etc/sysconfig

71.在 Linux 中,如何关闭邮件提示?

A. biff n

B. mesg n

C. notify off

D. set notify=off

72.在 bash shell 环境下,当一命令正在执行时,按下 control-Z 会:

A. 中止前台任务

B. 给当前文件加上 EOF.

C. 将前台任务转入后台 

D. 注销当前用户

73.定义bash环境的用户文件是:

A. bash & .bashrc

B. bashrc & .bash_conf

C. bashrc & bash_profile

D. .bashrc & .bash_profile

74.下面哪条命令用来显示一个程序所使用的库文件?

A. ldd

B. ld so

C. modprobe

D. ldconfig

75.如何查看一个RPM软件的配置文件的存放位置?

A. rpm -qc rpm1

B. rpm -Vc rpm1

C. rpm --config rpm1

D. rpm -qa --config rpm1

76.如何查看一个RPM软件的修改记录?

A. rpm -Vc postfix

B. rpm -qpil postfix

C. rpm --changelog postfix

D. rpm -q --changelog postfix

77.通过Makefile来安装已编译过的代码的命令是:

A. make

B. install

C. make depend

D. make install

78.什么命令解压缩tar文件?

A. tar -czvf filename.tgz

B. tar -xzvf filename.tgz

C. tar -tzvf filename.tgz

D. tar -dzvf filename.tgz

79.在 XF86Config 配置文件中,哪个段用来设置字体文件?

A. The Fonts section.

B. The Files section.

C. The xfsCodes section.

D. The Graphics section.

80.8 bit color 指的是:

A. 64K colors

B. 16K colors

C. 256 colors

D. 16M colors

81.下面哪个文件用来设置 X window 的显示分辨率?

A. xinit

B. xinitrc

C. XF86Setup

D. XF86Config

82.哪个变量用来指定一个远程X应用程序将输出放到哪个X server上?

A. DISPLAY

B. TERM

C. ECHO

D. OUTPUT

83.在xdm的配置目录中,哪个文件用来设置在用户通过xdm登录后自动起动的应用程序?

A. The Xsession file

B. The Xsetup_0 file

C. The Xstart_up file

D. The GiveConsole file

84.命令 netstat -a 停了很长时间没有响应,这可能是哪里的问题?

A. NFS.

B. DNS.

C. NIS.

D. routing.

85.ping使用的协议是:

A. TCP

B. UDP

C. SMB

D. ICMP

86.下面哪个命令不是用来查看网络故障的?

A. ping

B. init

C. telnet

D. netstat

87.拨号上网使用的协议通常是:

A. PPP

B. UUCP

C. SLIP

D. Ethernet

88.TCP/IP中,哪个协议是用来进行IP自动分配的?

A. ARP

B. NFS

C. DHCP

D. DNS

89.下面哪个文件定义了网络服务的端口?

A. /etc/netport

B. /etc/services

C. /etc/server

D. /etc/netconf

90.下面哪个功能用来生成一个文件的校验码?

A. md5

B. tar

C. crypt

D. md5sum

91.缺省的,用户邮件放在:

A. ~/mail/

B. /var/mail/

C. /var/mail/spool/

D. /var/spool/mail/

92.下面哪个文件包含了供 NFS daemon 使用的目录列表?

A. /etc/nfs

B. /etc/nfs.conf

C. /etc/exports

D. /etc/netdir

93.如何停止一台机器的telnet服务?

A. Put NONE in /etc/telnet.allow

B. Put a line 'ALL:ALL' in /etc/hosts.deny

C. Comment the telnet entry in /etc/inittab

D. Comment the telnet entry in /etc/xinetd.conf

94.在哪个文件中保存了sendmail的别名?

A. /etc/aliases

B. /etc/mailaliases

C. /etc/sendmail.aliases

D. /etc/sendmail/aliases

95.smbd and nmbddaemons 的配置文件是:

A. /etc/exports

B. /etc/smb.conf

C. /etc/samba/config

D. /usr/local/samba.cfg

96.下面哪个命令用来卸载一个内核模块?

A. rmmod

B. unmod

C. delmod

D. modprobe

97.什么情况下必须运行lilo

A. once a day from cron

B. once a week from cron

C. after installing a new kernel

D. after installing a new module

98.什么命令显示所有装载的模块?

A. lsmod

B. dirmod

C. modules

D. modlist

99.下面哪个命令刷新打印机队列?

A. lpflush

B. lprm -

C. lpclear

D. lprm all

100.下面哪个命令可以查看网卡的中断?

A. cat /proc/ioports

B. cat /proc/interrupts

C. cat /proc/memoryinfo

D. which interrupts


Linux 问答题

1.在Linux中什么是平均负载?

答:

平均负载被定义为在1分钟,5分钟和15分钟内等待在运行队列中的进程数目和当前正在执行的进程数目之和的平均值。使用 'top’ 和 'uptime’ 命令我们可以查询一个 Linux 服务器的平均负载。

2.Puppet Master 在哪里存储证书?

答:

/var/lib/puppet/ssl/ca/signed

3.在 Puppet 服务器中哪一个命令用于给请求的证书签名?

答:

在2.x中使用 'puppetca  –sign hostname-of-agent’ 

在3.x中使用 'puppet ca  sign hostname-of-agent’

4.某一天突然发现Linux系统文件只读,该怎么办呢?

答:

首先把系统关机,然后以光盘启动进入救援模式(linux rescue),执行"fsck.ext3 -y /dev/sda2" (假如只读的分区类型为ext3,分区为/dev/sda2)

5.如何修改Linux启动级别为字符模式并永久生效,如何临时、永久关闭selinux及防火墙,请分别写出操作方法

答:

更改字符模式:修改/etc/inittab一行为 id:3:initdefault:

临时关闭selinnux  setenforce 0

临时关闭防火墙    iptables -F

永久关闭selinux   修改/etc/selinux/config一行为 SELINUX=permissive

永久关闭防火墙   iptables -F;/etc/init.d/iptables save

6.在这个月内,每天的早上 6 点到 12 点中,每隔 2 小时创建一个test.txt文件,内容为ok,如何实现?

答:

a、crontab -e 进入编辑模式

b、添加以下内容 0 6-12/2 * 4 * /bin/touch test.txt   (以4月为例)

c、启动服务 service crontab start;chkconfig crontab on

7.将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下。

答:

find /usr/local/test -type f -size +100k -exec mv {} /tmp \;

8.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0:

答:

# iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp --dport 80 -j DNAT --to 192.168.16.1:8080

或者:

# iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

9.linux系统中如何获取pid为100的进程所监听的tcp端口,请给出详细命令?

答:

netstat -nlpt |grep 100

10.当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?注:本机跟本地dns还没有缓存。

答:

a.用户输入网址到浏览器;

b.浏览器发出DNS请求信息;

c.计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步;

d.计算机按照本地DNS的顺序,向合法dns服务器查询IP结果;

e.合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果;

f.返回IP结果给浏览器;

g.浏览器根据IP信息,获取页面;

11.描述Linux shell中单引号、双引号及不加引号的简单区别

答:

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

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

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

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

12.在mysql客户端查询工具中,如何获取当前的所有连接进程信息

答:mysql> show full processlist;

你可能感兴趣的:(企业面试题(随时补充))