2.下面那个文件夹存放用户密码信息()B/etc/passwd/etc/shadowA./bootB./etcC./varD./dev
/etc/passwd
/etc/shadow
3.用于自动补全功能时,输入命令或文件的前1个或后几个字母按什么键()BA.ctrlB.tabC.altD.esc
4.vim退出不保存的命令是()DA.:qB.qC.:wqD.:q!
5.文件权限读、写、执行三种符号的标志依次是()421A.rwxB.xrwC.rdxD.rws
6.某文件的组外成员的权限是只读、属主是全部权限、组内权限是可读可写、该文件权限为()DA.467B.674C.476D.764
7.改变文件的属主的命令是()CA.chmodB.touchC.chownD.cat
chmodchangemode
chownchangeowner
chgrpchangegroup
8.解压缩文件mydjango.tar.gz,我们可以用()ADA.tar-zxvfmydjango.tar.gzB.tar-xvzmydjango.tar.gzC.tar-czfmydjango.tar.gzD.tar-xvfmydjango.tar.gz
9.检查linux是否安装了nginx,可用哪些命令()BA.rpm-ivhnginxB.rpm-qnginxC.rpm-UnginxD.rpm-xnginx
10.Linux配置文件一般放在什么目录()AA.etcB.binC.libD.dev
11.linux中查看内存,交换内存的情况命令是()ACA.topB.lastc.freeD.lastcomm
12.观察系统动态进程的命令是(b)A.freeB.topC.lastcommD.df
13.如果执行命令,chmod746file.txt,那么该文件的权限是()AA.rwxr—rw-B.rw-r—r—C.—xr—rwxD.rwxr—r—
r4100
w2010
x1001
14.找出当前目录以及其子目录所有扩展名为”.txt”的文件,那么命令是()DA.ls.txtB.find/opt-name“.txt”C.ls-d.txtd.find-name“*.txt”
15.什么命令常用于检测网络主机是否可达CICMPA.sshB.netstatC.pingD.exit
16.退出交互式shell,应该输入什么DA:q!B.quitC.;D.exit
17.在父目录不存在的时候,添加的参数是DA.-PB.-dC.-fD.-p
18.下列文件中,包含了主机名到IP地址映射关系的文件是BA./etc/hostnameB./etc/hostsC./etc/resolv.confD./etc/networks
19.请问你使用的linux发行版是什么?如何查看linux发行版信息?
centos7cat/etc/redhat-release
20.请问你公司的服务器环境是物理机还是虚拟化?
500人企:26台dellpowerr720服务器,托管在世纪互联通过vmwareesxi虚拟化的280+linux服务器,有100+centos100+redhat分为三个环境测试服务器、预生产服务器、生产服务器技术栈:svn、java、apache、tomcat、oracle、nagios、redhat、centos、weblogic初创企业:5台阿里云
实体硬件服务器+虚拟化的回答方式
个人虚拟化是vmwareworkstation企业版vmwarevsphere,在服务器上,直接安装vmwarevsphere的操作系统,然后提供了一个web管理界面,在web控制台,增删改查虚拟机
8台阿里云即可
21.vim有几种工作模式
22.nginx的主配置文件是如何实现多虚拟主机nginx反向代理参数是?
nginx.conf
server
proxy_pass
upstream负载均衡
23.如何解压缩后缀是.gz文件
tar用来做归档
压缩方式
24.如何解压缩后缀是.tar文件
tarxf
25.如何解压缩后缀是.xz文件
26.www服务在internet最为广泛,采用的结构是B/S
27.如何给linux添加dns服务器记录/etc/resolv.conf
28.每月的5,15,25的晚上5点50重启nginx
crontab-e
50175,15,25**nginx-sreload
29.每分钟清空/tmp/内容
*****rm-rf/tmp/*30.每天早上6.30清空/tmp/的内容
306***rm-rf/tmp/*31.每个星期三的下午6点和8点的第5到15分钟之间备份mysql数据到/opt/
5-1518,20**3mysqldump-uroot-p1234>/opt/mysql.sql32.某文件权限是drw-r—rw-,请解读该权限?
文件夹:
属主:读写
属组:只读
其他:读写
d:目录文件rw-属主:可读可写r—属组:可读4rw-other:可读可写
33.centos版本系统服务管理命令是
systemctl
servicenginxstop/start/restartcentos6systemctlstop/start/restartnginx
ssh
sshroot@123.206.16.61
35.备份mariadb的命令是mysqldump-uroot-p-A(--all-databases)>mysql.sql
36.简述特殊符号的含义
#超级用户的身份标识符.当前目录..上级目录$PATH环境变量
37.如果你发现在公司无法使用rm,使用提示’禁止你使用rm’,是为什么?别名alias
38.如何修改test.py属组为alexchgrepalextest.py
chown更改属主chgrp更改属组(chmod也可以i)
39.如何在windows和linux传输文件?有哪些方法?rzsz
xftp第三方工具
lrzsz第三方工具
scplinux的命令windows没有
40.如何杀死mariad进程pkill-9mariadbkillall-9mariadb
pkillmariadb
ps-ef|grepmysqlkillpid
killallmariadb
41.简述dns解析流程?访问www.pythonav.cn的解析流程
-查找本地hosts文件-去dns查找42.linux如何安装软件有几种方式?
yum
编译
rpm
43.出于安全角度,简述如何安装启动redis服务端?
44.如何保证本地测试环境和线上开发环境一致性?思路
45.virtualenv是什么简述如何使用
虚拟环境
pipinstallvirualenv
virtualenv--no-site-packagedjango1.11
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python3。如果应用A需要jinja2.7,而应用B需要jinja2.6怎么办?这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。1.安装pip3installvirtualenv2.创建虚拟环境virtualenv—no-site-packages—python=python3env13.激活虚拟环境sourcce/opt/MyVirtualenv/venvDjango1/bin/activate4.测试python3或者pip3list46.virtulevnwrapper是什么?简述使用
virtualenv的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的bin目录下source一下activate,这就需要我们记住每个虚拟环境所在的目录。Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环1.安装虚拟环境pip3installvirtualenvwrapper2.创建并进入虚拟环境mkvirtualenvenv13.切换虚拟环境workon虚拟环境名管理虚拟环境的工具
mkvirtualenv
workon
deativate
rmvirtualenv
lsvirtualenv
cdvirtualenv
cdsitepackage
lssitepackage
redis是什么?
Redis是一个开源的基于内存的,key-value数据结构的缓存数据库,支持数据持久化rdbaof,m-s复制,常用数据类型有stringsethashlist,最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。例如:股票价格、数据分析、实时数据搜集、实时通讯。Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)其他nosql数据库Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失。MongoDB更高的写负载,MongoDB拥有更高的插入速度,支持高可用性,支持索引高速查询,占用磁盘空间较大,支持持久化47.redis哨兵是什么?作用是
Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案redis哨兵是监控redis主从服务,不存储数据的,作用是用于自动切换reidis服务主从关系,即当主库服务停止后,会将其中一个从库变为主库48.redis-cluster是什么
redis集群
即使使用哨兵,redis每个实例也是全量数据存储,每个redis存储的内容都是完整的数据。为了最大化利用内存,可以采用cluster群集,就是分布式存储。即每台redis存储不同的内容。采用redis-cluster架构正是满足这种分布式存储要求的集群的一种体现。redis-cluster架构中,被设计成共有16384个hashslot。每个master分得一部分slot,其算法为:hash_slot=crc16(key)mod16384,这就找到对应slot。采用hashslot的算法,实际上是解决了redis-cluster架构下,有多个master节点的时候,数据如何分布到这些节点上去。key是可用key,如果有{}则取{}内的作为可用key,否则整个可以是可用key。群集至少需要3主3从,且每个实例使用不同的配置文件。49.什么是静态资源,什么是动态资源?
静态资源不需要和数据库打交道(指定的是网站的CSS/JS/HTML/JPG/GIF等等文件)
动态资源需要和数据库打交道(一般指的是数据,即后端给前端提供的数据)
50.配置linux软连接的命令
ln-s源文件目标文件
ln-s/opt/python3/bin/python3.6/usr/bin/python3
51.如何永久添加/opt/python36/的环境变量?
echo"PATH=/opt/python36/bin:$PATH">>/etc/profile.d/python.sh
vim/etc/profile#系统全局变量文件添加PATH=source/etc/profile1.获取python3解释器的bin目录,绝对路径/opt/python3/bin/python3.62.打开/etc/profile永久生效path配置PHAT="/opt/python3/bin/python3.6:$PATH"52.给如下代码添加注释server{listen80;server_name192.168.11.11;location/{roothtml;indexindex.html;#默认访问页面}}
server{listen8080;server_name192.168.11.11;location/{includeuwsgi_params;#导入uwsgi_pass0.0.0.0:8000;#转发到uwsgi}}
server{#一个虚拟主机listen80;#监听的端口,访问的端口80server_name192.168.11.11;#访问的域名192.168.11.11location/pic{#访问的路径192.168.11.11:80/pic roothtml;#定义虚拟主机的网页根目录 indexindex.html#指定网页,访问/就是访问index.html }}server{#虚拟主机listen8080;#nginx监听端口server_name192.168.11.11;#nginx访问域名location/{#location匹配urlincludeuwsgi_params;#将uwsgi参数添加进nginxuwsgi_pass0.0.0.0:8000;#反向代理转发请求给uwsgi}}53.supervisor是什么?如何使用
使用:1.安装easy_installsupervisor2.生成配置文件echo_supervisord_conf>/etc/supervisor.conf3.写入自定义的配置[program:crm];项目名称command=/root/Envs/knight/bin/uwsgi—ini/opt/knight/uwsgi.ini;启动项目的命令stopasgroup=true;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程killasgroup=true;默认为false,向进程组发送kill信号,包括子进程4.启动supervisor服务supervisord-c/etc/supervisor.conf5.启动所有项目supervisorctl-c/etc/supervisor.confstartall54.简述项目部署流程?如何部署路飞,uwsgi+nginx+supervisor+nginx
部署路飞:1.安装python3环境2.安装mysql,redis,nginx3.部署前端1.安装node.js的环境2.安装依赖包3.修改axios的发送的端口接口4.打包4.部署后端1.安装virtualenv2.创建虚拟环境3.安装django和uwsgi,以及项目的依赖包4.修改uwsgi的配置文件5.通过uwsgi-ini配置文件启动django项目5.配置nginx1.创建两个虚拟主机,分别监听80和8000端口2.访问80端口是访问呢vue3.访问8000端口是vue发起的8000端口请求,反向代理到9000的uwsgi6.启动nginx,mysql,redis7.通过supervisor来管理55.docker是什么?简述docker优势
linux容器软件docker应用于快速构建应用
56.你常用的docker常用命令有哪些?操作镜像、容器、仓库的命令
dockerimage
dockerps
dockerps-a
dockerps-q
dockerlog
dockerlog-f
dockerrm
dockerrmi
dockerload
dockersave
dockersearch
dockerpull
dockerpush
dockerlogin
dockerlogout
dockerbuild
dockerrun
dockerstop
dockerstart
dockertag
dockerports
dockerexec-ti/bash
dockerimages#查看本地镜像dockerserach镜像#通过dockerhub搜索镜像dockerrmi镜像#删除镜像dockersave镜像>路径#导出镜像dockerload<路径#导入镜像dockerbuild-t.#打包生成镜像操作容器命令:dockerrun-d镜像解释器#根据镜像生成容器,后台允许dockerrun-it镜像解释器#根据镜像生成并进入容器dockerstart/stop容器id#启动/停止容器dockerps#查看当前运行的容器dockerrm容器id#删除容器dockerexec容器id#进入当前正在运行的容器dockercommit容器id镜像名#将容器提交为镜像dockercontainls#查看当前运行的容器dockertag当前的镜像名你要改成什么名字操作仓库的命令:dockerpull镜像#下载镜像dockerpush镜像#推送镜像57.哪个命令无法查看linux文件内容?DA.tacB.moreC.headD.man
man(man帮助手册)tail-f实时监测文件内容变化58.使用rm-i系统会提示什么信息?BA.命令所有参数B.是否真的删除C.是否有写的权限D.文件的路径
59.为何说rm-rf慎用?-r递归删除-f强制删除
a60.python操作linux的模块是
61.如果端口8080被占用,如何查看是什么进程?
ss-tnlp|grep8080
netstat-tunlp|grep8080
62.redis是如何做持久化的
(1)master将改变记录到二进制日志(binarylog)中(这些记录叫做二进制日志事件,binarylogevents);(2)slave将master的binarylogevents拷贝到它的中继日志(relaylog);(3)slave重做中继日志中的事件,将改变反映它自己的数据。64.创建mysql用户alex,并且授予权限select权限,命令是什么?
createuser'alex'@'%'identifiedby'alex3714'
grantselecton*.*to'alex'@'%'
flushprivileges;
grantselecton*.*toalex@’%’;65.nginx如何实现负载均衡
wget
curl
xshell
Securecrt
putty
69.如何给与一个脚本可执行权限
chmod+x
70.过滤出settings.py中所有的空白和注释行
grep-v'^$'/etc/ssh/sshd_config|grep-v"^#"##找出有益的信息
71.过滤出file1中以abc结尾的行grep'abc$'
72.容器退出后,通过dockerps查看不到,数据会丢吗
不会不会丢,因为容器停止了,并没有被删除dockerps-a可以看到
73.如何批量清理后台停止的容器
dockerrmdockerps-a-q#只会删除停止的容器记录
74.如何查看容器日志
dockerlogs-f
75.服务器被攻击,吃光了所有的CPU资源,怎么办?禁止重装系统
top
psaux--sort=%cpu
1.找到吃资源的进程信息topglances(资源监控工具)2.强制kill-9杀死cxk.avi3.检查定时任务4.全局搜索病毒文件find/-namecxk.avi5.强制删除病毒文件75.wsgi是什么WSGI是Web服务器网关接口。它是一个协议,描述了Web服务器如何与Web应用程序通信。
76.Django中使用的是?答:Django中实现wsgi的是:wsgiref和uwsgi,wsgiref是开发测试用的,uwsgi是线上用的。Flask中实现wsgi的是:werkzurgTornado中实现wsgi的是:tornado和gevent
76.绘制下pythonweb部署图
77.在centos7.2中用一句话杀死所有的test.py进程
pkill-9test.pykillall-9test.py
78.在centos7.2中如何查看程序执行所消耗的cpu,内存等硬件信息
psaux
79.unix查询环境变量的命令是
echo$PATH
80.查询脚本定时任务的命令是
crontab
81.saltstack、ansible、fabric、puppt工具的作用
批量管理远程服务器
82.uwsgi、wsgi是什么?
83.supervisor是什么?
84.解释PV,UV的含义?
pvpagev
uvuserv
85.解释QPS是什么?
每秒数据访问量
86.解释什么是静态资源?动态资源?
87.saltstack如何采集服务器静态数据?
slat'*'grains.items
88.请用yaml语法表示如下python数据结构{“老男孩”:[{“老师”:[“太白”,”女神”,”吴老板”]},{“学生”:[“20期佳增同学”]}]}
{“老男孩”:[{“老师”:[“太白”,”女神”,”吴老板”]},{“学生”:[“20期佳增同学”]}]}老男孩:-老师:-太白-女神-吴超-学生:-小黑-程宇89.消息队列作用?
1)程序解耦2)数据冗余,例如rabbitmq的ack机制,消息确认机制3)削峰能力4)可恢复性,就算系统中部分组件挂掉,消息在队列也不丢失,待组件恢复后继续处理消息。5)异步通信,如发红包,短信等流程丢入队列,可以优先级很低的去处理。90.什么是docker生命周期?
91.docker容器有哪些状态?
92.dockerfile常用指令?
93.dockerfile中copy和add的区别
copy是拷贝宿主机的文件到容器中,仅此而已add是拷贝宿主机的文件到容器中,并且有解压缩的作用94.常用docker命令?
94.交互式进入正在运行的docker容器中
dockerexec-it容器id/bin/bash95.如何退出一个交互式的容器终端,而不终止它?
ctrl+q
exit#会回退到宿主机系统中
96.容器如何端口映射?数据卷映射?
-p
-v
97.redis如何实现队列?
98.redis可以生产一次,消费多次吗?
消息持久化
#durable=True开启持久化,必须新开启一个队列,原本的队列已经不支持持久化了'''实现rabbitmq持久化条件delivery_mode=299.nginx的access.log能够统计哪些信息?
100.rabbitmq如何实现队列,消息持久化?
mode=2
97.redis实现队列的方法
利用list数据类型的特性,双向队列可以用lpush往左边插入数据,再利用rpop从右边取出数据