• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

我所遇到面试官出的奇葩面试题

最近面试了一些大公司,面试官们爱出一些比较有意思的面试题,在这里,我总结一些自己觉得印象深刻的,更新分享給大家。

希望给到大家一些帮助!

童鞋,你在以后面试中遇到了什么比较有意思得面试题,也欢迎和我交流,我的邮件 jeson@imoocc.com 时时开放着....

[From 滴滴打车]

面试题1、在linux系统上,有哪些命令是打死都不能随便执行的?

一个是:rm –rf /* 这个命令对于系统来说是致命的,一定不要使用。
其次是:chmod – R 777 /* 这个会破坏整个系统的权限体系,因此不要使用。

 

面试题2、rm -rf /$FOO 和 cd /tmp/logs;rm -rf ./* 这个可以执行吗?

不能!不能!不能!

$FOO  变量如果为空格开头,会把文件系统整体删除。

;由于不会判断前面的命令cd /tmp/logs是否执行成功,同样执行后面rm ,当logs不存在或者执行异常错误时,rm -rf也会执行,是相当致命的。

 

面试题3、谈谈HTTP返回码中的499、500、502、504

首先,谈谈499,它区别于500+系列,是Nginx端返回的,他是客户端(及连接nginx的前段客户)主动断开连接。

500 502 504 都是后台服务错误导致。

500:很明显的程序内部错误,很常见的出现是由于程序的内部语法逻辑出错导致。

502:Bad gateway!常出现的一种场景,比如我们用nginx做代理,当upstream到后端的某一个服务,这个服务没任何响应。nginx就会return  502的响应。

504:Gareway timeout! 表示后端的服务能接收请求,但是迟迟未能完成整个代码逻辑,后台服务只能主动超时断开请求,这个时候return 504.

 

[From 阿里巴巴]

1、Python去重一个list,用到哪些方式

方法1、

old_list = [2,2,3,3,4,4,53,4,5,2]

new_list = []

for i in old_list:

    if i not in new_list:

        new_list.appen(i)

print i 

 

方法2、

old_list = [2,2,3,3,4,4,53,4,5,2]

new_list= list(set(old_list))

//按照原来的顺序排序

news_ids.sort(ids.index)

 

 2、Python的静态方法特征

本质的区别:

1、定义的时候,需要传递cls类实例。静态方法无需传入self参数,类成员方法需传入代表本类的cls参数.

2、静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量,静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法.

 

 3、用shell比对文件,然后去除两个文件中重复行

for i in `comm -12 1.txt 2.txt `;do

   sed -i "/$i/d" 1.txt ;

   sed -i "/$i/d" 2.txt ;

done;

 

4、谈谈UDP包攻击的源IP伪造技术

我觉得TCP因为需要建立三次握手,所以需要进行TCP协议的源IP伪造会相对复杂,所以很多DDOS中的攻击利用的协议伪造都是基于UDP的协议进行的,如:DNS反射攻击、NTP反射等等

伪造的大体原理如下:

A、B在不同的局域网内。
A向我发一个数据包。我这边就得到它的IP和端口。
B也向我发一个数据包,我也把它的IP和端口记录下来。
我再用SOCKET RAW把UDP包的源IP和端口改成和B的IP和端口一样,并告诉A,叫他去连接B。

[From 头条]

1、以下程序会输出多少行#

# -*- coding: utf-8 -*-

#!/usr/bin/python

#########################################################################

# File Name: /tmp/test.py

# Program function:

# Author:Jeson

# mail:jeson@imoocc.com

# Created Time: 日  9/ 4 13:07:42 2016

#========================================================================

import os

i = 5

while (i > 0):

     print "#"

     i = i -1

     os.fork()

没有答出来,我写程序执行后输出的是 160个#

且规则如下:

i=1时 输出 2个#  

i=2时 输出 8个#

i=3时 输出24个#

那么,规则当i赋值n时输出 : 2的n次方*n个           

无法理解os.fork()了......?????

 

我所遇到面试官出的奇葩面试题

Pingbacks已打开。

引用地址

暂无评论

发表评论