转帖 linux 公司面试题

linux 公司面试题
 
 

1. Linux系统中,以文件 方式访问设备 。

2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。

3. Linux文件系统中每个文件用 i节点来标识。

4. 全部磁盘块由四个部分组成,分别为引导块 、专用块、 i节点表块 和数据存储块。

5. 链接分为: 硬链接 和 符号链接 。

6. 超级块包含了i节点表和 空闲块表 等重要的文件系统信息。

7. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是目录 。

8. 前台起动的进程使用 Ctrl+c 终止。

9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。

10. 网络管理的重要任务是: 控制 和 监控 。

11. 安装Linux系统对硬盘分区时,必须有两种分区类型:文件系统分区 和 交换分区 。

13. 编写的Shell程序运行前必须赋予该脚本文件执行 权限。

14. 系统管理的任务之一是能够在 分布式环境中实现对程序和数据的安全保护、备份、恢复和更新。

15. 系统交换分区是作为系统 虚拟存储器 的一块区域。

16. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统等四个子系统。

17. 内核配置是系统管理员在改变系统配置 硬件时要进行的重要操作。

18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、网关地址 和 子网掩码 等必要信息。

19. 唯一标识每一个用户的是用户 ID 和用户名。

20 . RIP 协议是最为普遍的一种内部协议,一般称为动态路由选择协议。

21. Linux系统中所有内容都被表示为文件,组织文件的各种方法称为文件系统 。

22. DHCP可以实现动态 IP 地址分配。

23. 系统网络管理员的管理对象是服务器、 用户和服务器的进程 以及系统的各种资源。

24. 网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的中心。

25. 当想删除本系统用不上的 设备驱动程序时必须编译内核,当内核不支持系统上的 设备驱动程序时,必须对内核 升级 。

26 Ping命令可以测试网络中本机系统是否能到达一台远程主机 ,所以常常用于测试网络的 连通性 。

27. vi编辑器具有两种工作模式: 命令模式 和 输入模式。

28. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型,第二段占3位,表示文件所有者 对该文件的权限。

29. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为:运行态 、 就绪态 和 等待态(阻塞态) 。

30. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址和主机名 之间的转换。

31. Apache是实现WWW服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端为用户提供浏览 web服务的就是apache应用程序。

32. Linux系统上做备份可以有两种类型:系统备份和 用户备份 。其中前者是指对 操作系统 的备份,后者是指对应用程序和用户文件的备份。

33. CD-ROM标准的文件系统类型是 iso9660

34. lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo

35. 在使用ls命令时,用八进制形式显示非打印字符应使用参数 -b

36. Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat

37. 设定限制用户使用磁盘空间的命令是 quota

38 Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc

39. 硬连接只能建立对 文件 链接。符号链接可以跨不同文件系统创建。

40. 套接字文件的属性位是 s

41. 结束后台进程的命令是 kill

42. 进程的运行有两种方式,即 独立运行和使用父进程运行。

43. Links分为 硬链接和符号链接 。

44. 在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux

45. 管道文件的属性位是 p

46. 将前一个命令的标准输出作为后一个命令的标准输入,称之为管道 。

47. 为脚本程序指定执行权的命令及参数是 chmod a+x filename

48. 进行远程登录的命令是 telnet

49. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是: ping abc.tuu.edu.cn –c 10

50. DNS服务器的进程命名为named,当其启动时,自动装载 /etc目录下的 named.conf 文件中定义的DNS分区数据库文件。

51. Apache服务器进程配置文件是 httpd.conf

 

 

52.Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip

53. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入:w test.txt

54 可以在标准输出上显示整年日历的命令及参数是 cal -y

55. shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有空格 。

56. 检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是 fsck –a /dev/had5

57. Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 Samba服务器 。

58. 系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和系统性能监测 。

59 Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup

60. Linux系统下,第二个IDE通道的硬盘(从盘)被标识为 hdb

61. 当系统管理员需升级内核版本和改变系统硬件配置时,应重新编译内核 。

62. 如果只是要修改系统的IP地址,应修改 /etc/rc.d/rc.inet1 配置文件。

63. LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts 文件。

64. vi编辑环境下,使用 Esc键 进行模式转换。

65. Slackware Linux 9.0通常使用 ext3 文件系统,系统的全部磁盘块由 四 部分组成。

66. /home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar zcvf /home/wang.tar.gz /home/stud1/wang

67. 管道就是将前一个命令的 标准输出 作为后一个命令的标准输入 。

68. 在使用手工的方法配置网络时,可通过修改 /etc/HOSTNAME 文件来改变主机名,若要配置该计算机的域名解析客户端,需配置 /etc/resolv.conf 文件。

69. 启动进程有手动启动和调度启动两种方法,其中调度启动常用的命令为 at batch crontab

70. test.bns.com.cn的域名是 bns.com.cn ,如果要配置一域名服务器,应在 named.conf 文件中定义DNS数据库的工作目录。

71. Sendmail邮件系统使用的两个主要协议是: SMTP POP ,前者用来发送邮件,后者用来接收邮件。

72. DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址。

73. 目前代理服务器使用的软件包有很多种,教材中使用的是 squid

74. rm命令可删除文件或目录,其主要差别就是是否使用递归开关 -r-R

75. mv 命令可以移动文件和目录,还可以为文件和目录重新命名。

76. 路由选择协议(RIP)的跳数表示到达目的地之前必须通过的网关 数,RIP接受的最长距离是 15跳 。

77. ping命令用于测试网络的连通性,ping命令通过 ICMP 协议来实现。

78. nfs 协议用于实现Unix/linux)主机之间的文件系统共享。

79. Linux操作系统中,设备都是通过特殊的文件 来访问。

80. shell不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言。 bashLinux的缺省shell

81. >;>; 符号将输出重定向内容附加在原文的后面。

82. 增加一个用户的命令是:adduser useradd

83 进行字符串查找,使用grep命令。

84. 使用 * 每次匹配若干个字符。

85. /sbin 目录用来存放系统管理员使用的管理程序。

基础部份:

 

1.下列程序在32linuxunix中的结果是什么?

func(char *str)

{

printf("%d",sizeof(str));

printf("%d",strlen(str));

}

main()

{

char a[]="123456789";

 

printf("%d",sizeof(a));

 

func(a);

}

 

: 10 4 9

 

网络/网络编程部份:

 

1connect方法会阻塞,请问有什么方法可以避免其长时间阻塞?

:最通常的方法最有效的是加定时器;也可以采用非阻塞模式。

 

2、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?

:若客户端掉线或者重新启动,服务器端会收到复位信号,每一种tcp/ip得实现不一样,控制机制也不一样。

 

3.在子网210.27.48.21/30种有多少个可用地址?分别是什么?

:

 

:

30表示的是网络号(network number)30位,剩下2位中11是广播(broadcast)地址,00multicast地址,只有0110可以作为host address

 

:

210.27.48.21/30代表的子网的网络号是30位,即网络号是210.27.48.21 & 255.255.255.251=210.27.48.20,此子网的地址空间是2位,即可以有4个地址:210.27.48.20, 210.27.48.21, 210.27.48.22, 210.27.48.23。第一个地址的主机号(host number/id)0,而主机号0代表的是multicast地址。最后一个地址的最后两位是11,主机号每一位都为1代表的是广播(broadcast)地址。所以只有中间两个地址可以给host使用。其实那个问题本身不准确,广播或multicast地止也是可以使用的地址,所以回答4也应该正确,当然问的人也可能是想要你回答2。我个人觉得最好的回答是一个广播地址,一个multicast地址,2unicast地址。

 

4.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?

:

:TTLTime To Live,一般是hup count,每经过一个路由就会被减去一,如果它变成0,包会被丢掉。它的主要目的是防止包在有回路的网络上死转,浪费网络资源。pingtraceroute用到它。

 

:TTLTime To Live,目前是hup count,当包每经过一个路由器它就会被减去一,如果它变成0,路由器就会把包丢掉。IP网络往往带有环(loop),比如子网A和子网B有两个路由器相连,它就是一个loopTTL的主要目的是防止包在有回路的网络上死转,因为包的TTL最终后变成0而使得此包从网上消失(此时往往路由器会送一个ICMP包回来,traceroute就是根据这个做的)ping会送包出去,所以里面有它,但是ping不一定非要不可它。traceroute则是完全因为有它才能成的。ifconfig是用来配置网卡的,netstat -rn 是用来列路由表的,所以都用不着它

 

5.路由表示做什么用的?在linux环境中怎么来配置一条默认路由?

:

:路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从

一个网卡接收到的包应该送的哪一张网卡上的。在Linux上可以用“route add default gw <默认路由器IP>”来配置一条默认路由。

 

:路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包应该送的哪一张网卡上的。路由表的每一行至少有目标网络号、netmask、到这个子网应该使用的网卡。当路由器从一个网卡接收到一个包时,它扫描路由表的每一行,用里面的netmask和包里的目标IP地址做并逻辑运算(&)找出目标网络号,如果此网络号和这一行里的网络号相同就将这条路由保留下来做为备用路由,如果已经有备用路由了就在这两条路由里将网络号最长的留下来,另一条丢掉,如此接着扫描下一行直到结束。如果扫描结束任没有找到任何路由,就用默认路由。确定路由后,直接将包送到对应的网卡上去。在具体的实现中,路由表可能包含更多的信息为选路由算法的细节所用。题外话:路由算法其实效率很差,而且不scalable,解决办法是使用IP交换机,比如MPLS

Linux上可以用“route add default gw <默认路由器IP>”来配置一条默认路由。

 

6.在网络中有两台主机AB,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排除故障?

:测试这两台机器是否连通:从一台机器ping另一台机器

如果ping不通,用traceroute可以确定是哪个路由器不能连通,然后再找问题是在交换设备/hup/cable等。

 

7.网络编程中设计并发服务器,使用多进程与 多线程 ,请问有什么区别?

答案一:

1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。

2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

两者都可以提高程序的并发度,提高程序运行效率和响应时间。

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

 

答案二:

根本区别就一点:用多进程每个进程有自己的地址空间(address space),线程则共享地址空间。所有其它区别都是由此而来的:

1。速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。

2。资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。

3。同步问题:线程使用公共变量/内存时需要使用同步机制还是因为他们在同一个地址空间内。

 

下列程序在32linuxunix中的结果是什么?

func(char *str)

{

printf(" %d",sizeof(str));

printf(" %d",strlen(str));

}

main()

{

char a[]="123456789";

printf(" %d",sizeof(a));

printf(" %d",strlen(a));

func(a);

}

 

结果: 10 9 4 9

 

第一题:写出下述程序结果:

int m[][3] = {1,4,7,2,5,8,3,6,9};

int i, j, k = 2;

for (i = 0; i < 3; i++) {

printf(“%d”, m[k]);

}

结果为地址

第二题:下列哪个引用是不正确的?

int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;

(A) a[p-a]; (B) *(&a); (c) p; (D) *(*(a+i));

:D

第三题:下列4个选项中,哪个结果为6

int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;

(A) *p + 6; (B) *(p+6); (C) *p += 5; (D) p+5;

: A B

1、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

: MIN(x,y) (x)<(y)?(x):(y)

2、给定一个整型变量a,写两段代码,第一个设置abit 3,第二个清除a bit 3。在以上两个操作中,要保持其它位不变。

: int a = 2;

int i ;

i = 1 <<2;

a = a | i;

 

3、在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。写代码去完成这一任务。

: int *p = 0x67a9;

*p = 0xaa66;

你可能感兴趣的:(linux,linux,dns服务器,网络,路由器,服务器,测试)