Linux系统总结07
一、Linux面试题
-
分析日志 t.txt (访问量),将各个ip地址截取,并统计出现次数,并按照从大到小排序。(腾讯)
日志t.txt的内容为:
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【查看有一个ip访问某个页面的次数,按照从大到小排序。】
cat t.txt | cut -d ‘/’ -f 3
题解:
cat t.txt | cut -d ‘/’ -f 3 | sort | uniq -c | sort -nr
-
统计连接到服务器的各个ip情况,并按照连接数从大到小排序。(腾讯)
题解:
netstat -an | grep ESTABLISHED | awk -F " " ‘{print $5}’ | cut -d “:” -f 1 | sort | uniq -c | sort -nr
-
如果忘记了mysql5.7数据库的root密码,如何找回?(滴滴)
题解:
① 输入:vim /etc/my.cnf (mysql的配置文件),添加:skip-grant-tables。
② 重启mysql服务:service mysqld restart。
③ 输入:mysql -u root -p 登录。
④ 在mysql中输入:show databases;use mysql;desc user。
⑤ 修改密码:update user set authentication_string=password(“new_password”) where user=‘root’。
⑥ 刷新:flush privileges。
⑦ 将配置文件 my.cnf 中的:skip-grant-tables 删除。
⑧ 重启mysql服务。
-
写出指令:统计ip访问情况,要求分析nginx访问日志(access.log),找出访问页面数量在前2位的ip。(美团)
access.log 内容:
192.168.130.21 aaa.html
192.168.130.20 aaa.html
192.168.130.20 aaa.html
192.168.130.20 aaa.html
192.168.130.23 aaa.html
192.168.130.20 aaa.html
192.168.130.25 aaa.html
192.168.130.20 aaa.html
192.168.130.20 aaa.html
192.168.130.25 aaa.html
192.168.130.20 aaa.html题解:
cat access.log | awk -F " " ‘{print $1}’ | sort | uniq -c | sort -nr | head -2
-
使用tcpdump监听本机,将来自ip 192.168.200.1,端口为22的数据,保存输出到tcpdump.log,用做将来的数据分析。(美团)
题解:tcpdump -i ens33 host 192.168.200.1 and port 22 >> /opt/interview/tcpdump.log
-
常用的nginx模块有?用来做什么?(头条)
题解:
① rewrite模块:实现重写功能。
② access模块:来源控制。
③ ssl模块:安全加密。
④ ngx_http_gzip_module:网络传输压缩模块。
⑤ ngx_http_proxy_module:模块实现代理。
⑥ ngx_http_upstream_module:模块实现定义后端服务器列表。
⑦ ngx_cache_purge:实现缓存清除功能。 -
如果你是系统管理员,在运行Linux系统权限划分时,应该考虑哪些因素?(腾讯)
题解:
① 首先阐述Linux权限的主要对象。(阐述主要的权限划分、rwx含义)
② 根据自己的实际经验谈考虑因素:
a. 注意权限分析,比如:工作中,Linux系统权限和数据库权限不要在同一个部门;
b. 权限最小原则(即:在满足使用的情况下最少优先);
c. 减少使用root用户,尽量用普通用户+sudo提权进行日常操作;
d. 重要的系统文件,比如:/etc/passwd,/etc/shadow,/etc/fstab,/etc/sudoers等,日常建议使用chattr锁定,需要操作时在打开;(chattr +i /etc/passwd 表示锁定该目录,-i 表示解锁)
e. 使用SUID,SGID,Sticky设置特殊权限;
f. 可以利用工具,比如:chkrootkit/rootkit hunter 检测rookit脚本(入侵者使用工具,在不察觉的情况下建立了入侵系统途径);
g. 利用工具Tripwire检测文件系统的完整性。 -
权限操作思考题:
① 用户 tom 对目录 /home/test 有执行和读写权限,/home/test/hello.java 是只读文件,问 tom 对hello.java 文件能读吗?能修改?删除?题解:可以读,不能修改,但可以删除。(能不能删除主要看对目录有没有写权限,即w权限)
② 用户 tom 对目录 /home/test 只有读写权限,/home/test/hello.java 是只读文件,问 tom 对hello.java 文件能读吗?能修改?删除?
题解:不能读、修改以及删除。(因为对目录没有可执行权限就无法进入该目录)
③ 用户 tom 对目录 /home/test 只有执行权限,/home/test/hello.java 是只读文件,问 tom 对hello.java 文件能读吗?能修改?删除?
题解:可以读,不能修改,也不可以删除。(对目录有写权限才能够删除目录的文件)
④ 用户 tom 对目录 /home/test 有执行和写权限,/home/test/hello.java 是只读文件,问 tom 对hello.java 文件能读吗?能修改?删除?
题解:可以读,不可以修改,但可以删除。(虽然目录可以进入,但文件是只读,所以不能修改)
-
列举Linux的高级命令,至少列举6个。(百度)
题解:netstat //网络状态监控;top //系统运行状态;lsblk //查看硬盘分区;find //查找文件;ps -aux //查看运行进程;chkconfig //查看服务启动状态;systemctl //管理系统服务器。
-
Linux查看内存、io读写、磁盘存储、端口占用、查看进程的命令分别是什么?(瓜子)
题解:依次为:top、iotop、df -lh、netstat -tunlp、ps -aux。
-
使用Linux命令计算t2.txt第二列的和并且输出结果。(美团)
t2.txt文件内容:
张三 40
李四 50
王五 60题解:cat t2.txt | awk -F " " ‘{sum+=$2} END {print sum}’。
-
Shell脚本中如何检查一个文件是否存在?并给出提示。(百度)
if [ -f 文件名 ] then echo "存在" else echo "不存在" fi
-
用Shell写一个脚本,对文本t3.txt中无序的一列数字排序,并将总和输出。(百度)
文本内容:
9
8
7
6
5
4
3
2
10题解:sort -nr t3.txt | awk ‘{sum+=$0;print $0} END {print sum}’。
-
请用指令写出查找当前文件夹(/home)下所有的文本文件内容中包含字符“cat”的文件名称。(金山)
题解:grep -r “cat” /home | cut -d “:” -f 1。
-
请写出统计 /home 目录下所有文件个数和所有文件总行数的指令。
题解:find /home -name “*.*” | wc -l;find /home -name “*.*” | xargs wc -l。
-
列出你了解的Web服务器负载架构。(滴滴)
题解:Nginx、Haproxy、Keepalive、LVS。
-
每天晚上10.30分打包站点目录 /var/spool/mail ,备份到 /home 目录下(每次备份按时间生成不同的备份包,比如按照年月日时分秒)。(滴滴)
题解:
① 编写Shell脚本;
② 添加定时任务:crontab -e;
-
如何优化Linux系统,说出你的方法?(瓜子)
题解: