45.linux面试题
Posted HJingLei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了45.linux面试题相关的知识,希望对你有一定的参考价值。
1. 分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯)
http://192.168.200.10/index1.html
http://192.168.200.10/index2.html
http://192.168.200.20/index1.html
http://192.168.200.30/index1.html
http://192.168.200.40/index1.html
http://192.168.200.30/order.html
http://192.168.200.10/order.html
# 创建t.txt,将ip地址保存在t.txt目录中
# 统计
cat t.txt | cut -d \'/\' -f 3 | sort | uniq -c | sort -nr
2. 统计连接到服务器的各个ip情况,并按连接数从打到小排序(腾讯)
netstat -an | grep ESTABLISHED | awk -F " " \'{print $5}\' | awk -F ":" \'{print $1}\' | sort | uniq -c | sort -nr
3. 忘记mysql5.7数据库的root用户密码,如何找回(滴滴)
# 1.打开/etc/my.cnf文件
vim /etc/my.cnf
# 2.添加内容:skip-grant-tables,保存
# 3.重启mysqld服务
service mysqld restart
# 4.不需要输入用户名进入mysql,输入密码时直接回车
mysql -u root -p
# 5.选择mysql数据库
use mysql;
# 6.修改user表中的root密码
update user set authentication_string=password("12345678") where user=\'root\';
# 7.刷新权限
flush privileges;
# 8.退出mysql
exit
# 9.去掉/etc/my.cnf文件中之前添加的内容skip-grant-tables,再重启mysqld服务
4. 写出指令:统计ip访问情况,要求分析nginx访问日志(access.log),找出访问页面数两在前2位的ip(美团)
access.log内容:
192.168.130.21 aa.html
192.168.130.20 aa.html
192.168.130.20 aa.html
192.168.130.20 aa.html
192.168.130.23 aa.html
192.168.130.20 aa.html
192.168.130.25 aa.html
192.168.130.20 aa.html
192.168.130.20 aa.html
192.168.130.25 aa.html
192.168.130.20 aa.html
cat access.log | awk -F " " \'{print $1}\' | sort | uniq -c | sort -nr | head -2
5. 使用tcpdump监听本机,将来自ip 192.168.200.1,tcp端口为22的数据,保存输出到tcpdump.log,用作将来数据分析(美团)
tcpdump -i ens33 host 192.168.200.1 and port 22 >> /opt/interview/tcpdump.log
6. 常用的Nginx模块,用来做什么(头条)
rewrite模块:实现重写功能
access模块:来源控制
ssl模块:安全加密
ngx_http_gzip_module:网络传输压缩模块
ngx_http_proxy_module:模块实现代理
ngx_http_upstream_module:模块实现定义后端服务器列表
ngx_cache_purge:实现缓存清楚功能
7. 如果你是linux管理员,,在进行linux系统权限划分时,应该考虑哪些因素?(腾讯)
- 首先阐述linux权限的主要对象
- 根据自己实际经验谈考虑因素
- 注意权限分离,比如:工作中,linux系统权限和数据库权限不要在同一个部门
- 权限最小原则(即:在满足使用的情况下最少优先)
- 减少使用root用户,尽量用普通用户+sudo提权进行日常操作。
- 重要的系统文件比如/etc/passwd,/etc/shadow,/etc/fstab,/etc/sudoers等,日常建议使用chattr(change attribute)锁定,需要操作时再打开。比如:锁定/etc/passwd让任何用户都不能随意useradd,除非解除锁定
- 使用SUID,SGID,Sticky设置特殊权限。
- 可以利用工具,比如chkrootkit/rookit hunter检测rootkit脚本(rootkit时入侵者使用工具,在不觉察的时候建立了入侵系统途径)[wget ftp://ftp.pangeia.com.br/pub/seg/chkrootkit.tar.gz]
- 利用工具Tripwire检查文件系统完整性
8. 权限操作思考题
-
用户tom对目录/home/test有执行和读写权限,/home/test/hello.java是只读文件,
问tom对hello.java能读吗(ok)?能修改吗(no)?能删除吗?(ok)
-
用户tom对目录/home/test只有读写权限,/home/test/hello.java是只读文件,
问tom对hello.java能读吗(no)?能修改吗(no)?能删除吗?(no)
-
用户tom对目录/home/test只有执行权限,/home/test/hello.java是只读文件,
问tom对hello.java能读吗(ok)?能修改吗(no)?能删除吗?(no)
-
用户tom对目录/home/test只有执行和写权限,/home/test/hello.java是只读文件,
问tom对hello.java能读吗(ok)?能修改吗(no)?能删除吗?(ok)
9. 说明CentOS 7的启动流程,并说明和CentOS 6相同和不同的地方(腾讯)
10. 列举linux高级命令,至少6个(百度)
- netstat 【网络状态监控】
- top 【系统运行状态】
- lsblk 【查看硬盘分区】
- find 【查找文件】
- ps -aux 【查看运行进程】
- chkconfig 【查看服务启动状态】
- systemctl 【管理系统服务器】
11. Linux查看内存、IO读写、磁盘存储、端口占用、进程查看命令是什么(瓜子)
- top
- iotop
- df -lh
- netstat -tunlp
- ps -aux | grep 关心的进程
12. 使用linux命令计算t2.txt第二列的和并输出(美团)
t2.txt内容如下
张三 40
李四 50
王五 60
cat t2.txt | awk -F " " \'{sum+=$2} END {print sum}\'
13. shell脚本里如何检查一个文件是否存在,并给出提示(百度)
if [ -f 文件名 ]
then
echo "存在"
else
echo "不存在"
fi
14. 用shell写一个脚本,对文本t3.txt中无序的一列数字排序,并将总和输出(百度)
t3.txt内容如下:
9
8
7
6
5
4
3
2
10
sort -nr t3.txt | awk \'{sum+=$1; print $1} END {print "和="sum}\'
15. 用指令写出查找当前文件夹(/home)下所有的文本文件内容中包含有字符"cat"的文件名称(金山)
grep -r "cat" /home | cut -d ":" -f 1
16. 请写出统计/home目录下所有文件个数和所有文件总行数的指令(在金山面试题扩展)
find /opt/interview/ -name "*.*" | wc -l
find /opt/interview/ -name "*.*" | xargs wc -l
17. 列出了解的web服务器负载架构(滴滴)
- Nginx
- Haproxy
- Keepalived
- LVS
18. 每天晚上10点30分,打包站点目录/var/spool/mail备份到/home目录下(每次备份按时间生成不同的备份包,比如按照 年月日时分秒)(滴滴)
新建mail.sh
#!/bin/bash
cd /var/spool/ && /bin/tar/ zcf /home/mail-`date +%Y-%m-%d_%H%M%S`.tar.gz mail/
给mail.sh添加执行权限
chmod u+x mail.sh
添加定时任务:crontab -e
30 22 * * * /root/mail.sh
19. 如何优化linux系统,说出你的方法(瓜子)
- 对linux系统架构优化,负载均衡等等
- 对linux系统本身优化
- 不用root,使用sudo提升权限
- 定时的自动更新服务时间,使用nptdate npt1.aliyun.com,让croud定时更新
- 配置yum源,指向国内镜像(清华,163)
- 配置合理的防火墙策略,打开必要的端口,关闭不必要的端口
- 打开最大文件数(调整文件的描述的数量)
- vim /etc/profile
- 修改:ulimit -SHn 65535
- 配置合理的监控策略
- 配置合理的系统重要文件的备份策略
- 对安装的软件进行优化,比如nginx,apache
- 内核参数进行优化 /etc/sysctl.conf
- 锁定一些重要的系统文件 chattr /etc/passwd /etc/shadow /etc/inittab
- 禁用不必要的服务 setup,ntsysv
以上是关于45.linux面试题的主要内容,如果未能解决你的问题,请参考以下文章
经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!
2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试