首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
软件
运维软件
办公软件
书籍资源
技术陪跑营
重要信息
首页 运维面试最不起眼的基础知识,却成了你面试跨不过去的门槛

最不起眼的基础知识,却成了你面试跨不过去的门槛

@[toc]

1. Linux下如何使用配置文件设置网卡IP地址。

[root@ecs-c13b ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet                # 网卡类型:为以太网
PROXY_METHOD=none            # 代理方式:关闭状态
BROWSER_ONLY=no                # 只是浏览器:否
BOOTPROTO=dhcp                # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
DEFROUTE=yes                # 默认路由:是, 不明白的可以百度关键词 `默认路由`
IPV4_FAILURE_FATAL=no        # 是不开启IPV4致命错误检测:否
IPV6INIT=yes                # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
IPV6_AUTOCONF=yes            # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
IPV6_DEFROUTE=yes            # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
IPV6_FAILURE_FATAL=no        # 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE=stable-privacy            # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
NAME=ens33                    # 网卡物理设备名称
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698    # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
DEVICE=ens33                    # 网卡设备名称, 必须和 `NAME` 值一样
ONBOOT=no                        # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`


设置静态ip:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

设置完成后:
systemctl restart network

2. Linux下配置主机名,并使之永久生效

centos7:
[root@ecs-c13b ~]# hostnamectl  查看当前主机名情况
   Static hostname: ecs-c13b
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 8f5b018f6eb344909f6cfec5ad0839ef
           Boot ID: 6f00bd8d7498442d988377805d1f448e
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1062.12.1.el7.x86_64
      Architecture: x86-64

修改主机名的三种方式:
1) 临时有效的
[root@ecs-c13b ~]# hostname gaosh
2) 永久生效的
[root@ecs-c13b ~]# hostnamectl set-hostname "zmgaosh"
3) 修改/etc/hostname
[root@ecs-c13b ~]# cat /etc/hostname
zmgaosh

3. 给出你经常用的远程访问一台Linux主机的工具和方法,如何向远程主机上传文件,如何从远程主机向本地下载文件

远程访问Linux主机的工具: xshell ,使用密码或者秘钥的形式进行管理
下载和上传,可以使用命令rz, sz
          也可以直接使用xshell工具

4. 如何查看系统的如下参数: 1cpu核心数,内存大小,硬盘总量 2 当前的cpu利用率,每个cpu核的利用率,当前内存使用情况, 3 指定进程的cpu利用率和内存使用量

查看cpu
[root@ecs-c13b ~]# cat /proc/cpuinfo |grep processor   
processor       : 0
processor       : 1

查看内存:
[root@ecs-c13b ~]# cat /proc/meminfo  |head -n 2
MemTotal:        3879860 kB
MemFree:         3190668 kB

查看硬盘:
[root@ecs-c13b ~]# df -lh
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G  8.6M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/vda1        40G  2.1G   36G    6% /
tmpfs           379M     0  379M    0% /run/user/0

top
第三行(Cpus):
分别表示了 CPU 当前的使用率

5. 查看某个目录或者文件的占用空间大小

[root@ecs-c13b ~]# du -h
4.0K    ./.ssh
4.0K    ./.pki/nssdb
8.0K    ./.pki
4.0K    ./test
44K     .

6. 强制关闭一个正在运行的程序

ps -aux |grep 进程
查到进程ID为1234
kill -9 1234

7. iptables 阻止系统发出tcp的flag为reset的数据包

iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP

8. 如何配置Linux系统的环境变量,如何配置Linux系统的用户环境变量。

系统环境变量:
cat /etc/profile
source /etc/profile

用户环境变量
切换到用户的家目录
vim .bash_profile
source /etc/profile

9. 如何更改Linux系统中文件的属性(只读,读写,可执行)

只读: r
读写: rw
可执行: x
使用命令 chmod

10. Linux服务的关闭/启动方法,如何设置某个服务的开启自启动

启动:
 systemctl  start sshd
 关闭: 
 systemctl  stop  sshd
centos7 开机自启动
[root@ecs-c13b ~]# systemctl  enable  sshd
centos6
chkconfig --add sshd

11. 如何查看系统中是否安装了指定的rpm包,安装 一个指定的rpm包,使用tcpdump命令,如何从网卡eth1捕获从192.168.0.1到192.168.0.2的udp包或者icmp包。

用法: rpm [选项...]
-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。

rpm -ql 查看是否安装
[root@ecs-c13b ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

rpm -qa 列出所有安装过的包

12. 如何实现一个脚本,检测一个程序(cassini)是否在运行,如果没有在运行就运行它, 并对每次运行的时间进行记录。(cassini 位于/opt/cassini/bin目录下,非系统服务程序)

学员版脚本:
#!/bin/bash
time=(date +%F,%T)
cassini=/opt/cassini/bin
ps -ef | grepcassini | grep -v grep
if [ ? -eq 0 ];then
        echo "程序已经启动,检测时间:time"
else
        echo "程序没有在运行,下面开始启动"
        cd cassini && ./
        echo "启动时间:time"
fi

点评: 脚本有几个地方需要完善
1. 题目要统计的不是当前时间,而是程序运行的时间或者程序开始的时间,而不是执行启动命令后,在查询出来的当前时间
[root@ecs-c13b ~]# ps -aux |grep sshd
root      9125  0.2  0.1 157748  6360 ?        Ss   17:50   0:39 sshd: root@pts/0,pts/1
root      9144  0.0  0.1 157320  5944 ?        Ss   17:50   0:00 sshd: root@notty
root      9315  0.0  0.1 112920  4312 ?        Ss   23:01   0:00 /usr/sbin/sshd -D
root     20256  0.0  0.0 112732   972 pts/0    S+   23:10   0:00 grep --color=auto sshd
[root@ecs-c13b ~]# ps -p 9125 -o etime
    ELAPSED
   05:20:58   ssh 当前运行时间为5个小时20分钟

[root@ecs-c13b ~]# ps -p 9125 -o lstart   这条命令显示的是程序开始运行时间
                 STARTED
Wed Jun 17 17:50:07 2020

2.  执行脚本写全路径: /opt/cassini/bin/cassini
3. 此脚本不能够实时监测,可以使用定时任务

13. 有如下文件: a.txt (第一列是姓名,第二列是成绩)请使用脚本计算出zhangsan的总成绩

zhangsan 15
lisi 15
zhangsan 16
lisi 17
zhangsanfeng 18

学员版脚本
[root@ecs-c13b ~]# cat a.sh 
#!/bin/bash
cj=(cat a.txt | awk '{if (1 == "zhangsan") {print 2}}')
sum=0
for i incj
do
        let sum=sum+i
done
echo "zhangsan成绩总和:sum"

14 SQL查询题目

根据下表内容用sql命令筛选出每个学生的最高成绩的结果集

姓名 成绩 编号
A 55 1
A 60 2
B 70 3
C 90 4
B 50 5
D 90 6
MariaDB [st_course]> create table student( sname varchar(20) not null, sscore tinyint(100) not null , sno int not null auto_increment primary key);

插入数据:
MariaDB [st_course]> insert into student (sname, sscore, sno) values('A',55,1);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values('A',60,2);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values('B',70,3);
Query OK, 1 row affected (0.01 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values('C',90,4);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values('B',50,5);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values('D',90,6);
Query OK, 1 row affected (0.00 sec)

查看表内容
MariaDB [st_course]> select * from student
    -> ;
+-------+--------+-----+
| sname | sscore | sno |
+-------+--------+-----+
| A     |     55 |   1 |
| A     |     60 |   2 |
| B     |     70 |   3 |
| C     |     90 |   4 |
| B     |     50 |   5 |
| D     |     90 |   6 |
+-------+--------+-----+
6 rows in set (0.00 sec)

查询结果:
MariaDB [st_course]> select * from student where  sscore in (select max(sscore) from student group by sname);
+-------+--------+-----+
| sname | sscore | sno |
+-------+--------+-----+
| A     |     60 |   2 |
| B     |     70 |   3 |
| C     |     90 |   4 |
| D     |     90 |   6 |
+-------+--------+-----+
4 rows in set (0.00 sec)


总结:
1. 笔试题,主要考核一个面试者的基础能力,可以通过刷题来准备,需要每个学员花时间去练习。

  1. 一定要认真读题目,把题目的意思读明白。

本文链接:http://www.geekyunwei.com/1405.html

网友评论comments

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2021 极客运维 公众号《极客运维之家》
扫二维码
扫二维码
返回顶部