Skip to content

PlutoaCharon/LiunxNotes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

校招-服务端开发(Liunx,Python,Golang)面试学习笔记

1. 网络基础类

  1. ​ OSI7层模型(TCP4层)

  2. ​ HTTP

  3. ​ TCP/IP

2. Linux系统管理类

3. Linux服务管理类

4. 数据库管理

  1. ​ 索引(包括分类及优化方式,失效条件,底层结构)Mysql索引
  2. ​ sql语法(join,union,子查询,having,group by)
  3. SQL语句
  4. ​ 引擎对比(InnoDB,MyISAM)
  5. ​ 数据库的锁(行锁,表锁,页级锁,意向锁,读锁,写锁,悲观锁,乐观锁,以及加锁的select sql方式)
  6. ​ 隔离级别,依次解决的问题(脏读、不可重复读、幻读)
  7. ​ 事务的ACID
  8. ​ B树、B+树
  9. ​ 优化(explain,慢查询,show profile)
  10. ​ 数据库的范式
  11. ​ 分库分表,Mysql主从复制, 读写分离
  12. ​ Nosql相关(redis和mem***d区别之类的,如果你熟悉redis,redis还有一堆要问的) Redis

5. 算法和数据结构

  1. ​ 数组、链表、二叉树、队列、栈的各种操作(性能,场景)
  2. ​ 二分查找和各种变种的二分查找
  3. ​ 各类排序算法以及复杂度分析(快排、归并、堆
  4. ​ 各类算法题(手写)
  5. ​ 理解并可以分析时间和空间复杂度
  6. ​ 动态规划、贪心
  7. ​ 红黑树、AVL树、Hash树、Tire树、B树、B+树。
  8. ​ 图算法(比较少,也就两个最短路径算法理解吧)

6. 操作系统

  1. ​ 进程通信IPC(几种方式),与线程区别

  2. ​ OS的几种策略(页面置换,进程调度等,每个里面有几种算法)

  3. ​ 互斥与死锁相关的

  4. ​ linux常用命令(问的时候都会给具体某一个场景)

  5. ​ Linux内核相关(select、poll、epoll)

  6. 进程与线程

  7. ​ 协程和线程的区别

  8. 僵尸进程孤儿进程

  9. ​ (B)IO/NIO/AIO

    • ​ 三者原理,各个语言是怎么实现的
    • ​ Netty
    • ​ Linux内核select poll epoll
  10. 阻塞非阻塞与同步异步

7. 自动化

  1. PXE
  2. ​ Ansible

8. 编程语言

  1. ​ Python语言
  2. ​ Golang语言

  3. ​ Shell语言

8. Docker

9. Kubernetes

10. 项目

ElasticSearch脑裂

ElasticSearch


Linux运维-经典面试题汇总

牛客网络基础常考面试题

Liunx常见面试题

一、网络基础类面试题:

1、简述ISO/OSI七层模型的分层与作用

2、TCP/IP四层模型与作用?

3、TCP协议与UDP协议工作在哪一层,作用是什么?

4、简述TCP三次握手的过程。

5、简述TCP包头的内容。

6、简述TCP四次挥手的过程。

7、172.22.141.231/26,该IP位于哪个网段?该网段拥有多少可用IP地址?广播地址是什么?

8、简述IP地址的分类。

9、简述私有IP地址的作用。

二、Linux系统管理类面试题:

1、简述Linux权限划分原则。

2、当用户user1,对/testdir 目录有写和执行权限时,该目录下的只读文件file1 是否可修改和删除?

3、如果一个系统没有任何的备份策略,请写出一个较为全面合理的备份方案!

4、网站服务器每天产生的日志数量较大,请问如何备份?

5、简述Raid 0、Raid 1、Raid 5的特点与原理。

6、简述Raid 6、Raid 10的特点与原理。

7、软Raid与硬Raid的区别?

8、Linux中有许多系统资源需要监管,请问有哪些命令可以查看?

9、简述CentOS 6.x的启动过程?

10、简述CentOS 7.x的启动过程?

11、如何进行Linux系统优化?

三、Shell编程类面试题:

1、有一个b.txt文本(内容如下),要求将所有域名截取出来,并统计重复域名出现的次数:

http://www.baidu.com/index.html 
https://www.4399.com/index.html
http://www.sina.com.cn/1024.html
https://www.4399.com/2048.html
http://www.sina.com.cn/4096.html
https://www.4399.com/8192.html

答案:

cat b.txt | cut -d "/" -f 3 | sort | uniq -c | sort –nr 

cut -d 按照分隔符分割 -f 3 截取第三列

uniq -c 显示该行重复次数

sort -nr 按照数字从大到小排列

2、统计当前服务器正在连接的IP地址,并按连接次数排序

3、使用循环在/test目录下创建10个txt文件,要求文件名称由6位随机小写字母加固定字符串(_gg)组成,例如:pzjebg_gg.txt。

#!/bin/bash 
if [ ! -d /atguigu ] #判断测试目录是否建立
then 
	mkdir /test
fi 
cd /test #进入测试目录
for (( i=1;i<=10;i++ )) #循环10次,每次循环建立6位随机数文件
do 
	filename=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 6)
	touch "$filename"_gg.txt 
done

4、生成随机数字。

5、批量检查多个网站是否可以正常访问,要求使用shell数组实现,检测策略尽量模拟用户真实访问模式。

http://www.4399.com
http://www.gulixueyuan.com 
http://www.baidu.com
#!/bin/bash
web=(
http://www.4399.com
http://www.gulixueyuan.com 
http://www.baidu.com
1.1.1.1
) #定义数组

for i in ${web[*]}#按照数组中值的个数循环,每次循环把数组中值赋予变量i
do         
	code=$( curl -o /dev/null -s --connect-timeout 5 -w ‘%{http_code}’  $i | grep -E “200|302” )#检测curl状态码
    if [ “$code!= “” ]#变量$code值不为空,则证明网页可以访问        
    then                 
    	echo "$i is ok" >> /root/ok.log        
    else  #变量$code值为空,则休眠10秒,重新检测                
    	sleep 10                 
    	code=$( curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}' $i | grep -E "200|302" )
    	if [ "$code" != "" ]                
    	then                         
    		echo "$i is ok" >> /root/ok.log                
    	else                        
    	echo "$i is error" >> /root/error.log                
    	fi        
    fi
done

四、Linux网络服务类面试题:

1、哪些设置能够提升SSH远程管理的安全等级

  1. 登录验证模式修改为密钥登录
  2. 登录端口修改为非22端口以及指定监听IP
  3. 禁止root用户远程登录
  4. 设置无操作时自动断开连接设置
  5. 登录失败后登录尝试次数为6次
  6. 编写防火墙规则,使用白名单机制放行ssh服务的监听端口

2、ssh连接时认证时间过长如何解决?

DNS反向解析请求时间过长,以检查此主机名是否与其IP地址真实对应

配置文件:/etc/ssh/sshd_config

#UseDns yes     修改为no   #取消ssh登录时的dns反向解析请求功能

注意事项:在/etc/ssh/sshd_config配置文件中注释掉的选项不代表不生效,反而代表默认生效,想关闭某功能,一定要取消注释然后修改为no才可以。

3、scp和rsync进行远程文件复制有什么区别?

scp 全量备份 文件级传输 加密传输 资源消耗低
rsync 差异对比,增量备份 分块校验,部分传输 非加密传输 资源消耗高(零散文件较多)

4、请描述通过DHCP服务器获取IP地址的过程。

5、简单描述FTP的主动模式和被动模式的区别?

6、集群环境中,如何保证所有服务器之间的时间误差较小。

手动测试同步:ntpdate 时间服务器IP地址
自动同步:可以将命令写入计划任务

7、请描述用户访问网站时DNS的解析过程。

8、解释权威DNS和递归DNS的含义,并描述智能DNS的实现原理。

权威DNS是经上一级授权对域名进行解析的DNS服务器,同时它可以把解析授权转授给其他服务器
递归DNS负责接受用户对任何域名的查询,并返回结果给用户,它可以缓存结果避免用户再向上查询

智能DNS就是将对用户发起的查询进行判断出是哪个运营商的用户查询,然后将请求转发给相应的运营商IP处理,减少跨运营访问的时间,提高访问速度

9、公司里有一台服务器,需要在上面跑两个网站,并且其中一个网站需要更换新域名,请问如何处理?

网站1:www.a.com 

网站2:www.b.com(旧)www.d.com(新)

10、简述Apache的三种工作模式?

11、请写出工作中常见的Apache优化策略

设置Apache的日志轮替和切割规则,防止日志过大
美化错误页面,将错误页面重定向到首页或指定页面
屏蔽Apache的版本等信息,防止别人获取Apache的相应版本
配置静态缓存,减少对服务器的访问压力
禁止解析指定目录下的页面程序,比如upload,禁止解析用户上传的脚本文件

12、有哪些技术可以提高网站的安全和效率?

13、Apache和Nginx各有什么优缺点,应该如何选择?

14、为什么Nginx的并发能力强,资源消耗低?

15、写出几个Nginx的常用模块,并描述其功能。

16、请解释Nginx是如何连接PHP进行页面解析的?

17、请描述Nginx和Tomcat之间的数据传输过程?

18、请写出几个常见的HTTP状态码,并解释出现原因。

五、数据库管理类面试题:

1、库表student.report,有3个字段,姓名、学科、成绩,记录如下,根据要求完成SQL语句:

Name Subject Result
李白 Math 95
杜甫 English 83
李商隐 Math 79
白居易 Math 98
李清照 English 85
王维 Math 74

1.1 查询姓李的同学的个数。

select count(*) from student.report where Nmae like '李%'

1.2 查询表中成绩大于80的前2名同学的名字,并按分数从大到小的顺序排列。

select Result from report ORDER BY Restult DESC limit 2

2、MYSQL集群一主多从,主库宕机,如何合理切换到从库,其它从库如何处理?

3、单台MySQL达到性能瓶颈时,如何击碎性能瓶颈?

4、MySQL什么时候创建索引?

5、误操作drop语句导致数据库数据破坏,请给出恢复的实际大体步骤。

手动切割binlog日志并记好切割好的binlog日志文件位置,这里假设为009,备份全部binlog日志
找到之前全备数据最后备份到的binlog文件位置并记好位置,这里假设为005
用mysqladmin命令将005到008binlog文件中的SQL语句分离出来,并找到drop库的语句将其删掉
将之前全备数据导入mysql服务器
将步骤3中分离出的SQL语句导入mysql服务器
将009binlog文件删除,再次刷新binlog日志,到此数据库已恢复成功

6、如何保证Redis能永久保存数据?

7、如何利用Redis对MySQL进行性能优化?

About

校招-服务端开发(Liunx,Python,Golang)面试学习笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published