Linux 命令常见面试题总结。

其它面试知识点突击整理:

序号 文章
1 Java基础面试突击
2 JVM面试突击
3 设计模式面试突击
4 并发编程面试突击
5 消息队列Kafka面试突击
6 Redis面试突击
7 计算机网络面试突击
8 Spring面试突击
9 Dubbo面试突击
10 MyBatis面试突击
11 操作系统面试突击
12 MySQL面试突击
13 Linux命令面试突击

文章目录

  • 1. 说一下常用的Linux命令?
  • 2. 如何查看所有java进程
  • 3. 如何杀掉某个服务的进程
  • 4. 启动/停止服务
  • 5. 如何查看测试项目的日志
  • 6. 如何查看某个端口是否被占用
  • 7. 查看当前所有已经使用的端口情况
  • 8. 如何查找一个文件大小超过5M的文件
  • 9. 如果知道一个文件名称,怎么查这个文件在linux下的哪个目录
  • 10. find查找文件
  • 11. vim(vi)编辑器
  • 12. /etc/hosts⽂件什么作⽤?
  • 13. 硬链接和软连接的区别?
  • 14. linux连接超时,处理方案
  • 15. 用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
  • 16. Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
  • 17. 哪个命令专门用来查看后台任务?
  • 18. 使用什么命令查看磁盘使用空间? 空闲空间呢?
  • 19. du 和 df 的定义,以及区别?
  • 20. Java服务端问题排查(OOM,CPU⾼,Load⾼,类冲突)?

1. 说一下常用的Linux命令?

序号 命令 命令解释
1 top 查看内存
2 df -h 查看磁盘存储情况
3 iotop 查看磁盘IO读写
4 iotop -0 直接查看比较高的磁盘读写程序
5 nestat -tunlp | grep 端口号 查看端口占用情况
6 uptime 查看报告系统运行时常及平均负载
7 ps aux 查看进程
8 ls【参数 -a -l】 列出文件列表
9 mkdir rmdir 创建目录和移除目录
10 tar -xvf (-zcvf) tail打包 (打包并压缩)
11 grep 查找字符串
12 pwd 显示当前所在目录
13 vim vi 编辑器
14 touch 创建空文件
15 ifconfig 查看 ip 地址及接口信息
16 netstat 查看网络是否连通

2. 如何查看所有java进程

grep是搜索关键字>ps -ef | grep java-aux 显示所有状态>ps -aux | grep java

3. 如何杀掉某个服务的进程

kill 命令用于终止进程-9 强迫进程立即停止>kill -9 [PID]这里pid需要用 ps -ef | grep 查询pid

4. 启动/停止服务

以启动Tomcat为例,先cd到启动的.sh文件目录> cd /java/tomcat/bin> ./startup.sh停止Tomcat服务命令>./shutdown.sh

5. 如何查看测试项目的日志

一般测试的项目里面,有个logs的目录文件,会存放日志文件,有个xxx.out的文件,可以用tail -f 动态实时查看后端日志先cd 到logs目录(里面有xx.out文件)>tail -f xx.out这时屏幕上会动态实时显示当前的日志,ctr+c停止查看最近1000行日志>tail -1000 xx.out

6. 如何查看某个端口是否被占用

>netstat -anp | grep 端口号


图中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。

查看82端口的使用情况,如图

>netstat -anp |grep 82


可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了。

7. 查看当前所有已经使用的端口情况

netstat -nultp(此处不用加端口号)

8. 如何查找一个文件大小超过5M的文件

>find . -type f -size +100M

9. 如果知道一个文件名称,怎么查这个文件在linux下的哪个目录

如:要查找tnsnames.ora文件

>find / -name tnsnames.ora查到:/opt/app/oracle/product/10.2/network/admin/tnsnames.ora/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora

还可以用locate 来查找

>locate tnsnames.ora结果是:/opt/app/oracle/product/10.2/hs/admin/tnsnames.ora.sample

10. find查找文件

find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找find /etc -name httpd.conf  #在/etc目录下文件httpd.conffind /etc -name ‘srm’  #使用通配符(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件find . -name ‘srm’   #表示当前目录下查找文件名开头是字符串‘srm’的文件按照文件特征查找     find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)find / -atime -2   # 查找在系统中最后48小时访问的文件find / -empty   # 查找在系统中为空的文件或者文件夹find / -group cat   # 查找在系统中属于 group为cat的文件find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)find / -mtime -1   #查找在系统中最后24小时里修改过的文件find / -user fred   #查找在系统中属于fred这个用户的文件find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)find / -size -1000k   #查找出小于1000KB的文件

11. vim(vi)编辑器

有命令模式、输入模式、末行模式三种模式。

  • 命令模式:查找内容(/abc、跳转到指定行(20gg)、跳转到尾行(G)、跳转到首行(gg)、删除行(dd)、插入行(o)、复制粘贴(yy,p)
  • 输入模式:编辑文件内容
  • 末行模式:保存退出(wq)、强制退出(q!)、显示文件行号(set nu)

在命令模式下,输入a或i即可切换到输入模式,输入冒号(:)即可切换到末行模式;在输入模式和末行模式下,按esc键切换到命令模式

12. /etc/hosts⽂件什么作⽤?

在当前主机给ip设置别名,通过该别名可以访问到该ip地址,通过别名、ip访问的效果是⼀样的。

13. 硬链接和软连接的区别?

硬链接:

  1. ⽂件有相同的 inode 及 data block;
  2. 只能对已存在的⽂件进⾏创建;
  3. 不能交叉⽂件系统进⾏硬链接的创建;
  4. 不能对⽬录进⾏创建,只可对⽂件创建;
  5. 删除⼀个硬链接⽂件并不影响其他有相同 inode 号的⽂件。

软链接:

  1. 软链接有⾃⼰的⽂件属性及权限等;
  2. 可对不存在的⽂件或⽬录创建软链接;
  3. 软链接可交叉⽂件系统;
  4. 软链接可对⽂件或⽬录创建;
  5. 创建软链接时,链接计数 i_nlink 不会增加;
  6. 删除软链接并不影响被指向的⽂件,但若被指向的原⽂件被删除,则相关软连接被称为死链接(即
    danglinglink,若被指向路径⽂件被重新创建,死链接可恢复为正常的软链接)。

14. linux连接超时,处理方案

  1. 测试网络是否通

    ping 远程IP
    
  2. 如果能ping通则表示与服务器网络连接是正常,接下来测试端口

    telnet 远程ip 端口
    
  3. 如果telnet不上,要考虑服务器是否有防火墙拦截

    CentOS7查看防火墙是否运行
    firewall-cmd --state
    CentOS6查看防火墙是否运行
    /sbin/service iptables status
    
  4. 如果防火墙被拦截,需要放行端口。如果防火墙没有拦截,则要考虑服务内部是否配置限定IP访问。

    MySQL、MongoDB、Redis都有bind选项,用来限定客户端IP

  5. 再检查服务内部是否有其它权限设置,例如MySQL有远程访问配置,Redis有protected-mode改为no

15. 用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)

wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数

16. Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

  1. 不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
  2. 暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
  3. 就绪状态:在 run_queue 队列里的状态
  4. 运行状态:在 run_queue 队列里的状态
  5. 可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
  6. zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
  7. 退出状态
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程

17. 哪个命令专门用来查看后台任务?

job -l

把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?

把后台任务调到前台执行 fg把停下的后台任务在后台执行起来 bg

18. 使用什么命令查看磁盘使用空间? 空闲空间呢?

df -hl
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot

19. du 和 df 的定义,以及区别?

  • du 显示目录或文件的大小
  • df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。 (文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。)
  • du命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。
  • df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况

20. Java服务端问题排查(OOM,CPU⾼,Load⾼,类冲突)?

(1)业务⽇志相关:

1. less或者more
2. grep
3. tail -f filename
注意:切忌vim直接打开⼤⽇志⽂件,因为会直接加载到内存的

(2)数据库相关:

1. 登录线上库,show processlist查看数据库连接情况

(3) jvm相关:

1. jps 显示java进程
2. jinfo 实时查看和调整jvm参数
3. jstat 监控jvm各种运⾏状态信息;
4. jstack(Stack Trace for Java)命令⽤于⽣成JVM进程当前时刻的线程的调⽤堆栈,可以⽤来定位线程间死锁、锁等待、等待外部资源等
5. jmap(Memory Map for Java) 命令⽤于⽣成堆转储快照dump⽂件,除了这种⽅式还可以通过-XX:HeapDumpOnOutOfMemoryError参数,可以在虚拟机发⽣OOM的时候⾃动⽣成堆的dump⽂件,或者kill -3命令发出进程退出信号"吓唬"⼀下虚拟机,也能拿到dump⽂件。

(4)oom问题:

1. 配置了-XX:+HeapDumpOnOutOfMemoryError, 在发⽣OOM的时候会在-XX:HeapDumpPath⽣成堆的dump⽂件,结合MAT,可以对dump⽂件进⾏分析,查找出发⽣OOM的原因。
2. 另外⼿动dump堆快照,可以使⽤命令jmap -dump:format=b,file=file_name pid 或者kill -3 pid

(5)死锁:

1. jps -v
2. jstack -l pid

(6) 线程block、线程数暴涨:

1. jstack -l pid |wc -l
2. jstack -l pid |grep “BLOCKED”|wc -l
3. jstack -l pid |grep “Waiting on condition”|wc -l
线程block问题⼀般是等待io、等待⽹络、等待监视器锁等造成,可能会导致请求超时、造成造成线程数暴涨导致系统502等。

(7) 服务器问题:

1)CPU

top

2)内存

free -m -c10 -s1:
a. -m:以MB为单位显示,其他的有-k -g -b
b. -s: 间隔多少秒持续观察内存使⽤状况
c. -c:观察多少次

vmstat 1 10:1表示每隔1s输出⼀次,10 表示输出10次
a. r: 运⾏队列中进程数量,这个值也可以判断是否需要增加CPU。(⻓期⼤于1)
b. b: 等待IO的进程数量。

iostat -m 1 10:
-m:某些使⽤block为单位的列强制使⽤MB为单位
1 10:数据显示每隔1秒刷新⼀次,共显示10次


3)网络

netstat -antp:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服服务状态
-p 显示建⽴相关链接的程序名

(8)排查工具

Java常⽤问题排查⼯具及⽤法(top,iostat,vmstat,sar,tcpdump,jvisualvm,jmap,jconsole)

具体参考:Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm

参考

Java面试常问linux命令

Java linux面试题及答案

Linux命令常见面试题

Java面试题 -Linux命令

Linux命令面试突击相关推荐

  1. linux 的vi命令中将当前文件另存为新文件a.log,【转】20条Linux命令面试问答

    问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...

  2. 20条Linux命令面试问答

    问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...

  3. Linux命令面试常考的简单汇总

    本文转自:https://www.cnblogs.com/yangyquin/p/4921616.html 1.显示日期与时间的命令:date 2.显示日历的命令:cal 3.简单好用的计算器:bc ...

  4. Linux命令面试宝典以及应用场景分析

    1.切换用户 命令:su - 用户名,回车输入密码. 2.查看文件系统 命令:df -a (用于查看文件系统的使用情况) 命令:du -shx * (用于列出所有文件夹的大小) 命令:df -h 显示 ...

  5. MyBatis面试突击

    MyBatis是一个优秀的基于Java持久层框架,内部它是封装了JDBC,让开发者不用过多的关心什么创建连接.加载驱动啊等等.如今大企业越来越多用MyBatis,为什么它越来越被广泛应用,以前流行的S ...

  6. linux不保存退出命令_面试提问说出16个linux命令,能凑齐不!高频22个Linux命令在这里...

    现在几乎所有的互联网的应用都部署在Linux的服务器上面了,Linux生态丰富.环境稳定,最重要的是,相对于Windows,Linux是免费的,要想,大型互联网公司都有几百万台服务器,要是用Windo ...

  7. 面试必问的 Linux 命令帮你整理好啦 (下)

    如果我说 Linux 操作系统和命令是面试必问的,你相信么?不信,我们来看看企业招聘需求: 随便在某招聘网站上搜了一下测试工程师的技能要求,基本都有 Linux 操作系统和命令的要求.说明,这个技能确 ...

  8. 【179期】这些最常用的Linux命令都不会,你怎么敢去面试?

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 6 分钟. 来自:cnblogs.com/chenliangchaoshuai/p/11827383.html linux命令 ...

  9. linux进程命令面试,面试常问的 25+ 个 Linux 命令

    面试常问的 25+ 个 Linux 命令 作者: HollisChuang 链接: http://www.hollischuang.com/archives/800 作为一个 Java 开发人员, 有 ...

  10. 面试官都在问 | Linux命令mpstat详解

    面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...

最新文章

  1. Struts2+Spring详解
  2. php公交查询系统源代码,基于Smarty公交查询系统的设计与实现(PHP,MySQL)
  3. Spring核心容器简介
  4. 数据备份与数据恢复产品——程序猿的必备品
  5. HDD + HDD(SSD) 多硬盘系统启动问题
  6. 基于SSM的校园垃圾分类系统
  7. Flash竖向大焦点图代码_网页代码站(www.webdm.cn)
  8. windows虚拟显示器开发(三)USB显示器
  9. 一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#]...
  10. 图形可视化2:matlab画散点图加拟合趋势线
  11. HP Gen8 MicroServer win7 系统安装手册(usb)
  12. vue项目如何真机测试
  13. 茜在人名可以读xi吗_茜读xi还是qian?
  14. 前端之HTML常用标签
  15. 在Windows10下给PyCharm安装需要的包
  16. postgresql 数据库巡检
  17. 中国网络安全企业50强(来源自安全牛公司)
  18. python - sklearn 计算精准率(Precision)
  19. Word中如何从中间的某一页开始编页码
  20. 网站变灰,寄托哀思,让我们共同行动!( 图片、文字、Flash变灰)

热门文章

  1. Java通过SSH实现文件上传下载功能
  2. 使用vscode作为golang开发环境,无法跳转代码定义
  3. 计算机桌面成英文怎样变成中文版,电脑系统菜单全变成英文怎么办
  4. 《算法图解》---笔记
  5. 服务器总线协议_第一章----I2C总线协议入门
  6. linux查看cpu核数命令,Linux系統下如何查看CPU型號、核心數量、頻率和溫度?
  7. ML-Agents案例之看图配对
  8. IDEA和webstorm破解方式
  9. Ip地址的配置与解释
  10. qxdm无法安装问题闪一下_Qualcomm QXDM