• 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、

  • 相关阅读:
    JavaAndroid项目结构
    Python 常用系统模块整理
    Python 部分系统类的常用方法整理
    xpath语法笔记
    xml笔记
    Python 内置函数笔记
    剑指Offer-二叉搜索树的第k个结点
    Java中Set集合是如何实现添加元素保证不重复的?
    剑指Offer-链表中倒数第k个结点
    Leetcode#1.Two Sum(两数之和)
  • 原文地址:https://www.cnblogs.com/liuyuanzzz/p/11811047.html
Copyright © 2020-2023  润新知