栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

15.linux面试题

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

15.linux面试题

linux面试题
  • 1.查看文件命令
  • 2.文件管理命令
  • 3.防火墙的命令
  • 4.查看进程的命令
  • 5.查看日志
  • 6.抓取日志
  • 7.压缩命令
  • 8.jps命令(显示当前系统的java进程情况,及其id号)
  • 9.find命令
  • 10.df,du查看磁盘的使用情况
  • 11.top命令
  • 12.关机重启
  • 13.生产环境服务器变慢,诊断思路和性能评估谈谈?(重要)
  • 14.假如生产环境出现CPU占用过高,请谈谈你的分析思路和定位

1.查看文件命令
命令作用
vi/vim 文件名以编辑模式查看,可修改
cat 文件名显示文件的全部内容
more 文件名分页显示文件内容
Space键:显示文本的下一屏内容 b:显示上一屏内容 h:帮助命令
less 文件名与more相似,更好的是可以往前翻页
-N显示行号 h:帮助命令 f:往后一页 b:往前一页
tail 文件名仅查看尾部,还可以指定行数
head 文件名仅查看头部,还可以指定行数
2.文件管理命令
命令作用
mv操作用来移动文件,改名
cp用来复制文件 -r连同文件夹一起复制 -v显示详细信息
rm删除文件 -r删除文件夹
3.防火墙的命令
命令作用
service firewalld start开启防火墙
service firewalld restart重启防火墙
service firewalld stop关闭防火墙
service firewalld status查看防火墙状态
firewall-cmd --list-ports查看开放端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent添加端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent关闭端口
4.查看进程的命令
命令作用
ps -aux|grep 服务名查看某个服务进程信息
ps -ef|grep 服务名查看父进程
kill -9 pid终止进程

5.查看日志
tail -f  是查看日志最常用的方法,能够动态查看日志
-f 表示循环读取   -n 显示行数
tail -fn 10 文件名  每次文档更新屏幕会动态实时显示当前日志  ctr+c停止
6.抓取日志

grep是必备日志分析命令

命令作用
grep强大的grep,搜日志就靠它了
grep -r ‘关键字如商品ID’ *.log使用频率最高
grep -v反向文本搜索
grep ‘关键字如商品ID’ *.log | grep 免费商品条件结果中,在加条件筛选下
grep ‘关键字如商品ID’ *.log >> anan.txt相关日志输入到一个txt中,下载到本地慢慢看,我最喜欢
grep -A 2 ‘商品ID’ *.log显示商品ID及后5行
grep -B 2 ‘商品ID’ *.log显示商品ID及上5行
grep -C 2 ‘商品ID’ *.log显示商品ID及上下5行
grep ‘商品ID’ *.log --col高亮显示商品ID,非常醒目啊
grep Aug -R /var/log/*在目录 ‘/var/log’ 及随后的目录中搜索字符串"Aug"

7.压缩命令
压缩命令作用
tar对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
查询:tar -jtv -f filename.tar.bz2
解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
bunzip2 file1.bz2解压一个叫做 'file1.bz2’的文件
bzip2 file1压缩一个叫做 ‘file1’ 的文件
gunzip file1.gz解压一个叫做 'file1.gz’的文件
gzip file1压缩一个叫做 'file1’的文件
gzip -9 file1最大程度压缩
rar a file1.rar test_file创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
rar x file1.rar解压rar包
zip file1.zip file1创建一个zip格式的压缩包
unzip file1.zip解压一个zip格式压缩包
zip -r file1.zip file1 file2 dir1将几个文件和目录同时压缩成一个zip格式的压缩包
8.jps命令(显示当前系统的java进程情况,及其id号)

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

[root@iZ2ze5jmothsemrqjarbvqZ opt]# jps
9591 nacos-server.jar
21863 Jps
9.find命令
命令作用
find / -name file1从"/"开始进入根文件系统搜索文件和目录
find / -user user1搜索属于用户’user1’的文件和目录
find /usr/bin -type f -atime +100搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10搜索在10天内被创建或者修改过的文件
whereis halt显示一个二进制文件、源码或man的位置
[root@iZ2ze5jmothsemrqjarbvqZ opt]# find ./ -name test*
./test.txt
[root@iZ2ze5jmothsemrqjarbvqZ opt]# find / -name test*
/opt/test.txt
10.df,du查看磁盘的使用情况

df 显示文件系统磁盘空间的使用情况

[root@iZ2ze5jmothsemrqjarbvqZ opt]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          930448       0    930448   0% /dev
tmpfs             941000       0    941000   0% /dev/shm
tmpfs             941000     688    940312   1% /run
tmpfs             941000       0    941000   0% /sys/fs/cgroup
/dev/vda1       41152812 9009044  30240060  23% /
tmpfs             188204       0    188204   0% /run/user/1003
tmpfs             188204       0    188204   0% /run/user/1002
tmpfs             188204       0    188204   0% /run/user/0

df -h 以人类可读的方式显示Kb,Mb,GB等

[root@iZ2ze5jmothsemrqjarbvqZ opt]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M     0  919M   0% /dev/shm
tmpfs           919M  688K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G  8.6G   29G  23% /
tmpfs           184M     0  184M   0% /run/user/1003
tmpfs           184M     0  184M   0% /run/user/1002
tmpfs           184M     0  184M   0% /run/user/0

du 显示指定的目录及其子目录已使用的磁盘空间的总和

du -s * 显示指定目录的结构,*当前目录下显示所有

[root@iZ2ze5jmothsemrqjarbvqZ opt]# du -s *
12	containerd
4	Demo.class
139732	jdk-8u261-linux-x64.tar.gz
76160	nacos-server-1.4.2.tar.gz
15492	rabbitmq-server-3.8.16-1.el7.noarch.rpm
139048	rh
116	TestProject.jar
84	test.txt

du -h 以人类可读的方式显示

[root@iZ2ze5jmothsemrqjarbvqZ opt]# du -h
4.0K	./containerd/bin
4.0K	./containerd/lib
12K	./containerd
4.0K	./rh/devtoolset-7/root/etc/sysconfig
4.0K	./rh/devtoolset-7/root/etc/pki
11.top命令

top 是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top

uptime系统性能命令的精简版

12.关机重启

shutdown -h 关机不重启 -r先关机后重启
reboot 重启

13.生产环境服务器变慢,诊断思路和性能评估谈谈?(重要)

整机:top —>uptime系统性能命令的精简版

CPU:
(1)显示CPU状态

vmstat -n 采样间隔的秒数  采样次数 
[root@iZ2ze5jmothsemrqjarbvqZ opt]# vmstat -n 2 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0  94852 133212 522176    0    0     5    18    1    7  6  2 92  0  0
 0  0      0  94480 133212 522160    0    0     0     2  589 1134 10  1 89  0  0
 0  0      0  94460 133212 522160    0    0     0     2  664 1221 11  2 88  0  0

(2)查看所有CPU的核信息

mpstat -P ALL 2


(3)每个进程使用cpu的用量分解信息

 pidstat -u 采样间隔秒数 -p 进程编号 


内存:
查看内存使用情况

free -m
[root@iZ2ze5jmothsemrqjarbvqZ opt]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1837        1106          87           0         644         547
Swap:          1024           0        1024


查看单个进程的内存使用情况

pidstat -p 进程号 -r 采样间隔秒数


磁盘

df -h 以人类可读的方式显示Kb,Mb,GB等
[root@iZ2ze5jmothsemrqjarbvqZ opt]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M     0  919M   0% /dev/shm
tmpfs           919M  688K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G  8.6G   29G  23% /
tmpfs           184M     0  184M   0% /run/user/1003
tmpfs           184M     0  184M   0% /run/user/1002
tmpfs           184M     0  184M   0% /run/user/0

磁盘IO:

iostat -xdk 采样间隔秒数 采样次数   
主要看最后一列%util,表示一秒中有百分几的时间用于I/O操作。
接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘。
[root@iZ2ze5jmothsemrqjarbvqZ opt]# iostat -xdk 2 3
Linux 3.10.0-1160.24.1.el7.x86_64 (iZ2ze5jmothsemrqjarbvqZ) 	10/07/2021 	_x86_64_	(1 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.01     2.15    0.15    1.94     4.65    18.20    21.93     0.01    2.52    6.59    2.21   1.01   0.21

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.51    0.51     4.04     2.02    12.00     0.00    2.50    5.00    0.00   3.50   0.35

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    1.01     0.00     8.04    16.00     0.00    1.00    0.00    1.00   2.00   0.20

查看单个进程的磁盘IO

pidstat -d 采样间隔秒数 -p 进程号
[root@iZ2ze5jmothsemrqjarbvqZ opt]# pidstat -d 1 -p 9591
Linux 3.10.0-1160.24.1.el7.x86_64 (iZ2ze5jmothsemrqjarbvqZ) 	10/07/2021 	_x86_64_	(1 CPU)
05:08:00 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:08:01 PM     0      9591      0.00      0.00      0.00  java
05:08:02 PM     0      9591      0.00      0.00      0.00  java
05:08:03 PM     0      9591      0.00      0.00      0.00  java
05:08:04 PM     0      9591      0.00      0.00      0.00  java

网络IO:ifstat 1 发现网络都是0 可以排除网络 默认本地没有 需要下载ifstat

14.假如生产环境出现CPU占用过高,请谈谈你的分析思路和定位

1.先用top命令找到CPU占比最高的

2.ps -ef或者jps进一步定位,得知是一个怎么样的一个后台程序

或者使用ps -ef|grep pid|grep -v grep

3.定位到具体的线程或者代码

ps -mp 进程号 -o THREAD,tid,time
-m 显示所有线程
-p pid进程使用CPU的时间
-o 该参数后是用户自定义格式


4.将需要的线程ID转换为16进制格式(英文小写格式) 也可以使用计算器或者java中的

Integer.toHexString()方法等等
printf "%xn" 有问题的线程ID


5.jstack 进程ID|grep tid(16进制线程ID小写英文) -A60(打印60行)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300381.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号