精华内容
参与话题
问答
  • 关于linux的考试题

    2020-02-27 16:48:51
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID 答: w命令查看用户tty终端信息 ps -ef|grep pts/0 2.下面那个用户存放用户密码信息(b) A./...

    转载于:[https://www.cnblogs.com/presleyren/p/10717961.html](侵删)
    答案linux考试题
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b)
    A.NID B.PID C.UID C.CID
    答:
    w命令查看用户tty终端信息
    ps -ef|grep pts/0

    2.下面那个用户存放用户密码信息(b)
    A./boot B./etc C./var D./dev

    3.用于自动补全功能时,输入命令或文件的前1个或后几个字母按什么键(b)
    A.ctrl B.tab C.alt D.esc

    4.vim退出不保存的命令是(a)
    A.:q B.q C.:wq D.:q!

    5.文件权限读、写、执行三种符号的标志依次是(a)
    A.rwx B.xrw C.rdx D.rws

    6.某文件的组外成员的权限是只读、属主是全部权限、组内权限是可读可写、该文件权限为(d)
    A.467 B.674 C.476 D.764

    7.改变文件的属主的命令是©
    A.chmod B.touch C.chown D.cat

    8.解压缩文件mydjango.tar.gz,我们可以用(a)
    A.tar -zxvf mydjango.tar.gz
    B.tar -xvz mydjango.tar.gz
    C.tar -czf mydjango.tar.gz
    D.tar - xvf mydjango.tar.gz

    9.检查linux是否安装了,可用哪些命令(b) #注意rpm -qi只能查询用yum安装的软件,编译的查不到
    A.rpm -ivh nginx
    B.rpm -q nginx
    C.rpm -U nginx
    D.rpm -x nginx

    10.Linux配置文件一般放在什么目录(a)
    A.etc B.bin C.lib D.dev

    11.linux中查看内存,交换内存的情况命令是© #free -m
    A.top B.last c.free D.lastcomm

    12.观察系统动态进程的命令是(b)
    A.free B.top C.lastcomm D.df

    13.如果执行命令,chmod 746 file.txt ,那么该文件的权限是(a)
    A.rwxr—rw-
    B.rw-r—r—
    C.—xr—rwx
    D.rwxr—r—

    14.找出当前目录以及其子目录所有扩展名为”.txt”的文件,那么命令是(d)
    A.ls .txt
    B.find /opt -name “.txt”
    C.ls -d .txt
    d.find -name “.txt”

    15.什么命令常用于检测网络主机是否可达? c
    A.ssh B.netstat C.ping D.exit

    16.退出交互式shell,应该输入什么? d
    A:q! B.quit C.; D.exit

    17.在父目录不存在的时候,添加的参数是? d
    A.-P B.-d C.-f D.-p

    18.下列文件中,包含了主机名到IP地址映射关系的文件是? b
    A./etc/hostname
    B./etc/hosts
    C./etc/resolv.conf
    D./etc/networks

    19.请问你使用的linux发行版是什么?如何查看linux发行版信息?
    centos7
    cat /etc/os-release

    20.请问你公司的服务器环境是物理机还是虚拟化?
    500人企:
    26台dell power r720服务器,托管在世纪互联
    通过vmware esxi虚拟化的280+linux服务器,有100+centos 100+redhat
    分为三个环境
    测试服务器、预生产服务器、生产服务器
    技术栈:
    svn 、java、apache、tomcat、oracle、nagios、redhat、centos、weblogic
    初创企业:
    5台阿里云

    21.vim有几种工作模式
    命令模式
    编辑模式
    底线命令模式

    22.nginx的主配置文件是?如何实现多虚拟主机?nginx反向代理参数是?
    nginx.conf
    多个server{}
    proxy_pass http://ip

    23.如何解压缩后缀是.gz文件?
    gipz -d *.gz

    24.如何解压缩后缀是.tar文件?
    tar -xf .tar

    25.如何解压缩后缀是.xz文件?
    xz -d .xz

    26.www服务在internet最为广泛,采用的结构是?
    Browser/Server

    27.如何给linux添加dns服务器记录?
    /etc/resolv.conf
    添加2条主备dns记录
    nameserver dns服务器ip

    28.每月的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

    29.每分钟清空/tmp/内容

    /usr/bin/rm -rf /tmp/*
    30.每天早上6.30清空/tmp/的内容
    30 6 /usr/bin/rm -rf /tmp/

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

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

    33.centos版本系统服务管理命令是?
    service
    systemctl

    34.如何远程登录阿里云123.206.16.61?
    ssh root@123.206.16.61

    35.备份mariadb的命令是?
    mysqldump -uroot -p

    36.简述特殊符号的含义?

    root用户的身份提示符
    重启定向覆盖写

    重定向追加写
    $PATH 取值符
    . 当前目录
    … 上级目录
    37.如果你发现在公司无法使用rm,使用提示’禁止你使用rm’,是为什么?
    别名alias

    38.如何修改test.py属组为alex?
    chgrp alex test.py

    39.如何在windows和linux传输文件?有哪些方法?
    xftp lrzsz scp

    40.如何杀死mariad进程?
    pkill mariadb

    ps -ef|grep mysql
    kill pid

    killall mariadb

    41.简述dns解析流程?访问www.pythonav.cn的解析流程
    自上而下的顺序
    1.优先查找本地dns缓存
    2.查找本地/etc/hosts文件,是否有强制解析
    3.如果没有去/etc/resolv.conf指定的dns服务器中查找记录(需联网
    4.在dns服务器中找到解析记录后,在本地dns中添加缓存
    5.完成一次dns解析

    42.linux如何安装软件?有几种方式?
    yum
    rpm
    源码包

    43.出于安全角度,简述如何安装启动redis服务端?
    更改端口
    开启protomode yes安全模式
    设置redis密码
    redis-server redis.conf

    44.如何保证本地测试环境和线上开发环境一致性?思路?
    1.docker打包镜像
    2.手动解决环境问题 pip3 freeze导出依赖

    45.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

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

    redis是什么?
    Redis是一个开源的基于内存的,key-value数据结构的缓存数据库,支持数据持久化,m-s复制,常用数据类型有string set hash list,
    最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
    例如:股票价格、数据分析、实时数据搜集、实时通讯。
    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存储的内容都是完整的数据。
    为了最大化利用内存,可以采用cluster群集,就是分布式存储。即每台redis存储不同的内容。
    采用redis-cluster架构正是满足这种分布式存储要求的集群的一种体现。redis-cluster架构中,被设计成共有16384个hash slot。每个master分得一部分slot,其算法为:hash_slot = crc16(key) mod 16384 ,这就找到对应slot。采用hash slot的算法,实际上是解决了redis-cluster架构下,有多个master节点的时候,数据如何分布到这些节点上去。key是可用key,如果有{}则取{}内的作为可用key,否则整个可以是可用key。群集至少需要3主3从,且每个实例使用不同的配置文件。

    49.什么是静态资源,什么是动态资源?
    静态资源指定的是网站的CSS/JS/HTML文件
    动态资源一般指的是数据,即后端给前端提供的数据

    50.配置linux软连接的命令?
    ln -s 目标文件名 软连接名

    51.如何永久添加/opt/python36/的环境变量?
    vim /etc/profile
    添加PATH = /opt/python36/bin:
    source /etc/profile

    52.给如下代码添加注释
    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
    }
    }

    53.supervisor是什么?如何使用?
    使用:
    1.安装 easy_install supervisor
    2.生成配置文件 echo_supervisord_conf > /etc/supervisor.conf
    3.写入自定义的配置
    [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.conf
    5.启动所有项目
    supervisorctl -c /etc/supervisor.conf start all

    54.简述项目部署流程?如何部署路飞,uwsgi+nginx+supervisor+nginx
    部署路飞:
    1.安装python3 环境
    2.安装 mysql,redis,nginx
    3.部署前端
    1.安装node.js的环境
    2.安装依赖包
    3.修改axios的发送的端口接口
    4.打包
    4.部署后端
    1.安装virtualenv
    2.创建虚拟环境
    3.安装django和uwsgi,以及项目的依赖包
    4.修改uwsgi的配置文件
    5.通过uwsgi -ini 配置文件启动django项目
    5.配置nginx
    1.创建两个虚拟主机,分别监听80和8000端口
    2.访问80端口是访问呢vue
    3.访问8000端口是vue发起的8000端口请求,反向代理到9000的uwsgi
    6.启动nginx,mysql,redis
    7.通过supervisor来管理
    55.docker是什么?简述docker优势
    linux容器软件
    docker应用于快速构建应用

    56.你常用的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 镜像 # 推送镜像

    57.哪个命令无法查看linux文件内容? d
    A.tac B.more C.head D.man

    58.使用rm -i 系统会提示什么信息? b
    A.命令所有参数
    B.是否真的删除
    C.是否有写的权限
    D.文件的路径

    59.为何说rm -rf 慎用? -r递归删除 -f强制删除

    a60.python操作linux的模块是? os

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

    62.redis是如何做持久化的?
    rdb
    Redis会定期保存数据快照至一个rbd文件中,并在启动时自动加载rdb文件,恢复之前保存的数据,通过save指令触发持久化,redis单独开启一个子进程进行数据持久化。
    rdb缺点,定期执行,可能会丢失数据,并且数据量特别大时候,如果服务器cpu性能较低,rdb开启子进程持久化性能影响很大,影响redis对外提供服务的能力。

    aof
    Redis会把每一个写请求都记录在一个日志文件里。在Redis重启时,会把AOF文件中记录的所有写操作顺序执行一遍,确保数据恢复到最新。
    随着AOF不断地记录写操作日志,因为所有的操作都会记录,所以必定会出现一些无用的日志。大量无用的日志会让AOF文件过大,也会让数据恢复的时间过长。
    优先:数据安全,不怕数据损坏,如断电灯问题,还可以用redis-check-aof修复数据,AOF文件人为可读
    缺点:占磁盘,性能损耗高,数据恢复慢

    怎么用rdb和aof
    如果既配置了RDB,又配置了AOF,则在进行数据持久化的时候,都会进行,但是在根据文件恢复数据的时候,以AOF文件为准,RDB文件作废

    63.简述mysql主从复制原理?
    (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
    (2) slave将master的binary log events拷贝到它的中继日志(relay log);
    (3) slave重做中继日志中的事件,将改变反映它自己的数据。

    64.创建mysql用户alex,并且授予权限select权限,命令是什么?
    grant select on . to alex@’%’;
    65.nginx如何实现负载均衡?
    upstream {}

    66.nginx的负载均衡调度算法有几种?是什么?

    调度算法    概述
    轮询     按时间顺序逐一分配到不同的后端服务器(默认)
    weight    加权轮询,weight值越大,分配到的访问几率越高
    ip_hash    每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
    url_hash   按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
    least_conn 最少链接数,那个机器链接数少就分发

    67.linux下载软件包的方法有?
    wget curl
    68.windows和linux常用远程连接工具有哪些?
    xshell
    putty
    securecrt

    69.如何给与一个脚本可执行权限
    chmod u+x file

    70.过滤出settings.py中所有的空白和注释行
    grep -v “^#” file |grep -v “^$”

    71.过滤出file1中以abc结尾的行
    grep “abc$” file1
    72.容器退出后,通过docker ps查看不到,数据会丢吗?
    不会丢,因为容器停止了,并没有被删除 docker ps -a可以看到
    73.如何批量清理后台停止的容器
    docker rm docker ps -aq

    74.如何查看容器日志?
    docker logs -f

    75.wsgi是什么?
    WSGI是Web服务器网关接口。它是一个协议,描述了Web服务器如何与Web应用程序通信。

    76.Django中使用的是?
    答:Django中实现wsgi的是:wsgiref和uwsgi,wsgiref是开发测试用的,uwsgi是线上用的。
    Flask中实现wsgi的是:werkzurg
    Tornado中实现wsgi的是:tornado和gevent

    77.消息队列的作用?
    1)程序解耦
    2)数据冗余,例如rabbitmq的ack机制,消息确认机制
    3)削峰能力
    4)可恢复性,就算系统中部分组件挂掉,消息在队列也不丢失,待组件恢复后继续处理消息。
    5)异步通信,如发红包,短信等流程丢入队列,可以优先级很低的去处理。

    git常用命令
    1:git init—————————初始化
    2:git add .————————-从工作区,添加到版本库
    3:git commit -m”xxx”————从暂存区,添加到分支
    4:git status————————查看状态
    5:git log —————————查看版本库的日志
    6:git reflog————————查看所有日志
    7:git reset —head 版本号—-切换
    8:git stash————————-保存
    9:git stash————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash list——————————————————————————查看“某个地方”存储的所有记录
    git stash clear—————————————————————————-清空“某个地方”
    git stash pop——————————————————————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash apply —————————————————————————编号,将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash drop —————————————————————————编号 ,删除指定编号的记录
    10:git branch dev—————创建分支
    11:git branch -d dev———-删除分支
    12:git checkout dev————切换分支
    13:git merge dev—————-合并分支
    14:git branch———————查看所有分支
    15:git clone https:xxx——-克隆
    16:git add origin https:xxx-起个别名
    17:git push origin dev ——添加到dev分支
    18:git pull origin master—拉代码
    19:git fetch origin master-去仓库获取
    20:git merge origin/master-和网上下的master分支合并
    协同开发:
    默认是master分支——————————master
    开发的分支—————————————dev
    做代码review————————————reciew
    程序员自己的分支——————————…….
    1:每个员工创建自己的分支
    2:将自己的代码提交的到自己的分支—————xxx,sss,wwww…….
    3:由组长或老大做代码的review,——————-代码提交的review分支
    4:再提交到dev.
    5: 再合并到master分支

    熟悉 Linux常用操作。
    1:man rm———————————————查看命令帮助
    2:mkdir———————————————-创建目录
    3:touch———————————————-创建文件
    4:cd—————————————————切换。
    5:ls—————————————————查看目录
    6:ls -lh————————————————查看目录详细
    7:pwd————————————————-查看当前目录
    8:vim————————————————-添加内容
    9:echo————————————————追加内容
    10:cat————————————————查看文件内容
    11:mv————————————————-移动
    12:cp————————————————-拷贝
    13:mv————————————————重命名
    15:find———————————————-搜索
    16:rm————————————————-删除数据
    17:ping———————————————-查看能不能上网
    19:tar cf ————————————————打压缩
    20:tar xf——————————————-解压缩
    安装:
    yum install
    rpm包安装
    编译安装
    快捷键:
    1:Tab键—————————————-自动补全命令或路劲。
    2:ctrl+l—————————————清屏
    3: ctrl+c—————————————取消当前操作
    4:vi/vim 快捷键:
    复制当前行 ——————————yy
    粘贴—————————————-p
    剪切—————————————-dd
    撤销—————————————-u
    恢复—————————————-ctrl + r

    展开全文
  • 一:用户及用户组存放文件 1、/etc/passwd 其中每一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下: ...它唯一地标识了一个用户帐号,用户在登录时使用就是它。 b) p

    一:用户及用户组存放文件

    1、/etc/passwd

    其中每一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

    username:password:UserID:Group ID:comment:home directory:shell

    a) username 用户名

    它唯一地标识了一个用户帐号,用户在登录时使用的就是它。

    b) password 该帐号的口令。passwd文件中存放的密码是经过加密处理的。

    c) User ID 用户识别码,简称UID。Linux系统内部使用UID来标识用户,而不是用户名。UID是一个整数,用户的UID互不相同。

    d) Group ID 用户组识别码,简称GID。不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID唯一地标识了一个用户组。

    e) comment 这是给用户帐号做的注解。它一般是用户真实姓名、电话号码、住址等,当然也可以是空的。

    f) home directory 主目录。这个目录属于该帐号,当用户登录后,它就会被置于此目录中,就像回到家一样。一般来说,root帐号的主目录是/root,其他帐号的家目录都在/home目录下,并且和用户名同名。

    g) login command 用户登录后执行的命令。一般来说,这个命令将启动一个shell程序。例如,用bbs帐号登录后,会直接进入bbs系统,这是因为bbs帐号的login command指向的是bbs程序,等系统登录到bbs时就自动运行这些命令。

    系统帐号:系统中还有一些默认的帐号,如daemon、bin等。这些帐号有着特殊的用途,一般用于进行系统管理。这些帐号的口令大部分用(x)号表示,代表它们不能在登录时使用。

    2、/etc/shadow

    为了增强系统的安全性,Linux系统还可以为用户提供MD5和Shadow安全密码服务。如果在安装Linux 时在相关配置的选项上选中了MD5和Shadow服务,那么将看到的/etc/passwd文件里的passwd项上无论是什么用户,都是一个“x”,这就表示这些用户都登录不了;系统其实是把真正的密码数据放在了/etc/shadow文件里。

    3、/etc/group 文件

    组名:口令:组标识号:组内用户列表

    a) “组名”是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

    b) “口令”字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。

    c) “组标识号”与用户标识号类似,也是一个整数,被系统内部用来标识组。

    d) “组内用户列表”是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

    二:用户操作

    1、:用户添加

    创建用户的不同方式

    添加用户使用useradd或者adduser来完成、补充部分有详细的命令说明。

    下面三行每行命令都添加了一个用户、但是结果是不同的。

             useradd test_user_1 

    a) 只添加一个用户、什么都没有、包括home主目录、登录后使用的shell。属于默认的同名组——test_user_1。此组自动创建、可使用参数指定不创建组。

             useradd –s /bin/bash test_user_2

    b) 添加一个指定shell的普通用户、属于默认的同名组——test_user_2。此组自动创建、可使用参数指定不创建组。

            groupaddtest_group_1
            useradd –m –s /bin/bash –g test_group_1 test_user_3

    c) 第一行添加一个组、添加一个用户、拥有home主目录、登录后使用的shell、指定所在分组。

    创建好用户记得指定密码

    passwd usernamepassword

    exp: 指定test_user_1的密码是1

            passwdtest_user_1 1

    完善被创建用户

    上面第一行添加的用户不能正常使用、但是我们可以通过以下步骤来尝试解决、

    a) 指定好密码

    b) root身份登录在home下创建test_user_1文件、修改此文件属性、主要是修改用户、用户组、权限

    c) 编辑/etc/passwd文件下test_user_1的shell 、改为/bin/bash 。

    d) 切换试试、如果正常使用、则打完收工。

    exp:

        passwd test_user_1 1
           mkdir /home/test_usre_1
           chown –R test_user_1:test_group_1/home/test_user_1
           usermod –s /bin/bash test_usre_1
           logout

            adduser

    以人机交互的方式创建一个比较完善的普通用户。

    2:用户删除

    删除方式

    a) userdel username ——只会删除用户、不会删除用户主目录(如果有的话)、也有可能会删除同名创建的用户组(如果这个用户组下只有这一个用户的话)。

    b) userdel –r usrename —— 不但会删除用户、也会删除用户主目录(如果有的话,没有则会有提示)也有可能会删除同名创建的用户组(如果这个用户组下只有这一个用户的话)。

    exp:
           userdeltest_usre_1
           userdel –rtest_user_2
       userdel test_user_1 

    如果test_user_1在创建的时候没有指定group、并且同时创建的同名group——test-user_group下没有其他用户、则test_usre_group也会被删除。


    3:用户的修改

    命令usermod:

    常用的就是修改用户名、用户密码、用户组、和使用的shell和home主目录

    a) 修改用户名:

                    usermod –ltest_usre_mod test_user_1

    b) 修改shell

    usermod –s/bin/bash test_user_mod

    c) 修改用户组

    usermod –gtest_group_1 test_user_mod

    d) 添加用户组

    usermod –Gtest_group_2 test_user_mod 

    4:用户的查看

    所有用户的信息都放在/etc/passwd这个文件下面。可以使用cat/etc/passwd这个命令查看。

    三:用户组

    1:添加用户组

    groupadd命令、可以在命令行窗口中使用 man groupadd 或者 groupadd info 或者groupadd –help查看使用方法

    a) 创建一个任何用户组的用户test_nogpuser_1

    useradd –Ntest_nogpuser_1

    b) 创建一个没有任何用户的用户组test_nousergp_1

    groupaddtest_nousergp_1

    c) 将用户test_nogpuser_1添加到test_nousergp_1中

    gpasswd 命令用于操作用户组中用户、添加删除用户、删除用户组密码等操作、可以在命令行窗口键入 gpasswd –help获取说明

    gpasswd –atest_nogpusre test_nousergp_1 

    d) 将用户test_nogpuser_1从test_nousergp_1中删除

    gpasswd –dtest_nogpuser test_nousergp_1

    2:用户组修改

    groupmod 命令、命令窗口输入groupmdo –help 查看帮助

    a) 修改用户组名

    groupmod –ntest_del_group test_nousergp_1

    b) 修改用户组GID

    groupmod –p 1test_del_group

    3:删除用户组

    a) 创建用户的时候默认创建的用户组、在不添加其他用户的情况下、用户被删除、则此用户组就会被删除。

    b) 不能删除有用户的用户组

    c) 删除空用户的用户组

    groupdeltest_nousergp_1

    补充:

    1、命令:usermod参数详解

    功能说明:修改用户帐号。

    语  法:usermod [-LU][-c<备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]

    补充说明:usermod可用来修改用户帐号的各项设定。

    参  数:

    -c<备注>  修改用户帐号的备注文字。

    -d登入目录>  修改用户登入时的目录。

    -e<有效期限>  修改帐号的有效期限。

    -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。

    -g<群组>  修改用户所属的群组。

    -G<群组>  修改用户所属的附加群组。

    -l<帐号名称>  修改用户帐号名称。

    -L  锁定用户密码,使密码无效。

    -s<shell>  修改用户登入后所使用的shell。

    -u<uid>  修改用户ID。

    -U  解除密码锁定。

    2、命令:useradd 参数详解

    -c 备注加上备注。并会将此备注文字加在/etc/passwd中的第5项字段中

    -d 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权

    -e 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,将存储在/etc/shadow

    -f 缓冲天数。限定密码过期后多少天,将该用户帐号停用

    -g 主要组。设置用户所属的主要组

    -G 次要组。设置用户所属的次要组,可设置多组

    -M 强制不创建用户主文件夹

    -m 强制建立用户主文件夹,并将/etc/skel/当中的文件复制到用户的根目录下

    -p 密码。输入该帐号的密码

    -s shell。用户登录所使用的shell

    -u uid。指定帐号的标志符user id,简称uid

    3、命令gpasswd参数详解

    -a, --add USER 添加用户到组

    -d, --delete USER 从组删除用户

    -h, --help 显示帮助信息

    -r, --remove-password 删除密码

    -R, --restrict 限制用户登入组,只有组中的成员才可以用newgrp加入该组

    -M, --members USER,... 指定组成员和-A的用途差不多

           -A, --administrators ADMIN,... 指定管理员 


    原文连接

    展开全文
  • linux基础—linux面试题

    2019-06-18 11:26:20
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么() A.NID B.PID C.UID C.CID 2.下面那个用户存放用户密码信息() A./boot B./etc C./var D./dev 3.用于自动补全功能时,输入命令或文件的前1个或...

    linux考试题

    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么()
    A.NID B.PID C.UID C.CID

    2.下面那个用户存放用户密码信息()
    A./boot B./etc C./var D./dev

    3.用于自动补全功能时,输入命令或文件的前1个或后几个字母按什么键()
    A.ctrl B.tab C.alt D.esc

    4.vim退出不保存的命令是()
    A.:q B.q C.:wq D.:q!

    5.文件权限读、写、执行三种符号的标志依次是()
    A.rwx B.xrw C.rdx D.rws

    6.某文件的组外成员的权限是只读、属主是全部权限、组内权限是可读可写、该文件权限为()
    A.467 B.674 C.476 D.765

    7.改变文件的属主的命令是()
    A.chmod B.touch C.chown D.cat

    8.解压缩文件mydjango.tar.gz,我们可以用()
    A.tar -zxvf mydjango.tar.gz
    B.tar -xvz mydjango.tar.gz
    C.tar -czf mydjango.tar.gz
    D.tar - xvf mydjango.tar.gz

    9.检查linux是否安装了,可用哪些命令()
    A.rpm -ivh nginx
    B.rpm -q nginx
    C.rpm -U nginx
    D.rpm -x nginx

    10.Linux配置文件一般放在什么目录()
    A.etc B.bin C.lib D.dev

    11.linux中查看内存,交换内存的情况命令是()
    A.top B.last c.free D.lastcomm

    12.观察系统动态进程的命令是()
    A.free B.top C.lastcomm D.df

    13.如果执行命令,chmod 746 file.txt ,那么该文件的权限是()
    A.rwxr—rw-
    B.rw-r—r—
    C.—xr—rwx
    D.rwxr—r—

    14.找出当前目录以及其子目录所有扩展名为”.txt”的文件,那么命令是()
    A.ls .txt
    B.find /opt -name “.txt”
    C.ls -d .txt
    d.find -name “.txt”

    15.什么命令常用于检测网络主机是否可达?
    A.ssh B.netstat C.ping D.exit

    16.退出交互式shell,应该输入什么?
    A:q! B.quit C.; D.exit

    17.在父目录不存在的时候,添加的参数是?
    A.-P B.-d C.-f D.-p

    18.下列文件中,包含了主机名到IP地址映射关系的文件是?
    A./etc/hostname
    B./etc/hosts
    C./etc/resolv.conf
    D./etc/networks

    19.请问你使用的linux发行版是什么?如何查看linux发行版信息?

    20.请问你公司的服务器环境是物理机还是虚拟化?

    21.vim有几种工作模式

    22.nginx的主配置文件是?如何实现多虚拟主机?nginx反向代理参数是?

    23.如何解压缩后缀是.gz文件?

    24.如何解压缩后缀是.tar文件?

    25.如何解压缩后缀是.xz文件?

    26.www服务在internet最为广泛,采用的结构是?

    27.如何给linux添加dns服务器记录?

    28.每月的5,15,25的晚上5点50重启nginx

    29.每分钟清空/tmp/内容

    30.每天早上6.30清空/tmp/的内容

    31.每个星期三的下午6点和8点的第5到15分钟之间备份mysql数据到/opt/

    32.某文件权限是drw-r—rw-,请解读该权限?

    33.centos版本系统服务管理命令是?

    34.如何远程登录阿里云123.206.16.61?

    35.备份mariadb的命令是?

    36.简述特殊符号的含义?

        #
        .
        ..
        $PATH
    

    37.如果你发现在公司无法使用rm,使用提示’禁止你使用rm’,是为什么?

    38.如何修改test.py属组为alex?

    39.如何在windows和linux传输文件?有哪些方法?

    40.如何杀死mariad进程?

    41.简述dns解析流程?访问www.pythonav.cn的解析流程

    42.linux如何安装软件?有几种方式?

    43.出于安全角度,简述如何安装启动redis服务端?

    44.如何保证本地测试环境和线上开发环境一致性?思路?

    45.virtualenv是什么?简述如何使用

    46.virtulevnwrapper是什么?简述使用

    47.redis哨兵是什么?作用是

    48.redis-cluster是什么?

    49.什么是静态资源,什么是动态资源?

    50.配置linux软连接的命令?

    51.如何永久添加/opt/python36/的环境变量?

    52.给如下代码添加注释
    server{
    listen 80;
    server_name 192.168.11.11;
    location / {
    root html;
    index index.html;
    }
    }

    server{
    listen 8080;
    server_name 192.168.11.11;
    location / {
    include uwsgi_params;
    uwsgi_pass 0.0.0.0:8000;
    }
    }

    53.supervisor是什么?如何使用?

    54.简述项目部署流程?如何部署路飞,uwsgi+nginx+supervisor+nginx

    55.docker是什么?简述docker优势

    56.你常用的docker常用命令有哪些?操作镜像、容器、仓库的命令

    57.哪个命令无法查看linux文件内容?
    A.tac B.more C.head D.man

    58.使用rm -i 系统会提示什么信息?
    A.命令所有参数
    B.是否真的删除
    C.是否有写的权限
    D.文件的路径

    59.为何说rm -rf 慎用?

    a60.python操作linux的模块是?

    61.如果端口8080被占用,如何查看是什么进程?

    62.redis是如何做持久化的?

    63.简述mysql主从复制原理?

    64.创建mysql用户alex,并且授予权限select权限,命令是什么?

    65.nginx如何实现负载均衡?

    66.nginx的负载均衡调度算法有几种?是什么?

    67.linux下载软件包的方法有?

    68.windows和linux常用远程连接工具有哪些?

    69.如何给与一个脚本可执行权限

    70.过滤出settings.py中所有的空白和注释行

    71.过滤出file1中以abc结尾的行

    72.容器退出后,通过docker ps查看不到,数据会丢吗?

    73.如何批量清理后台停止的容器

    74.如何查看容器日志?

    75.服务器被攻击,吃光了所有的CPU资源,怎么办?禁止重装系统

    展开全文
  • linux 练习

    2019-07-09 19:00:00
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b)A.NID B.PID C.UID C.CID2.下面那个用户存放用户密码信息(b)A./boot B./etc C./var D./dev/etc/passwd3.用于自动补全功能时,输入命令或文件...


    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b)
    A.NID B.PID C.UID C.CID

    2.下面那个用户存放用户密码信息(b)
    A./boot B./etc C./var D./dev

    /etc/passwd

    3.用于自动补全功能时,输入命令或文件的前1个或后几个字母按什么键(b)
    A.ctrl B.tab C.alt D.esc

    4.vim退出不保存的命令是(d)
    A.:q B.q C.:wq D.:q!

    5.文件权限读、写、执行三种符号的标志依次是(a)
    A.rwx B.xrw C.rdx D.rws

    6.某文件的组外成员的权限是只读、属主是全部权限、组内权限是可读可写、该文件权限为(d)
    A.467 B.674 C.476 D.764

    7.改变文件的属主的命令是(c)
    A.chmod (改权限)B.touch C.chown D.cat

    8.解压缩文件mydjango.tar.gz,我们可以用(a)
    A.tar -zxvf mydjango.tar.gz
    B.tar -xvz mydjango.tar.gz
    C.tar -czf mydjango.tar.gz
    D.tar - xvf mydjango.tar.gz


    9.检查linux是否(通过yum 安装软件)安装了,可用哪些命令(b) #注意rpm -qi只能查询用yum安装的软件,编译的查不到
    A.rpm -ivh nginx 安装
    B.rpm -q nginx 查询
    C.rpm -U nginx 更新
    D.rpm -x nginx

    10.Linux配置文件一般放在什么目录(a)
    A.etc B.bin C.lib D.dev
    /etc/nginx.conf

    11.linux中查看内存,交换内存的情况命令是(c) #free -m
    A.top B.last c.free D.lastcomm

    12.观察系统动态进程的命令是(b)
    A.free B.top C.lastcomm D.df

    13.如果执行命令,chmod 746 file.txt ,那么该文件的权限是(a)
    A.rwxr—rw-
    B.rw-r—r—
    C.—xr—rwx
    D.rwxr—r—

    14.找出当前目录以及其子目录所有扩展名为”.txt”的文件,那么命令是(d)
    A.ls .txt
    B.find /opt -name “.txt”
    C.ls -d .txt
    d.find -name “*.txt”


    15.什么命令常用于检测网络主机是否可达? c
    A.ssh (远程连接)B.netstat (查看端口状态)C.ping D.exit

    16.退出交互式shell,应该输入什么? d
    A:q! B.quit C.; D.exit

    17.在父目录不存在的时候,添加的参数是? d
    A.-P B.-d C.-f D.-p

    18.下列文件中,包含了主机名到IP地址映射关系的文件是? b
    A./etc/hostname
    B./etc/hosts
    C./etc/resolv.conf dns 的域名服务器配置文件
    D./etc/networks


    19.请问你使用的linux发行版是什么?如何查看linux发行版信息?
    centos7
    cat /etc/os-release


    20.请问你公司的服务器环境是物理机还是虚拟化?

    1)实体服务器 + 虚拟化
    个人虚拟化 是 vmware workstation
    企业版 vmware vsphere

    2)阿里云服务器 8台

    500人企:
    26台dell power r720服务器,托管在世纪互联
    通过vmware esxi虚拟化的280+linux服务器,有100+centos 100+redhat
    分为三个环境
    测试服务器、预生产服务器、生产服务器
    技术栈:
    svn 、java、apache、tomcat、oracle、nagios、redhat、centos、weblogic
    初创企业:
    5台阿里云

    21.vim有几种工作模式
    命令模式
    编辑模式
    底线命令模式

    22.nginx的主配置文件是?如何实现多虚拟主机?nginx反向代理参数是?
    nginx.conf
    多个server{}
    proxy_pass http://ip

    23.如何解压缩后缀是.gz文件?
    gipz -d *.gz


    24.如何解压缩后缀是.tar文件?
    tar -xf .tar

    25.如何解压缩后缀是.xz文件?
    xz -d .xz

    26.www服务在internet最为广泛,采用的结构是?
    Browser/Server

    27.如何给linux添加dns服务器记录?
    /etc/resolv.conf
    添加2条主备dns记录
    nameserver dns服务器ip


    28.每月的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

    29.每分钟清空/tmp/内容
    * * * * * /usr/bin/rm -rf /tmp/*

    30.每天早上6.30清空/tmp/的内容
    30 6 * * * /usr/bin/rm -rf /tmp/*

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

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


    33.centos版本系统服务管理命令是?
    service nginx stop /start /restart centos6
    systemctl stop /start /restart nginx centos7


    34.如何远程登录阿里云123.206.16.61?
    ssh root@123.206.16.61



    35.备份mariadb的命令是?
    mysqldump -uroot -p
    --all-databases > /opt/db.sql

    36.简述特殊符号的含义?
    root用户的身份提示符
    重启定向覆盖写
    重定向追加写
    $PATH 取值符
    . 当前目录
    .. 上级目录


    37.如果你发现在公司无法使用rm,使用提示’禁止你使用rm’,是为什么?
    别名alias


    38.如何修改test.py属组为alex?
    chgrp alex test.py


    39.如何在windows和linux传输文件?有哪些方法?
    xftp 第三方工具
    lrzsz 第三方工具

    scp linux 命令 Windows没有


    40.如何杀死mariad进程?
    pkill mariadb
    ps -ef|grep mysql
    kill pid
    killall mariadb


    41.简述dns解析流程?访问www.pythonav.cn的解析流程
    自上而下的顺序
    1.查找本地/etc/hosts文件,是否有强制解析
    2.查找本地dns缓存
    3.如果没有去/etc/resolv.conf指定的dns服务器中查找记录(需联网
    4.在dns服务器中找到解析记录后,在本地dns中添加缓存
    5.完成一次dns解析


    42.linux如何安装软件?有几种方式?
    yum
    rpm
    源码包



    43.出于安全角度,简述如何安装启动redis服务端?
    更改端口
    开启protomode yes安全模式
    设置redis密码

    redis-server redis.conf


    44.如何保证本地测试环境和线上开发环境一致性?思路?
    1.docker打包镜像,通过dockerfile 进行打包

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


    45.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


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


    redis是什么?
    Redis是一个开源的基于内存的,key-value数据结构的缓存数据库,支持数据持久化,m-s复制,常用数据类型有string set hash list,
    最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
    例如:股票价格、数据分析、实时数据搜集、实时通讯。
    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存储的内容都是完整的数据。
    为了最大化利用内存,可以采用cluster群集,就是分布式存储。即每台redis存储不同的内容。
    采用redis-cluster架构正是满足这种分布式存储要求的集群的一种体现。redis-cluster架构中,被设计成共有16384个hash slot。每个master分得一部分slot,其算法为:hash_slot = crc16(key) mod 16384 ,这就找到对应slot。采用hash slot的算法,实际上是解决了redis-cluster架构下,有多个master节点的时候,数据如何分布到这些节点上去。key是可用key,如果有{}则取{}内的作为可用key,否则整个可以是可用key。群集至少需要3主3从,且每个实例使用不同的配置文件。


    49.什么是静态资源,什么是动态资源?
    静态资源指定的是网站的CSS/JS/HTML/JPG等文件
    动态资源一般指的是数据,即后端给前端提供的数据


    50.配置linux软连接的命令?
    ln -s 目标文件名 软连接名

    51.如何永久添加/opt/python36/的环境变量?

    获取python3解释器的bin目录 绝对路径
    vim /etc/profile
    添加PATH = /opt/python36/bin:
    读取文件变量 source /etc/profile


    52.给如下代码添加注释

    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
    }
    }

    53.supervisor是什么?如何使用?
    进程管理工具

    使用:
    1.安装 easy_install supervisor
    2.生成配置文件 echo_supervisord_conf > /etc/supervisor.conf
    3.写入自定义的配置
    [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.conf
    5.启动所有项目
    supervisorctl -c /etc/supervisor.conf start all


    54.简述项目部署流程?如何部署路飞,uwsgi+nginx+supervisor+nginx

     

    1安装python3环境  源码包  编译安装

    2安装mysql  redis   nginx  用yum 源 安装

    3前端部署

        1)安装node.js 环境

        2)安装依赖包

        3)修改项目中的api.js 中的端口

        4)打包为dist文件夹  npm install    npm run build

    4后端django部署

        1)安装virtualenv

        2) 创建虚拟环境

        3)安装django 和依赖包

        4)修改uwsgi.ini 配置文件

        5)uwsgi 启动后端django项目

    5配置nginx.conf文件

        1)创建两个server 虚拟主机 分别监听 80  和8080

        2)80端口访问前端vue

        3) 8080端口访问反向代理到9000的uwsgi 访问后端的django项目

    6启动nginx  mysql 和redis服务

     


    部署路飞:
    1.安装python3 环境
    2.安装 mysql,redis,nginx
    3.部署前端
    1.安装node.js的环境
    2.安装依赖包
    3.修改axios的发送的端口接口
    4.打包
    4.部署后端
    1.安装virtualenv
    2.创建虚拟环境
    3.安装django和uwsgi,以及项目的依赖包
    4.修改uwsgi的配置文件
    5.通过uwsgi -ini 配置文件启动django项目
    5.配置nginx
    1.创建两个虚拟主机,分别监听80和8000端口
    2.访问80端口是访问呢vue
    3.访问8000端口是vue发起的8000端口请求,反向代理到9000的uwsgi
    6.启动nginx,mysql,redis
    7.通过supervisor来管理


    55.docker是什么?简述docker优势
    linux容器软件
    docker应用于快速构建应用


    56.你常用的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 tag 当前的镜像名 要改后的名字

    操作仓库的命令:
    docker pull 镜像 # 下载镜像
    docker push 镜像 # 推送镜像


    57.哪个命令无法查看linux文件内容? d
    A.tac B.more C.head D.man

    man 帮助手册

    58.使用rm -i 系统会提示什么信息? b
    A.命令所有参数
    B.是否真的删除
    C.是否有写的权限
    D.文件的路径

    59.为何说rm -rf 慎用?
    -r递归删除 -f强制删除

    60.python操作linux的模块是?
    os subprocess

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


    62.redis是如何做持久化的?
    rdb
    Redis会定期保存数据快照至一个rdb文件中,并在启动时自动加载rdb文件,恢复之前保存的数据,通过save指令触发持久化,redis单独开启一个子进程进行数据持久化。
    rdb缺点,定期执行,可能会丢失数据,并且数据量特别大时候,如果服务器cpu性能较低,rdb开启子进程持久化性能影响很大,影响redis对外提供服务的能力。

    aof
    Redis会把每一个写请求都记录在一个日志文件里。在Redis重启时,会把AOF文件中记录的所有写操作顺序执行一遍,确保数据恢复到最新。
    随着AOF不断地记录写操作日志,因为所有的操作都会记录,所以必定会出现一些无用的日志。大量无用的日志会让AOF文件过大,也会让数据恢复的时间过长。
    优先:数据安全,不怕数据损坏,如断电灯问题,还可以用redis-check-aof修复数据,AOF文件人为可读
    缺点:占磁盘,性能损耗高,数据恢复慢
    怎么用rdb和aof
    如果既配置了RDB,又配置了AOF,则在进行数据持久化的时候,都会进行,但是在根据文件恢复数据的时候,以AOF文件为准,RDB文件作废



    63.简述mysql主从复制原理?
    (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
    (2) slave将master的binary log events拷贝到它的中继日志(relay log);
    (3) slave重做中继日志中的事件,将改变反映它自己的数据。


    64.创建mysql用户alex,并且授予权限select权限,命令是什么?
    grant select on *.* to alex@’%’;


    65.nginx如何实现负载均衡?
    upstream {}
    定义服务器地址池





    66.nginx的负载均衡调度算法有几种?是什么?
    调度算法    概述
    轮询     按时间顺序逐一分配到不同的后端服务器(默认)
    weight    加权轮询,weight值越大,分配到的访问几率越高
    ip_hash    每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
    url_hash   按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
    least_conn 最少链接数,那个机器链接数少就分发


    67.linux下载软件包的方法有?
    wget curl


    68.windows和linux常用远程连接工具有哪些?
    xshell
    putty
    securecrt


    69.如何给与一个脚本可执行权限
    chmod u+x file


    70.过滤出settings.py中所有的空白和注释行
    grep -v “^#” file |grep -v “^$”


    71.过滤出file1中以abc结尾的行
    grep “abc$” file1


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


    73.如何批量清理后台停止的容器
    docker rm `docker ps -aq`

    74.如何查看容器日志?
    docker logs -f


    75.wsgi是什么?
    WSGI是Web服务器网关接口。它是一个协议,描述了Web服务器如何与Web应用程序通信。


    76.Django中使用的是?
    答:Django中实现wsgi的是:wsgiref和uwsgi,wsgiref是开发测试用的,uwsgi是线上用的。
    Flask中实现wsgi的是:werkzurg
    Tornado中实现wsgi的是:tornado和gevent


    77.消息队列的作用?
    1)程序解耦
    2)数据冗余,例如rabbitmq的ack机制,消息确认机制
    3)削峰能力
    4)可恢复性,就算系统中部分组件挂掉,消息在队列也不丢失,待组件恢复后继续处理消息。
    5)异步通信,如发红包,短信等流程丢入队列,可以优先级很低的去处理。


    78.服务器被攻击,吃光了所有的CPU资源,怎么办?禁止重装系统

    1找到吃资源的进程信息
    2强制kill -9 杀死进程
    3检查定时任务
    4全局搜索病毒文件 find / -name 病毒文件名
    5 强制删除病毒文件

    76.绘制下python web部署图


    77.在centos7.2中用一句话杀死所有的test.py进程
    pkill -9 test.py

    78.在centos7.2中如何查看程序执行所消耗的cpu,内存等硬件信息
    top

    79.unix查询环境变量的命令是
    echo $PATH

    cat /etc/profile


    80.查询脚本定时任务的命令是
    crontab
    crontab -e #编辑定时任务的文件

    crontab -l #列出定时任务的规则


    81.saltstack、ansible、fabric、puppt工具的作用
    远程执行命令 批量管理工具

    SaltStack(或Salt)是一个基于命令行的工具,可以设置一个主客户端模式还是非集中模式。 Salt基于Python,提供了一种推送方法和一种与客户端通信的SSH方法。
    Salt允许对客户端和配置模板进行分组,以简化对环境的控制。


    Ansible是用于在可重复的方式将应用程序部署到远程节点和配置服务器的开源工具。
    它为您提供了使用推送模型设置推送多层应用程序和应用程序工件的通用框架,

    Chef是配置管理的开源工具,专注于开发方为它的用户群。

    Fabric是在应用程序部署精简SSH一个基于Python的工具。 它主要用于跨多个远程系统运行任务,但也可以使用插件扩展以提供更高级的功能。
    Fabric将配置您的系统,执行系统/服务器管理,并自动部署您的应用程序。

    Puppet是在全面配置管理空间长期工具之一。 它是一个开源工具,但考虑到它已经存在多久,它已经被良好的审查和部署在一些最大和最苛刻的环境中。 Puppet基于Ruby,但是使用更接近JSON的定制的域脚本语言(DSL)来在其中工作。 它作为主客户端设置运行,并使用模型驱动方法。
    Puppet代码设计作为依赖关系列表,这可以使事情更容易或更混乱,这取决于您的设置。



    82.uwsgi、wsgi是什么?
    wsgi是一种通用的接口标准或者接口协议,实现了python web程序与服务器之间交互的通用性。

    uwsgi:同WSGI一样是一种通信协议
    uwsgi协议是一个'uWSGI服务器'自有的协议,它用于定义传输信息的类型,
    'uWSGI'是实现了uwsgi和WSGI两种协议的Web服务器,负责响应python的web请求。


    83.supervisor是什么?
    # Supervisor:
    是一款基于Python的进程管理工具,可以很方便的管理服务器上部署的应用程序。
    是C/S模型的程序,其服务端是supervisord服务,客户端是supervisorctl命令

    # 主要功能:
    1 启动、重启、关闭包括但不限于python进程。
    2 查看进程的运行状态。
    3 批量维护多个进程。



    84.解释PV,UV的含义?
    PV访问量(Page View),即页面访问量,每打开一次页面PV计数+1,刷新页面也是。
    UV访问数(Unique Visitor)指独立访客访问数,一台电脑终端为一个访客。



    85.解释QPS是什么?
    'QPS(Query Per Second)'
    每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准


    86.什么是静态资源?什么是动态资源?
    静态资源指定的是网站的CSS/JS/HTML文件
    动态资源一般指的是数据,即后端给前端提供的数据

    nginx实现动静分离,静态请求nginx直接返回
    动态请求
    uwsgi_pass 后端uwsgi的地址

    87.saltstack如何采集服务器静态数据?

    salt采用 granis组件 采集


    88.请用yaml语法表示如下python数据结构
    {
    “老男孩”:[{“老师”:[“太白”,”女神”,”吴老板”]},{“学生”:[“20期佳增同学”]}]
    }
    "老男孩":
    "老师":
    - "丽华"
    - "小黑"
    - "老徐"
    "学生":
    - "大宝"
    - "b哥"
    - "超弟"




    89.消息队列作用?
    当程序系统发现某些任务耗费时间且优先级较低,迟点完成也不影响整个任务,就把这个任务丢给消息队列。



    90.什么是docker生命周期?
    镜像 容器 仓库 三大生命周期


    91.docker容器有哪些状态?

    容器可以被创建、启动、停止、删除、暂停



    92.dockerfile常用指令?
    FROM cento
    LABLE 作者信息
    RUN
    WORKDIR
    ADD
    COPY
    CMD
    ENV
    EXPOSE


    ADD除了有添加的作用,还有解压缩的作用
    WORKDIR /root 切换路径
    copy就是把本地的文件,拷贝到容器空间内,没有解压作用
    ENV #环境变量,尽可能使用ENV增加可维护性
    RUN



    93.dockerfile中copy和add的区别
    ADD与COPY
    COPY拷贝宿主机的文件 放到 容器中
    - 优先使用COPY命令
    -ADD除了COPY功能还有解压功能
    添加远程文件/目录使用curl或wget




    94.常用docker命令?

    你常用的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 镜像 # 推送镜像
    ```


    95.如何退出一个交互式的容器终端,而不终止它?
    exit

    开启
    docker exec -it 容器id


    96.容器如何端口映射?数据卷映射?
    -p 端口映射
    -v 数据卷映射

    Docker 端口映射即映射容器内应用的服务端口到本机宿主机器。
    docker port 容器id

    97.redis如何实现队列?

    利用list 数据类型的特性 ,它是一个双向队列
    可以用 lpush 往左边插入数据
    再利用 rpop从右边取出数据



    98.redis可以生产一次,消费多次吗?
    可以 发布订阅的特性


    99.nginx的access.log能够统计哪些信息?
    IP相关统计
    页面访问统计
    每秒请求量统计
    性能分析
    TCP连接统计


    100.rabbitmq如何实现队列,消息持久化?

    # 声明一个队列(创建一个队列)
    channel.queue_declare(queue='西游记')


    # 声明一个队列(创建一个队列)
    # 默认此队列不支持持久化,如果服务挂掉,数据丢失
    # durable=True 开启持久化,必须新开启一个队列,原本的队列已经不支持持久化了
    '''
    实现rabbitmq持久化条件
    delivery_mode=2
    使用durable=True声明queue是持久化

    '''

    1、创建队列和发送消息时将设置durable=Ture,如果在接收到消息还没有存储时,消息也有可能丢失,就必须配置publisher confirm
    channel.queue_declare(queue='task_queue', durable=True)

    2、返回一个ack,进程收到消息并处理完任务后,发给rabbitmq一个ack表示任务已经完成,可以删除该任务

    3、镜像队列:将queue镜像到cluster中其他的节点之上。
    在该实现下,如果集群中的一个节点失效了,queue能自动地切换到镜像中的另一个节点以保证服务的可用性


    git常用命令
    1:git init—————————初始化
    2:git add .————————-从工作区,添加到版本库
    3:git commit -m”xxx”————从暂存区,添加到分支
    4:git status————————查看状态
    5:git log —————————查看版本库的日志
    6:git reflog————————查看所有日志
    7:git reset —head 版本号—-切换
    8:git stash————————-保存
    9:git stash————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash list——————————————————————————查看“某个地方”存储的所有记录
    git stash clear—————————————————————————-清空“某个地方”
    git stash pop——————————————————————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash apply —————————————————————————编号,将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash drop —————————————————————————编号 ,删除指定编号的记录
    10:git branch dev—————创建分支
    11:git branch -d dev———-删除分支
    12:git checkout dev————切换分支
    13:git merge dev—————-合并分支
    14:git branch———————查看所有分支
    15:git clone https:xxx——-克隆
    16:git add origin https:xxx-起个别名
    17:git push origin dev ——添加到dev分支
    18:git pull origin master—拉代码
    19:git fetch origin master-去仓库获取
    20:git merge origin/master-和网上下的master分支合并
    协同开发:
    默认是master分支——————————master
    开发的分支—————————————dev
    做代码review————————————reciew
    程序员自己的分支——————————…….
    1:每个员工创建自己的分支
    2:将自己的代码提交的到自己的分支—————xxx,sss,wwww…….
    3:由组长或老大做代码的review,——————-代码提交的review分支
    4:再提交到dev.
    5: 再合并到master分支
    熟悉 Linux常用操作。
    1:man rm———————————————查看命令帮助
    2:mkdir———————————————-创建目录
    3:touch———————————————-创建文件
    4:cd—————————————————切换。
    5:ls—————————————————查看目录
    6:ls -lh————————————————查看目录详细
    7:pwd————————————————-查看当前目录
    8:vim————————————————-添加内容
    9:echo————————————————追加内容
    10:cat————————————————查看文件内容
    11:mv————————————————-移动
    12:cp————————————————-拷贝
    13:mv————————————————重命名
    15:find———————————————-搜索
    16:rm————————————————-删除数据
    17:ping———————————————-查看能不能上网
    19:tar cf ————————————————打压缩
    20:tar xf——————————————-解压缩
    安装:
    yum install
    rpm包安装
    编译安装
    快捷键:
    1:Tab键—————————————-自动补全命令或路劲。
    2:ctrl+l—————————————清屏
    3: ctrl+c—————————————取消当前操作
    4:vi/vim 快捷键:
    复制当前行 ——————————yy
    粘贴—————————————-p
    剪切—————————————-dd
    撤销—————————————-u
    恢复—————————————-ctrl + r

    转载于:https://www.cnblogs.com/XLHIT/p/11159514.html

    展开全文
  • Linux试题

    2008-01-06 21:00:08
    1. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B ) A. NID B. PID C. UID D. CID 2. 用vi打开一个文件,如何用字母"new"来代替字母"old" (A ) A. :s/old/new/...
  • linux test

    2019-03-15 20:45:00
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID 2.下面那个用户存放用户密码信息(b) A./boot B./etc C./var D./dev 3.用于自动补全功能时,输入命令或...
  • linux基础

    2020-10-21 09:58:44
    2、当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( ) A. NID  B. PID  C. UID  D. CID 答案:B 3、哪个目录存放用户密码信息( ) A. /boot  B. /etc  C. /var  D. /dev 答案
  • linux考试题

    千次阅读 2019-06-27 21:52:00
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID 答: w命令查看用户tty终端信息 ps -ef|grep pts/0 2.下面那个用户存放用户密码信息(b) A./boot B./etc C./var D....
  • 通关必读—linux面试题(带答案)

    万次阅读 多人点赞 2019-06-18 11:27:21
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID 答: w命令查看用户tty终端信息 ps -ef|grep pts/0 2.下面那个用户存放用户密码信息(b) A./boot B./etc C./var D....
  • linux 命令整合

    2019-05-15 09:12:00
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么()A.NID B.PID C.UID C.CID 2.下面那个用户存放用户密码信息()A./boot B./etc C./var D./dev 3.用于自动补全功能时,输入命令或文件的前1个或...
  • Linux_know

    2016-12-27 19:53:00
    Linux_know ...当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是PID export定义shell的全局变量 /etc目录存放用户密码信息 默认情况下管理员创建了一个用户,就会在/home目录下创建一个...
  • Linux 知识点复习

    2019-05-03 11:02:57
    &:又到考试季,希望今年能够好一些,加油。 在创建 Linux 分区,一定要创建 SWAP/... 当登录 Linux ,一个具有唯一进程的 ID 号的 shell 将被调用,这个 ID 是 PID。 用来定义 shell 的全局变量 -...
  • Linux易错题整理

    2019-12-30 17:49:09
    2.当登录linux时,一个具有唯一进程ID号的shell将被调用,这个ID是(B) A. NID B. PID C. UID D. CID 3.当运行在多用户模式下时,用Ctrl+Alt+F*可以切换6个虚拟用户终端 4.linux启动的第一个进程init启动的第...
  • linux面试选择增强

    2010-06-18 19:00:45
    1. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B ) A. NID B. PID C. UID D. CID 2. 用vi打开一个文件,如何用字母"new"来代替字母"old" (A ) A. :s/old/new/g B. :s/old/...
  • linux考试题100道

    千次阅读 2019-09-24 15:02:58
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么()B: pid是1 A.NID B.PID C.UID C.CID 2.下面那个文件夹存放用户密码信息()B /etc/passwd /etc/shadow ? A./boot B./etc C./var D./dev /etc/...
  • Linux考试题附答案

    千次阅读 2019-01-25 07:41:00
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(B)? A.NID B.PID C.UID D.CID 2.下面哪个目录存放用户密码信息(B) A./boot B./etc C./var D./dev 3.(D)不是流行的Linux操作系统。 A.Red Hat ...
  • linux 面试选择题强化

    2009-07-30 11:12:10
    1. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B ) A. NID B. PID C. UID D. CID 2. 用vi打开一个文件,如何用字母"new"来代替字母"old" (A ) A. :s/old/new/g B. :s/old/new C. :...
  • Linux学习笔记之四

    2009-11-15 07:48:46
    单元四:用户、组和系统信息 所有用户(下称user)都有一个唯一的用户(unique User ID = uid)。用户名和uid都存储在/etc/passwd 文件中。当user 登录时通常被连接到home 目录和一个Shell程序。user 不能在没有允许...
  • linux常用小知识点

    2020-07-06 17:15:25
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID 答: w命令查看用户tty终端信息 ps -ef|grep pts/0 2.下面那个用户存放用户密码信息(b) A./boot B./etc C./var D...
  • linux --- 10.常见命令

    2019-09-27 03:16:41
    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么()A.NID B.PID C.UID C.CID 2.下面那个用户存放用户密码信息()A./boot B./etc C./var D./dev 3.用于自动补全功能时,输入命令或文件的前1个或...
  • 面试题

    2018-05-23 22:53:00
    Linux 面试题 第一部分:选择题(每题2分 共50分) 1.在创建Linux分区时,一定要创建( )两个分区 A. FAT/NTFS B....2. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( ) A...
  • day22

    2020-10-17 17:02:48
    请简述源码安装nginx的步骤 前期准备工作 1、关闭防火墙 2、关闭SELinux 3、配置IP 4、配置yum源 ...当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(B) A. NID B. PID C. UID D.
  • day21

    2020-10-15 15:11:53
    登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(B) A. NID B. PID C. UID D. CID 默认情况下管理员创建了一个用户,就会在(B)目录下创建一个用户主目录。 A. /usr B. /home C. /root D. /...

空空如也

1 2
收藏数 27
精华内容 10
关键字:

登录linux时唯一id号的shell

linux 订阅