运维笔试题

如果你正好看到此题,且有更好的答案请评论,谢谢!

1.假设你以root用户登录,请新建一个用户testuser,并将其添加到testers用户组,写出所有的命令。

2.以上的命令实际上是操作了哪些文件,这些配置文件的内容是什么?内容中具体字段的含义是什么?

3.做为tsetuser用户登录系统能修改上述文件么?如果不能应该怎么做?

4.某公司得到一个B类网络地址,有5个部门,每个部门有500台电脑,如何划分子网?写出网络ip地址的分类。

5.解释一下“s”在权限位出现是什么意思?

6.磁盘未满但不能创建新文件是为什么?如何使用命令确认该情况?如何解决?

7.写出以下命令:

      a、按修改时间查看当前目录的文件;

      b、以GB为单位查看当前磁盘空间使用情况;

      c、以MB为单位查看当前目录内容所占用的磁盘空间;

   d、让Linux系统在10分钟后关机,让Linux系统在晚上11::0分关机;

   e、查看/var/log/1.log的头15行和后15行的记录;

      f、创建一个新文件是它的权限就是600;

      g、查看所有使用tcp协议的监听进程的情况;

      h、查找“~/work/”所有以test开头,以php结尾的文件,并在这些文件中查找所有以十进制点分形式给出的ip地址;

8.假设已经安装了MySQL,写出以下命令或语句:

      a、创建数据库test_db;

      b、创建一个用户test_user,密码为1234;

      c、给test_user查询所有test_db表的权限;

      d、假设一个已经存在的数据库public_db,使用命令备份其中所有的数据;

      e、将备份好的public_db的数据恢复;

      f、假设有一张表包括了id、name、value3个字段,写一个sql语句查询id、name以及每个不同name下value的和,并且写出value大于1000的结果。

 

答案:

1.假设你以root用户登录,请新建一个用户testuser,并将其添加到testers用户组,写出所有的命令。

groupadd testers;

useradd  testuser -g testers;

2.以上的命令实际上是操作了哪些文件,这些配置文件的内容是什么?内容中具体字段的含义是什么?

# tail -1 /etc/group              //用户组文件
testers:x:1001:
# tail -1 /etc/passwd           //用户账号的重要信息保存文件
testuser:x:504:1001::/home/testuser:/bin/bash

#tail -1 /etc/shadow           //用户密码保存文件

testuser:!!:17497:0:99999:7:::

3.做为tsetuser用户登录系统能修改上述文件么?如果不能应该怎么做?

只可以用passwd命令修改自己的密码,不可以进行读取以外的操作,没有权限。

修改的话得配置sudo权限:sudo权限配置如下

visudo来修改sudo文件(/etc/sudoers),添加:

testuser ALL=(ALL)       ALL     //格式是:用户  机器    操作 

4.某公司得到一个B类网络地址,有5个部门,每个部门有500台电脑,如何划分子网?写出网络ip地址的分类。

首先关于ip地址你应该知道这些:

常用的:
A类:0 网络号主机号                       0-127   由于127.0.0.1系统保留,故1.0.0.0-126.255.255.255 B类:1 0 网络号 主机号                        128-191    128.0.0.0-191.255.255.255 C类:1 1 0 网络号 主机号                       192-223    192.0.0.0-223.255.255.255
不常用的:
d类:用于多播,不在分配                        224-239     224.0.0.0-239.255.255.255
e类:用于实验,不在分配                        240-255     240.0.0.0-255.255.255.255
A类地址用于少量的网络(最多127个)主机数大于2
^16的大型网,每个A类网络可容纳最多2^24台主机; B类地址用于主机数介于2^82^16之间数量不多不少的中型网,B类网络最多2^14个; C类地址用于每个网络只能容纳2^8台主机的大量小型网,C类网络最多2^21个。 除了以上A、B、C三个主类地址外,还有另外两类地址,如下: D类:1 1 1 0多目地址 E类:1 1 1 1 0留待后用 其中多目地址(multicast address)是比广播地址稍弱的多点传送地址,用于支持多目传输技术。E类地址用于将来的扩展之用
私有地址:
  A:10.0.0.0(1个)
  B:172.16.0.0- 172.32.0.0(16个)
  C:192.168.0.0-192.168.255.0(256个)

 

题目要求实际上是划分5个子网,每个子网有500台电脑,假设给的ip是192.168.0.0,我子网有2x255=510就可以满足,这样的话我的子网掩码为255.255.254,可以分128个子网,172.16.0 255.255.255.254
192.168.2.0 255.255.254.0     部门一
192.168.4.0 255.255.254.0     部门二
192.168.6.0 255.255.254.0     部门三
192.168.8.0 255.255.254.0     部门四

192.16.10.0 255.255.254.0     部门五

5.解释一下“s”在权限位出现是什么意思?

是指让普通用户在使用二进制文件时拥有属主的权限,比如/etc/passwd,每个用户都可以用passwd命令来修改自己的密码,如果不想让其他用户修改可以chmod u-s

可以参考:https://www.cnblogs.com/zhangming-blog/articles/5956280.html

6.磁盘未满但不能创建新文件是为什么?如何使用命令确认该情况?如何解决?

查看系统的inode指是否已满df -i

解决方法:清除占用inode过多的无用文件,或者重新格式化磁盘重新分配inode

cache为缓存目录,有很多无用文件,用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
  ln -s /opt/newcache /data/cache

7.写出以下命令:

      a、按修改时间查看当前目录的文件;

    ls -l显示的是该文件的mtime,也就是这个文件的内容上次更改的时间。

      b、以GB为单位查看当前磁盘空间使用情况;

    df -h以合适的单位来显示,例如GB

      c、以MB为单位查看当前目录内容所占用的磁盘空间;

    du -sm

   d、让Linux系统在10分钟后关机,让Linux系统在晚上11:01分关机;

    shutdown  +10

    shutdown -h 23:01  (-h关机,-r重启)

     shutdown -c 取消重启

   e、查看/var/log/1.log的头15行和后15行的记录;

    head -15、tail -15

      f、创建一个新文件时它的权限就是600;

    touch test; chmod 600 test

    install 命令可以cp时设定权限

      g、查看所有使用tcp协议的监听进程的情况;

    netstat -t

      h、查找“~/work/”所有以test开头,以php结尾的文件,并在这些文件中查找所有以十进制点分形式给出的ip地址;

    cat `find ~/work/ -name "test*php"` | egrep -o  "([0-9]{1,3}\.){3}[0-9]"

    cat `find ~/work/ -name "test*php"` | grep -o  "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]"

          正则表达ip:https://www.cnblogs.com/olive987/p/5844501.html

8.假设已经安装了MySQL,写出以下命令或语句:

      a、创建数据库test_db;

    create database test_db;

      b、创建一个用户test_user,密码为1234;

    命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 

      c、给test_user查询所有test_db表的权限;

    命令:grant select on test_db.* to test_user@localhost; test_user 可以查询 test_db 中的表。

      d、假设一个已经存在的数据库public_db,使用命令备份其中所有的数据;

  mysqldump基本语法:

      mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql

    命令:mysqldump -u test_user -p public_db > pablic_dbbak.sql

      e、将备份好的public_db的数据恢复;

     命令:mysql -uroot pablic_db < pablic_dbbak.sql

      f、假设有一张表包括了id、name、value3个字段,写一个sql语句查询id、name以及每个不同name下value的和,并且写出value大于1000的结果。   

    mysql> select * from (select id,name,SUM(value) as "sumvalue" from t1 group by name) t2 where sumvalue>1000;
        +------+------+----------+
        | id | name | sumvalue |
        +------+------+----------+
        | 2 | abm | 1223 |
        +------+------+----------+
        1 row in set (0.00 sec)

posted @ 2017-11-27 16:11  abm  阅读(1198)  评论(0编辑  收藏  举报