linux面试题

1、在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是  PID

2、查看用户tty终端信息   ps -ef | grep pts/0    或last

3、哪个用户存放用户密码信息         /etc

4、改变文件属主的命令式   chown

5、检查nginx是否安装了用哪些命令       rpm  -q   nginx

6、linux配置文件一般放在那个目录     etc

7、linux中查看内存,交换内存的情况命令是    free -m

8、观察系统动态进程的命令是     top

9、找出档期内目录以及其子目录所有扩展名为txt的的文件     find -name "*.txt"

10、退出交互式shell用什么命令     quit

11、在父目录不存在的时候,添加的参数是      -p

12、如何查看linux发行版信息           cat /etc/os-release

13、vim有几种命令模式     命令模式、编辑模式、底线命令模式

14、nginx的主配置文件是             nginx.conf

15、nginx反向代理参数是          proxy_pass

16、如何解压.gz文件          gipz  -d   *.gz

17、如何加压.tar文件        tar  -xf   *.tar

18、如何解压.xz文件        xz   -d   *.xz

19、www服务采用的结构     Browser/server

20、如何给linux添加dns服务器记录       /etc/resolv.conf

21、添加两条主备dns记录        nameserver dns服务器IP

22、每月的5,15,25的晚上5点50重启nginx
  ctontab -e
  50 17 5,15,25 /usr/bin/systemctl restart nginx
  50 17 5,15,25 /opt/nginx112/sbin/nginx -s reload
23、每分钟清空tmp内容         /usr/bin/rm -rf /tmp/*
24、每天早上6.30清空/tmp/的内容      30 6 /usr/bin/rm -rf /tmp/

25、每个星期三的下午6点和8点的第5到15分钟之间备份mysql数据到/opt/
5-15 18,20 3 /usr/bin/cp -r /var/lib/mysql /opt/

26、某文件权限是drw-r—rw-,请解读该权限?
  d:目录文件
  rw- 属主:可读可写
  r— 属组:可读
  rw- other:可读可写

27、centos版本系统服务管理命令是      service    systemctl

28、如何远程登录阿里云123.206.16.61   ssh  root@123.206.16.61

29、备份mariadb的命令是            mysqldump  -uroot  -p

30、如何修改test.py属组为alex   chgrp alex  test.py

31、如何在window和linux传输文件    xftp    lrzsz   scp

32、如何杀死mariad进程       

  pkill  mariadb

 

  ps -ef|grep mysql

  kill pid

  

  killall mariadb

33、简述dns解析流程

  1.优先查找本地dns缓存
  2.查找本地/etc/hosts文件,是否有强制解析
  3.如果没有去/etc/resolv.conf指定的dns服务器中查找记录(需联网
  4.在dns服务器中找到解析记录后,在本地dns中添加缓存
  5.完成一次dns解析

34、linux如何安装软件   yum/rpm/源码包

35、出于安全角度,简述如何安装redis服务端

  更改端口

  开启protomode yes安全模式

  设置redis密码

  redis-server redis.conf

36、如何保证本地测试环境和线上开发环境一致   

   docker打包镜像 

  手动解决环境问题,pip3 freeze导出依赖

37、virtualenv是什么?简述如何使用

在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。

如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

1.安装 pip3 install virtualenv
2.创建虚拟环境 virtualenv —no-site-packages —python=python3 env1
3.激活虚拟环境 sourcce /opt/MyVirtualenv/venvDjango1/bin/activate
4.测试 python3 或者 pip3 list

38、virtulevnwrapper是什么?简述使用
virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环
1.安装虚拟环境 pip3 install virtualenvwrapper
2.创建并进入虚拟环境 mkvirtualenv env1
3.切换虚拟环境 workon 虚拟环境名

39、redis是什么

Redis是一个开源的基于内存的,key-value数据结构的缓存数据库,支持数据持久化,m-s复制,常用数据类型有string set hash list,
最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
例如:股票价格、数据分析、实时数据搜集、实时通讯。
Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)
40、redis哨兵是什么?作用

Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案
redis哨兵是监控redis主从服务,不存储数据的,作用是用于自动切换reidis服务主从关系,即当主库服务停止后,会将其中一个从库变为主库

41、什么是静态资源?什么是动态资源?

静态资源指定的是网站的CSS/JS/HTML文件

动态资源一般指的是数据,即后端给前端提供的数据

42、配置linux软连接的命令    ln -s 目标文件名 软连接名

43、给以下代码添加注释

server{ # 一个虚拟主机
listen 80; # 监听的端口,访问的端口80
server_name 192.168.11.11; # 访问的域名192.168.11.11
location / { # 访问的路径 /
root html; # 指定页面的目录,访问/会找到html目录
index index.html # 指定网页,访问/就是访问index.html
}
}

server{ #虚拟主机
listen 8080; #nginx监听端口
server_name 192.168.11.11; #nginx访问域名
location / { #location匹配url
include uwsgi_params; #将uwsgi参数添加进nginx
uwsgi_pass 0.0.0.0:8000; #反向代理转发请求给uwsgi
44、常用的docker命令

docker images # 查看本地镜像
docker serach 镜像 # 通过docker hub搜索镜像
docker rmi 镜像 # 删除镜像
docker save 镜像 > 路径 # 导出镜像
docker load < 路径 # 导入镜像
docker build -t . # 打包生成镜像

操作容器命令:
docker run -d 镜像 解释器 # 根据镜像生成容器,后台允许
docker run -it 镜像 解释器 # 根据镜像生成并进入容器
docker start/stop 容器id # 启动/停止容器
docker ps # 查看当前运行的容器
docker rm 容器id # 删除容器
docker exec 容器id # 进入当前正在运行的容器
docker commit 容器id 镜像名 # 将容器提交为镜像
docker contain ls # 查看当前运行的容器
操作仓库的命令:
docker pull 镜像 # 下载镜像
docker push 镜像 # 推送镜像
45、使用rm -i系统会提示什么信息   是否真的删除

46、如果端口8080被占用,如何查看是什么进程  netstat -tunlp |grep 8080

47、linxu下载软件包的方法有  wget  curl

48、windows和linxu常用远程连接工具有哪些  xshell  securecrt putty

49、如何给一个脚本可执行权限   chmod +x  文件名

50、过滤出settings中所有的空白行和注释行  grep -v "^#" file | grep -v "^$" 

51、过滤出file中以abc结尾的行  grep -v "abc$" file

52、容器退出后,通过docker ps查看不到,数据会丢失吗  不会,因为容器是停止了,并没有被删除,通过docker ps -a可以查看到

53、如何查看容器日志  docker rm docker ps -aq

54、wsgi是什么      wsgi是web服务器网管接口。他是一个协议,描述了web服务器如何与web应用程序通信

55、Django中使用的是?   

Django中实现wsgi的是:wsgiref和uwsgi,wsgiref是开发测试用的,uwsgi是线上用的

56、消息队列的作用?   

1)程序解耦

2)数据冗余

3)削峰能力

4)可恢复性,就算系统中部分组件挂掉,消息在队列中也不丢失,待组件恢复后继续处理消息

5)异步通信,如发红包、短信等流程丢入队列,可以优先级很低的去处理

78、服务器被攻击,之光了所有的CPU资源怎么办(不能重装系统)

1)查看系统负载情况  如top命令

2)杀死无用的、占资源的进程

3)系统全局搜索,找到病毒文件删掉他

4)检查定时任务

79、解释下什么是GPL,GNU,自由软件

GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。 
GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。 自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。主要许可证有GPL和BSD许可证两种。

80、如何选择linux操作系统版本?

一般来说,桌面用户首选ubuntu、服务器首选rhel或centos,两者中首选centos

81、请描述linux系统优化的12个步骤

⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。

⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。

⑶时间同步:定时自动更新服务器时间。

⑷配置yum更新源,从国内更新下载安装rpm包。

⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)

⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。

⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)

⑻精简开机启动服务(crond、sshd、network、rsyslog)

⑼Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。

更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。

⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow 
/etc/inittab 处理以上内容后,把chatter改名,就更安全了。)

⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

82、描述linx运行级别0-6的各自含义

0:关机模式

1:单用户模式<==破解root密码

2:无网络支持的多用户模式

3:有网络支持的多用户模式(文本模式,工作中最常用的模式)

4:保留,未使用

5:有网络支持的X-windows支持多用户模式(桌面)

6: 重新引导系统,即重启 
通过init命令切换运行级别

83、描述linux系统从开机到登录界面的启动过程

⑴开机BIOS自检,加载硬盘。

⑵读取MBR,MBR引导。

⑶grub引导菜单(Boot Loader)。

⑷加载内核kernel。

⑸启动init进程,依据inittab文件设定运行级别

⑹init进程,执行rc.sysinit文件。

⑺启动内核模块,执行不同级别的脚本程序。

⑻执行/etc/rc.d/rc.local

⑼启动mingetty,进入系统登陆界面。

84、描述linux下软硬链接的区别

在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。

①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。

②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,

③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。

④删除软链接文件,对源文件和硬链接文件无任何影响。

⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。

⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

⑧很多硬件设备的快照功能,使用的就是类似硬链接的原理。

⑨软链接可以跨文件系统,硬链接不可以跨文件系统。

85、简单描述vi编辑器的使用

①vi编辑器是linux系统下最最基本和最常用的标准文本编辑器。

②vi编辑器有三种工作模式:普通模式、编辑模式、命令模式。

③普通模式下的键盘输入任何字符都是当作命令来执行的,也可以输入命令进行光标的移动,字符、单词、行的复制、粘帖以及删除等操作。

④编辑模式主要用于文本的输入。在该模式下,用户输入的任何字符都被作为文件的内容保存起来。

⑤命令模式下,用户可以对文件进行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式的。

⑥在普通模式下输入冒号即可进入命令模式,此时vi窗口的状态行会显示出冒号,等待用户输入命令。“i”插入模式,即可以进行编辑。用户输入完成后,按【Esc】之后编辑器又返回到普通模式下,在命令模式下,保存退出,可以使用的命令为wq和x。前面加!表示强制退出,强制保存等。

86、请简述基础正则表达式grep高级参数的使用

常用参数: 

 

-v排除匹配内容,

-e支持扩展的正则表达式,

-i忽略大小写,

-o输出匹配的内容(只是一块,不是行),

–color=auto 匹配内容显示颜色,

-n 在行首显示行号。

特殊字符注意事项:

^(尖括号)word :表示搜索以word开头的内容。

word$ 表示搜索以word结尾的内容。

^$ 表示的是空行,不是空格。

. 代表且只能代表任意一个字符。非正则表达式其他功能(当前目录,加载文件)

\ 转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。例如.只表示原始小数点意义。

  • 表示重复0个或多个前面的一个字符。不代表所有。

.* 表示匹配所有的字符。^.*表示以任意字符开头。

[任意字符如abc] 匹配字符集内任意一个字符[a-z]。 [^abc] 
^在中括号里面是非的意思,不包含之意。意思就是不包含a或b或c的行。 {n,m} 
表示重复n到m次前一个字符。{n}至少n次,多了不限。{n}N次,{,m}至多m次,少了不限。

注:使用grep或sed要对{}转义。即\{\}.egrep就不需要转义了。

87、

 

 

 

posted @ 2019-11-07 19:20  酒友az  阅读(366)  评论(0编辑  收藏  举报