Linux命令面试突击
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. 硬链接和软连接的区别?
硬链接:
- ⽂件有相同的 inode 及 data block;
- 只能对已存在的⽂件进⾏创建;
- 不能交叉⽂件系统进⾏硬链接的创建;
- 不能对⽬录进⾏创建,只可对⽂件创建;
- 删除⼀个硬链接⽂件并不影响其他有相同 inode 号的⽂件。
软链接:
- 软链接有⾃⼰的⽂件属性及权限等;
- 可对不存在的⽂件或⽬录创建软链接;
- 软链接可交叉⽂件系统;
- 软链接可对⽂件或⽬录创建;
- 创建软链接时,链接计数 i_nlink 不会增加;
- 删除软链接并不影响被指向的⽂件,但若被指向的原⽂件被删除,则相关软连接被称为死链接(即
danglinglink,若被指向路径⽂件被重新创建,死链接可恢复为正常的软链接)。
14. linux连接超时,处理方案
测试网络是否通:
ping 远程IP
如果能ping通则表示与服务器网络连接是正常,接下来测试端口:
telnet 远程ip 端口
如果telnet不上,要考虑服务器是否有防火墙拦截:
CentOS7查看防火墙是否运行 firewall-cmd --state CentOS6查看防火墙是否运行 /sbin/service iptables status
如果防火墙被拦截,需要放行端口。如果防火墙没有拦截,则要考虑服务内部是否配置限定IP访问。
MySQL、MongoDB、Redis都有bind选项,用来限定客户端IP
再检查服务内部是否有其它权限设置,例如MySQL有远程访问配置,Redis有protected-mode改为no
15. 用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数
16. Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
不可中断状态
:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。暂停状态/跟踪状态
:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。就绪状态
:在 run_queue 队列里的状态运行状态
:在 run_queue 队列里的状态可中断睡眠状态
:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起zombie 状态(僵尸)
:父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉退出状态
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命令面试突击相关推荐
- linux 的vi命令中将当前文件另存为新文件a.log,【转】20条Linux命令面试问答
问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...
- 20条Linux命令面试问答
问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...
- Linux命令面试常考的简单汇总
本文转自:https://www.cnblogs.com/yangyquin/p/4921616.html 1.显示日期与时间的命令:date 2.显示日历的命令:cal 3.简单好用的计算器:bc ...
- Linux命令面试宝典以及应用场景分析
1.切换用户 命令:su - 用户名,回车输入密码. 2.查看文件系统 命令:df -a (用于查看文件系统的使用情况) 命令:du -shx * (用于列出所有文件夹的大小) 命令:df -h 显示 ...
- MyBatis面试突击
MyBatis是一个优秀的基于Java持久层框架,内部它是封装了JDBC,让开发者不用过多的关心什么创建连接.加载驱动啊等等.如今大企业越来越多用MyBatis,为什么它越来越被广泛应用,以前流行的S ...
- linux不保存退出命令_面试提问说出16个linux命令,能凑齐不!高频22个Linux命令在这里...
现在几乎所有的互联网的应用都部署在Linux的服务器上面了,Linux生态丰富.环境稳定,最重要的是,相对于Windows,Linux是免费的,要想,大型互联网公司都有几百万台服务器,要是用Windo ...
- 面试必问的 Linux 命令帮你整理好啦 (下)
如果我说 Linux 操作系统和命令是面试必问的,你相信么?不信,我们来看看企业招聘需求: 随便在某招聘网站上搜了一下测试工程师的技能要求,基本都有 Linux 操作系统和命令的要求.说明,这个技能确 ...
- 【179期】这些最常用的Linux命令都不会,你怎么敢去面试?
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 6 分钟. 来自:cnblogs.com/chenliangchaoshuai/p/11827383.html linux命令 ...
- linux进程命令面试,面试常问的 25+ 个 Linux 命令
面试常问的 25+ 个 Linux 命令 作者: HollisChuang 链接: http://www.hollischuang.com/archives/800 作为一个 Java 开发人员, 有 ...
- 面试官都在问 | Linux命令mpstat详解
面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...
最新文章
- Struts2+Spring详解
- php公交查询系统源代码,基于Smarty公交查询系统的设计与实现(PHP,MySQL)
- Spring核心容器简介
- 数据备份与数据恢复产品——程序猿的必备品
- HDD + HDD(SSD) 多硬盘系统启动问题
- 基于SSM的校园垃圾分类系统
- Flash竖向大焦点图代码_网页代码站(www.webdm.cn)
- windows虚拟显示器开发(三)USB显示器
- 一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#]...
- 图形可视化2:matlab画散点图加拟合趋势线
- HP Gen8 MicroServer win7 系统安装手册(usb)
- vue项目如何真机测试
- 茜在人名可以读xi吗_茜读xi还是qian?
- 前端之HTML常用标签
- 在Windows10下给PyCharm安装需要的包
- postgresql 数据库巡检
- 中国网络安全企业50强(来源自安全牛公司)
- python - sklearn 计算精准率(Precision)
- Word中如何从中间的某一页开始编页码
- 网站变灰,寄托哀思,让我们共同行动!( 图片、文字、Flash变灰)