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、