zoukankan      html  css  js  c++  java
  • 面试题-6

    1.查找根目录下所有的隐藏目录

    [root@chengyinwu ~]# find / -type d -name ".*"
    

    2.查找根目录下以rpm结尾的所有文件

    [root@yinwucheng ~]# find / -type f -name "*.rpm"
    

    3.查找/data/bak目录下15天以前的文件删除(自行修改系统时间模拟相关环境)

    [root@yinwucheng ~]# find /data/bak -type f -mtime +15 |xargs rm rf
    

    4.使用“ mount /dev/cdrom /mnt/ ” 挂载光盘,进入到/mnt/Packages目录,查找该目录是否存在带有关键字“tree”和“vsftpd”的软件包

    [root@yinwucheng ~]# mount /dev/cdrom /mnt/
    [root@yinwucheng ~]# cd /mnt/Packages/
    [root@yinwucheng /mnt/Packages]# rpm -qa |grep -E 'tree|vsftpd'
    tree-1.6.0-10.el7.x86_64
    vsftpd-3.0.2-25.el7.x86_64
    

    5.使用rpm命令安装tree这个软件。

    [root@yinwucheng /mnt/Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
    

    6.查看你的服务器中是否安装httpd这个软件。

    [root@yinwucheng /mnt/Packages]# rpm -q httpd
    

    7.接上题,如果没有请用rpm进行安装。

    [root@yinwucheng /mnt/Packages]# yum install httpd
    

    8.启动httpd这个服务,然后用你的10.0.0.0这个网段的IP在浏览器上面进行访问,看看是否有结果,如果没有,请关闭你的防火墙

    [root@yinwucheng /mnt/Packages]# systemctl start httpd
    [root@yinwucheng /mnt/Packages]# systemctl stop firewalld
    [root@yinwucheng /mnt/Packages]# systemctl disable firewalld
    

    9.查看httpd这个软件包里面的内容。

    [root@yinwucheng /mnt/Packages]# rpm -ql httpd
    

    10.查看httpd这个软件的配置文件是哪个

    [root@yinwucheng /mnt/Packages]# rpm -qc httpd
    /etc/httpd/conf/httpd.conf
    

    11.查看httpd这个软件包的详细信息。

    [root@yinwucheng /mnt/Packages]# rpm -qi httpd
    

    12.查看一下netstat这个命令属于哪个软件包

    [root@yinwucheng /mnt/Packages]# yum provides netstat
    net-tools-2.0-0.24.20131004git.el7.x86_64
    

    13.查看你的服务器中是否安装sl这个命令,如果有请进行删除,没有就先安装在删除。

    [root@yinwucheng /mnt/Packages]# rpm -qa sl
    sl-5.02-1.el7.x86_64
    [root@yinwucheng /mnt/Packages]# rpm -e sl
    

    14.联网下载mongodb这个软件,版本号为3.0.0

    [root@yinwucheng /mnt/Packages]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-mongos-3.0.0-1.el7.x86_64.rpm
    

    15.将mongodb这个软件版本升级为4.0.0

    [root@yinwucheng /mnt/Packages]# rpm -Uvh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-mongos-4.0.0-1.el7.x86_64.rpm
    

    16.列举一下rpm的常用参数有哪些

    选项 描述
    -i 安装rpm
    -v 显示安装详细信息
    -h 显示安装rpm进度
    选项 描述
    rpm -q 查看指定软件包是否安装
    rpm -qa 查看系统中已安装的所有RPM软件包列表
    rpm -qi 查看指定软件的详细信息
    rpm -ql 查询指定软件包所安装的目录、文件列表
    rpm -qc 查询指定软件包的配置文件
    rpm -qf 查询文件或目录属于哪个RPM软件

    下面几题请使用yum命令

    17.yum安装rsync这个软件。

    [root@chengyinwu ~]# yum install rsync -y
    

    18.安装多个软件,例如sl、lsof、net-tools、nmap等

    [root@chengyinwu ~]# yum install sl lsof net-tools nmap -y
    

    19.删除sl这个命令

    [root@chengyinwu ~]# yum remove sl -y
    

    20.查看一下ping这个命令属于哪个软件包

    [root@chengyinwu ~]# yum provides ping
    iputils-20160308-10.el7.x86_64
    

    21.查看你的服务器中有哪些可用的yum源仓库。

    [root@chengyinwu ~]# yum repolist
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    repo id                                  repo name                                                              status
    base/7/x86_64                            CentOS-7                                                               10,019
    epel/x86_64                              Extra Packages for Enterprise Linux 7 - x86_64                         13,343
    extras/7/x86_64                          CentOS-7                                                                  435
    updates/7/x86_64                         CentOS-7                                                                2,500
    repolist: 26,297
    
    

    1.把你系统中原有的base源更新为阿里云的源

    [root@yinwucheng ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    

    2.在你的系统中增加一个epel源,请使用阿里云的镜像

    [root@yinwucheng ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    

    3.给系统添加一个zabbix的源的仓库

    方法一:手动配置zabbix源
    [root@yinwucheng /etc/yum.repos.d]# vim zabbix.repo
    [zabbix]
    name=Zabbix Official Repository - $basearch
    baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
    
    [zabbix-non-supported]
    name=Zabbix Official Repository non-supported - $basearch
    baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    gpgcheck=1
    -----------------------------------------------------------------------------------------
    方法二:直接安装
    rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    

    4.把你系统中的base和epel源改成清华源的镜像

    1.将以下内容写入 /etc/yum.repos.d/CentOS-Base.repo
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$ba
    search/
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basear
    ch&repo=extras
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus
    /$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basear
    ch&repo=centosplus
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    2.yum install epel-release
    

    5.简单下载一个命令ntpdate

    [root@yinwucheng ~]# yum install ntpdate -y
    

    6.更新ntpdate这个命令的版本

    [root@yinwucheng ~]# yum   update ntpdate
    

    7.卸载系统中的ntpdate这个命令

    [root@yinwucheng ~]# yum remove ntpdate -y
    

    8.显示系统中可用的yum源仓库

    [root@yinwucheng ~]# yum repolist
    

    9.显示系统中所有以tre开头的软件包

    [root@yinwucheng ~]# yum list |grep "^tre*"
    

    10.显示系统中可更新的软件包

    [root@yinwucheng ~]# yum check-update
    

    11.显示系统中已经安装过得软件包

    [root@yinwucheng ~]# yum list installed
    

    12.查看net-tools这个软件包的详细信息

    [root@yinwucheng ~]# rpm -qi net-tools
    

    13.查看scp这个命令来源于哪个软件包。

    [root@yinwucheng ~]# yum provides scp
    openssh-clients-7.4p1-16.el7.x86_64
    

    14.清理本地的软件包缓存

    [root@yinwucheng ~]# yum clean packages
    

    15.查看一下nginx这个软件包都依赖哪些软件

    方法一:
    [root@yinwucheng ~]# yum install nginx -y
    Dependency Installed:
      dejavu-fonts-common.noarch 0:2.33-6.el7                      dejavu-sans-fonts.noarch 0:2.33-6.el7                 
      fontconfig.x86_64 0:2.13.0-4.3.el7                           fontpackages-filesystem.noarch 0:1.44-8.el7           
      gd.x86_64 0:2.0.35-26.el7                                    gperftools-libs.x86_64 0:2.6.1-1.el7                  
      libX11.x86_64 0:1.6.5-2.el7                                  libX11-common.noarch 0:1.6.5-2.el7                    
      libXau.x86_64 0:1.0.8-2.1.el7                                libXpm.x86_64 0:3.5.12-1.el7                          
      libxcb.x86_64 0:1.13-1.el7                                   nginx-all-modules.noarch 1:1.12.2-3.el7               
      nginx-filesystem.noarch 1:1.12.2-3.el7                       nginx-mod-http-geoip.x86_64 1:1.12.2-3.el7            
      nginx-mod-http-image-filter.x86_64 1:1.12.2-3.el7            nginx-mod-http-perl.x86_64 1:1.12.2-3.el7             
      nginx-mod-http-xslt-filter.x86_64 1:1.12.2-3.el7             nginx-mod-mail.x86_64 1:1.12.2-3.el7  
    --------------------------------------------------------------------------------------------------------------
    方法二:
    [root@yinwucheng ~]# yum deplist nginx
    

    16.查看yum的历史记录

    [root@yinwucheng ~]# yum history
    

    17.了解一下yum的包组有关的命令参数

    yum groups list               查看系统的组包
    yum groups install +包名 -y    安装组包
    yum remove +包名 -y            删除组包
    

    18.总结一下yum命令的常用参数。

       yum install    安装软件
    ​	yum remove     卸载软件
    ​	yum list       列出所有安装与未安装的软件包
    ​	yum provides   查看命令属于哪个软件包
    ​	yum repolist   列出yum源可用的软件仓库
    ​	yum update     升级所有软件(包括内核及所有设置)
    
    ​	yum history     查看历史执行的yum命令
    ​	yum clean all packages     清除缓存的软件包
    ​	yum makecache              生成缓存
    ​	yum reinstall              覆盖安装
    ​	-y                         遇到是否选项则默认选择yes
    

    19.把你的base和epel的源改成阿里云的镜像源。

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    

    20.自主搭建一个本地yum仓库,书写好操作过程,rpm包可以使用磁盘镜像中的rpm包。

    1.关闭防火墙与selinux
    systemctl stop firewalld
    setenforce 0
    2.挂载镜像
    mount /dev/cdrom /mnt
    3.将本地的所有源打成压缩包
    cd /etc/yum.repos.d/
    gzip *
    4.建立本地仓库
    vim /etc/yum.repos.d/centos.d
    [centos]
    name = centos
    baseurl = file:///mnt
    gpgcheck = 0
    enabled = 1
    5.清除缓存
    yum clean all
    6.验证本地仓库
    yum list
    rpm -qa
    yum install vsftpd -y
    

    一、基础(每题 2 分)

    1.1 阐述绝对路径与相对路径的区别

    • 绝对路径:只要从根 / 开始的路径都算是绝对路径; 例如:/a.txt
    • 相对路径:相对于当前的路径, 例如:.a.txt

    1.2 简述软连接与硬连接的区别

    • 软链接:相当于快捷方式,不同的inode指向一个block,删除源文件则软链接失效
    • 硬链接:相当于做备份,相同的inode指向同一个block,删除源文件对硬链接无影响

    1.3 简述命令执行的流程

    • 首先看命令是不是通过绝对路径的方式执行
    • 第二看命令是否存在别名设置
    • 第三查看命令是内置命令还是外置命令
    • 第四命令若是内置,可直接执行,若是外置命令,查看是否存在缓存 hash
    • 最后通过$PATH变量查找命令,若查到,则可以正常执行,若没有,则会报错 commant not found

    1.4 写出查询 file.txt 以 abc 结尾的行

    grep 'abc$' file.txt
    

    1.5 查找 file.log 文件中的包含关键字 “helloworld”的内容,及其上下两行的重定向到 1.txt

    grep -C 2 'helloworld' file.log > 1.txt
    

    1.6 假设公司研发部的用户 David 和 Peter 属于组 A

    1.6.1 建立相应的用户和组,并设置相应的对应关系

    groupadd A
    useradd David -g A
    useradd Peter -g A
    

    1.6.2 建立目录 yf_a,该目录里面的文件只能由研发部人员读取、增加、删除、修改以及执 行,其他用户不能对该目录进行任何操作

    mkdir yf_a
    chown .A yf_a yf_a
    chmod 770 yf_a
    

    1.6.3 建立目录 yf_b,该目录里面的文件只有研发部的 David 拥有所有权限,研发部的其他 人只有查看权限,其他部门不能进行任何操作

    mkdir yf_b
    chown David.A yf_b
    chmod 720 yf_b
    

    1.7 有一用户 oldboy,及用户组 oldboy,在code 目录下创建的所有文件自动归属于 oldboy 组所有

    groupadd oldboy
    useradd oldboy -g oldboy
    mkdir code
    chown .oldboy code
    chmod g+s code
    

    1.8 有两个用户组 python 及 Linux,python组可以修改读取/hom/python/目录下所有内容,但 不能让 Linux 组读取;Linux 组可以修改读取 /home/linux/目录下所有文件,但不能让 python 组读取。给出配置命令。

    groupadd python
    groupadd Linux
    
    mkdir /hom/python/
    chown .python /hom/python/
    chmod 770 /hom/python
    
    mkdir /home/linux/
    chown .Linux /home/linux/
    chmod 770 /home/linux/
    

    二、find 相关(每题 3 分)

    2.1 找出/tmp目录下,属主不是 root 的文件

    find /tmp -type f ! -user root
    

    2.2 查找/var目录下属主为 old,且属组为 boy的文件

    find /var -type f -user old -g boy
    

    2.3 查找/var目录下 7 天以前修改、且属组为root 的文件

    find /var -type f -mtime +7 -group root
    

    2.4 查找/etc目录下大于 1M 且类型为普通文件的所有文件

    find /etc -type f -size +1M 
    

    2.5 查找/etc/目录下大于 100k,小于 1M 的文 件

    find /etc/ -type f -size +100k -size -1M
    

    2.6 查找/目录下文件名包含 txt 的文件

    find / -type f -name "*txt"
    

    2.7 查找/目录下属主是 oldboy 或者属主是 oldgirl 的文件

    find / -type f -user oldboy -o -group oldgirl
    

    2.8 删除/tmp目录下 15 天前的文件

    find /tmp -type f -mtime +15 |xargs rm -rf
    

    2.9 查找根下名为 1.txt 或 2.txt 的文件

    find / -type f -name "1.txt" -o -name "2.txt"
    

    2.10 查找/tmp 目录下所有文件并删除

    find /tmp/* -type f |xargs rm -rf
    

    三、tar 相关(每题 3 分)

    3.1 使用 zip 打包/etc 目录。

    zip -r etc.zip /etc 
    

    3.2 用 zip 打包/opt 目录,要求不显示打包过程。

    zip -q -r opt.zip /opt
    

    3.3 解压/data/etc.zip到当前目录

    unzip /data/etc.zip
    

    3.4 已知文件 oldboy.zip,在不解压的情况下,如何查看该文件的内容

    zcat oldboy.zip
    

    3.5 将/data/old.tar.gz 解压到/opt 目录下

    tar xf /data/old.tar.gz -C /opt
    

    3.6 不解压的情况下,查看/data/old.tar.gz 包中都有什么内容

    tar tf /data/old.tar.gz
    

    3.7 打包/etc/目录,要求不打包/etc/hosts这个文件。

    tar etc.tar.gz /etc --exclude=/etc/hosts
    

    3.8 打包/etc/目录,要求不打包/etc/hosts和/etc/passwd这两个文件。

    tar etc.tar.gz /etc --exclude=/etc/hosts --exclude=/etc/passwd
    

    3.9 打包/etc/目录,命令以ip 地址方式的压缩包:比如:10.0.0.200_etc.tar.gz

    tar $(ifconfig eth0 |awk 'NR==2 {print $2}')_etc.tar.gz /etc
    

    3.10 打包/etc/目录,要求以.bz2格式

    tar cjf etc.bz2 /etc 
    

    四、软件安装相关(每题3 分)

    4.1 使用rpm 命令安装 tree 软件。

    rpm -ivh tree +版本号
    

    4.2 查看你的服务器中是否安装httpd 这个软件。

    rpm -q httpd
    

    4.3 查看httpd 软件包里面的内容。

    rpm -ql httpd
    

    4.4 查看httpd 软件包的详细信息。

    rpm -qi httpd
    

    4.5 查看一下netstat 这个命令属于哪个软件包

    yum provides netstat
    

    4.6 卸载sl 这个命令

    rpm -e sl
    

    4.7 已知服务的mongodb 的版本为 3.0,现将mongodb这个软件版本升级为4.0,请给出 rpm升级命令

    rpm -Uvh +最新版本号
    

    4.8 yum 安装 rsync 这个软件。

    yum install rsync -y
    

    4.9 yum 安装多个软件,例如 sl、lsof、net-tools、nmap 等

    yum install sl lsof net-tools nmap -y
    

    4.10 查看你的服务器中有哪些可用的 yum 源仓库。

    yum repolist
    

    五、进阶(每题4 分)

    5.1 将“I am student”重定向到/root/bgx1.txt中

    echo "I am student" > /root/bgx1.txt
    

    5.2 简述源码编译的流程

    1.下载源码包
    2.解压
    3. ./configure配置
    4.编译
    5.安装
    6.软件软链接
    7.运行
    8.测试
    

    5.3 查找/etc/目录下以.conf结尾、修改时间为最近七天的文件,打包压缩为/tmp/conf.tar.gz

    tar zcvf /tmp/conf.tar.gz  $(find  /etc/ -type f -mtime -7 -name "*.conf")
    

    5.4 查找/目录下以a 开头的目录,打包压缩为zip结尾的压缩包

    find / -type d -name "a*" -exec zip {} a.zip ;
    

    5.5 查找/目录下,属主为oldboy 的文件,复制到/home/oldboy/目录下

    find / -type f -user oldboy -exec cp {} /home/oldboy/
    

    六、翻译(每题2 分)

    6.1 [root@test-200 ~]# cd /rot

    -bash: cd: /rot: No such file or directory

    6.2 [root@test-200 ~]# mdkir a

    -bash: mdkir: command not found

    6.3 [root@test-200 ~]# mkdir a

    mkdir: cannot create directory ‘a’: File exists 6.4

    [root@test-200 ~]# rm a

    rm: cannot remove ‘a’: Is a directory

    6.5 [root@test-200 ~]#rm a.txt

    rm:remove regular empty file ‘a.txt’?

    6.6 [root@test-200 ~]# cp /tmp/a.txt /root/a.txt

    cp:overwrite ‘/root/a.txt’?

    6.7 [root@test-200 ~]# id www

    id: www: no such user

    6.8[test@test-200 /]$ cd /root

    bash: cd:/root: Permission denied

    6.9 [root@test-200 /tmp]# cp -q a.txt c.txt

    cp: invalidoption -- 'q'

    6.10 [root@test-200 /home]# useradd test

    useradd: user'test' already exists

  • 相关阅读:
    Java服务器 dm Server
    POI
    系统程序员成长计划写得又快又好的秘诀(四)
    _stati64()获取文件信息
    系统程序员成长计划并发(一)(下)
    KJAVA虚拟机Hack笔记用GTK+实现绘图操作
    系统程序员成长计划写得又快又好的秘诀(六)
    系统程序员成长计划并发(一)(上)
    系统程序员成长计划并发(二)(上)
    系统程序员成长计划并发(二)(下)
  • 原文地址:https://www.cnblogs.com/yinwu/p/11369432.html
Copyright © 2011-2022 走看看