Linux面试题

目录标题

1. 用什么命令可以查看网络占用的端口

Linux 查看端口占用情况可以使用 lsof 和 netstat 命令

  1. lsof(list open files)是一个列出当前系统打开文件的工具
    查看服务器 8000 端口的占用情况
lsof -i:8000
  1. netstat
    netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况

  2. kill
    在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令
    我们看到 8000 端口对应的 PID 为 26993,使用以下命令杀死进程

kill -9 26993
2. 如何查看网络连接状况

netstat -an

[root@centos6 ~ 13:22 #58]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 192.168.147.130:22          192.168.147.1:23893         ESTABLISHED
tcp        0      0 :::22                       :::*                        LISTEN
udp        0      0 0.0.0.0:68                  0.0.0.0:*

3. 查看系统负载有两个常用的命令,是哪两个?这三个数值表示什么含义呢

uptime 和 w 还有top

[root@centos6 ~ 10:56 #37]# w
10:57:38 up 14 min,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.147.1    18:44    0.00s  0.10s  0.00s w
[root@centos6 ~ 10:57 #38]# uptime
10:57:47 up 14 min,  1 user,  load average: 0.00, 0.00, 0.00

其中load average即系统负载,三个数值分别表示一分钟、五分钟、十五分钟内系统的平均负载,即平均任务数

4. 使用top查看系统资源占用情况时,哪一列表示内存占用呢?
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
301 root      20   0     0    0    0 S  0.3  0.0   0:00.08 jbd2/sda3-8
1 root      20   0  2900 1428 1216 S  0.0  0.1   0:01.28 init
2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

VIRT虚拟内存用量
RES物理内存用量
SHR共享内存用量
%MEM 内存用量

5 如何可以把系统中不用的服务关掉?
chkconfig servicename off
6. 如何让某个服务(假如服务名为 nginx)只在3,5两个运行级别开启,其他级别关闭?

先关闭所有运行级别

chkconfig nginx off

然后打开35运行级别

chkconfig --level 35 nginx on
7 我们可以使用哪个命令查看系统的历史负载(比如说两天前的)?
sar -q -f /var/log/sa/sa22  #查看22号的系统负载
8. 某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?

用户身份验证过程记录在/var/log/secure中,登录成功的信息记录在/var/log/wtmp。

9. 网卡或者硬盘有问题时,我们可以通过使用哪个命令查看相关信息

使用命令dmesg

10. Linux的proc文件系统了解

proc文件系统是系统内核在运行时产生的一个伪文件系统,能够反映出当前内核的相关状态信息

11. linux系统里,您知道buffer和cache如何区分吗

cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快访问速度的作用。
Cache(缓存)则是系统两端处理速度不匹配时的一种折衷策略

而 buffer 的主要目的进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O,以减少响应次数
Buffer(缓冲区)是系统两端处理速度平衡(从长时间尺度上看)时使用的。它的引入是为了减小短期内突发I/O的影响,起到流量整形的作用

12. 如何查询大文件1GT
find . -type f -size +800M
13. Linux中 select 和 epoll 的差别

缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O
在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据缓存在文件系统的页缓存( page cache )中
缺点是:
数据在传输过程中需要在应用程序地址空间和内核进行多次数据拷贝操作,这些数据拷贝操作所带来的 CPU 以及内存开销是非常大的

刚才说了,对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段:

  1. 等待数据准备 (Waiting for the data to be ready)
  2. 将数据从内核拷贝到进程中 (Copying the data from the kernel to the process)

因为这两个阶段,linux系统产生了下面五种网络模式的方案。

  • 阻塞 I/O(blocking IO)
  • 非阻塞 I/O(nonblocking IO)
  • I/O 多路复用( IO multiplexing)
  • 信号驱动 I/O( signal driven IO)
  • 异步 I/O(asynchronous IO)

IO multiplexing就是我们说的select,poll,epoll,有些地方也称这种IO方式为event driven IO。select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。它的基本原理就是select,poll,epoll这个function会不断的轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程。
select,poll,epoll都是IO多路复用的机制
select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的

(1)select 函数监视的文件描述符分3类,分别是writefds、readfds、和exceptfds。调用后select函数会阻塞,直到有描述副就绪(有数据 可读、可写、或者有except)

(2)poll,不同与select使用三个位图来表示三个fdset的方式,poll使用一个 pollfd的指针实现
pollfd结构包含了要监视的event和发生的event

(3)epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次

14. 学过linux吗?讲一下僵尸进程,怎么查找一个进程是不是僵尸进程

用ps -el看出的进程状态如果是Z,就是僵尸进程。

这时,我们可以使用 kill -HUP 12339来杀掉这个僵尸进程
运行后,可以再次运行ps -A -ostat,ppid,pid,cmd | grep -e '1'来确认是否将僵尸进程杀死
如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面例子父进程pid是 12334,那么我们就运行
kill -HUP 12334来解决问题

15.如何实时查看网卡流量为多少?如何查看历史网卡流量?

安装sysstat包,使用sar命令查看

yum install -y sysstat#安装sysstat包,获得sar命令
sar -n DEV#查看网卡流量,默认10分钟更新一次
sar -n DEV 1 10#一秒显示一次,一共显示10次
sar -n DEV -f /var/log/sa/sa22#查看指定日期的流量日志
16.如何查看当前系统都有哪些进程

ps -aux 或者ps -elf

[root@centos6 ~ 13:20 #56]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2900  1428 ?        Ss   10:43   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    10:43   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    10:43   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    10:43   0:00 [ksoftirqd/0]

[root@centos6 ~ 13:21 #57]# ps -elf
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root         1     0  0  80   0 -   725 -      10:43 ?        00:00:01 /sbin/init
1 S root         2     0  0  80   0 -     0 -      10:43 ?        00:00:00 [kthreadd]
1 S root         3     2  0 -40   - -     0 -      10:43 ?        00:00:00 [migration/0]
1 S root         4     2  0  80   0 -     0 -      10:43 ?        00:00:00 [ksoftirqd/0]
1 S root         5     2  0 -40   - -     0 -      10:43 ?        00:00:00 [migration/0]
17. ps 查看系统进程时,有一列为STAT, 如果当前进程的stat为Ss 表示什么含义?如果为Z表示什么含义

S表示正在休眠;s表示主进程;Z表示僵尸进程

R 正在运行或可运行(在运行队列中)
D 不间断的睡眠(通常是IO)
S 睡眠中断(等待事件完成)
Z 已解散/僵尸,已终止但未被其父级收割

18. 想修改ip,需要编辑哪个配置文件

使用vi或者vim编辑器编辑网卡配置文件

19. 如何查看某个网卡是否连接着交换机

答:mii-tool eth0 或者 mii-tool eth1

20. 设置DNS需要修改哪个配置文件

在文件 /etc/resolv.conf 中设置DNS

21. 如何备份某个用户的任务计划

将/var/spool/cron/目录下指定用户的任务计划拷贝到备份目录cron_bak/下即可

cp /var/spool/cron/rachy /tmp/bak/cron_bak/
22. 任务计划格式中,前面5个数字分表表示什么含义

答:依次表示:分、时、日、月、周

23. 有一个脚本运行时间可能超过2天,如何做才能使其不间断的运行,而且还可以随时观察脚本运行时的输出信息?

答:使用screen工具

24. 在Linux系统下如何按照下面要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中
tcpdump -nn -s0 host 192.168.0.111 and port 80 -c 1000 -w 1.cap
25. 使用free查看内存使用情况时,哪个数值表示真正可用的内存量

free列第二行的值

26. 有一天你突然发现公司网站访问速度变的很慢很慢,你该怎么办呢?

提示:你可以从系统负载和网卡流量入手
以从两个方面入手分析:分析系统负载,使用w命令或者uptime命令查看系统负载,如果负载很高,则使用top命令查看CPU,MEM等占用情况,要么是CPU繁忙,要么是内存不够,如果这二者都正常,再去使用sar命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等


  1. Zz ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jianafeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值