【八股文】Linux篇
目录
- 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
- 怎么查看当前进程
- ps是什么(快照状态,静态的)
- 基本参数
- 其他参数
- ps显示的内容(默认显示)
- watch是什么(实时监控,动态的)
- top是什么(实时监控,动态的)
- 查看文件有哪些命令
- 列举几个常用的Linux命令(1个硬件+2个查看+2个操作)
- 1. 查看硬件相关
- 1. df(disk free查看磁盘大小)
- 2. 查看系统相关
- 1. ps、watch、top、htop(查看动态、静态进程,上文有讲)
- 2. netstat(net:网络,主要查看TCP连接情况)
- 1. 例如
- 3. vmstat(vm:虚拟机,主要查看CPU、内存、进程)
- 3. 查看文件相关
- 1. ls(查看文件夹下的文件)
- 默认显示的数据
- 硬件连接数是什么
- 2. cat、tac、more、less、head、tail、nl、tailf(查看文件的内容)
- 4. 文件相关操作
- 1. tar(文件压缩、解压)
- 常用参数
- 常用命令组合(后续再说)
- 2. spilt(分割文件)
- 3. rm -rf(文件删除)
- 4. mv(文件移动)
- 5. 程序相关操作
- 1. nohup(后台运行程序)(no hang悬挂 up)
- 6. 其他(暂不分类)
- 1. lsof(有个印象就行)
- 2. nc(瑞士军刀?是啥?)
- 平时是怎么查看日志的
- JVM相关的命令
- 1. jstat命令
- 1. jstat -gc pid
- 2. jstat -gccapacity pid
- 3. jstat -gcutil pid
- 4. jstat -gcnew pid
- 5. jstat -gcnewcapacity pid
- 6. jstat -gcold pid
- 7. stat -gcoldcapacity pid
- 8. jstat -gcpermcapacity pid
- 2. jstack命令
- 3. jmap命令
- 服务器CPU100%的排查过程
- 1. jstack -l 线程PID命令 的作用
- 如何在服务器上调用接口(curl命令)
绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
- 绝对路径: 如/etc/init.d
- 当前目录和上层目录: ./ …/
- 主目录: ~/
- 切换目录: cd
怎么查看当前进程
参考原文并整理了一下:Linux进程之如何查看进程详情?
ps是什么(快照状态,静态的)
ps是显示瞬间进程的状态,并不动态连续
基本参数
- -A :显示所有进程
- -e:也是显示所有进程
- -a :显示现行终端机下的所有进程,包括其他用户的进程;(最常用)
- -u :过滤用户
- -x :通常与 a 这个参数一起使用,可列出较完整信息。
- -C:过滤进程名
- -l:显示完整的PID
- -f:显示更全的信息
- -U:也是过滤真实用户(这里的用户是指实际创建改进程的用户,和-u区别开来)
- |:是管道!!,后面一般跟着一些筛选,如grep、head等等(重要,我悟出来的!)
- | grep: 过滤指定字符串用的
其他参数
- -aux:进程结果根据CPU和内存筛选
- | -less:减少显示的数据
- -sort -pcpu:CPU使用率来降序排序
- -sort -pmen:内存使用率来降序排序(men是内存:Memory的前缀)
- | head -n 10:通过管道显示前10个结果(管道指的是这个竖杠**|??head作用是限制条数;-n**)
- -L 1001(PID值):显示特定进程(PID:1001)的线程信息
- -axjf或把ps替代为pstree:以树形结构显示进程
- -eo pid,user,args(-e:显示所有进程信息;-o:参数控制输出;pid,user,args:显示PID,运行应用的用户和该应用):查看有谁登入了你的服务器(这个有点长,比较难记,知道有这功能就行)
小tips:可以用man ps来查看ps文档(命令这么多,不常用的话很容易记不住)
ps显示的内容(默认显示)
- PID: 运行着的命令(CMD)的进程编号
- TTY: 命令所运行的位置(终端)
- TIME: 运行着的该命令所占用的CPU处理时间
- CMD: 该进程所运行的命令
白话文:1个ID + 3个命令相关(命令执行时候的位置、命令执行耗时、什么命令)
watch是什么(实时监控,动态的)
watch命令操作其实就是在ps命令的基础上,把ps命令包起来,使其变成动态的
- watch -n 1 ‘ps -a’:-n:刷新频率,这里是每1s刷新一次;ps -a:这里可以随便写,我只写了最简单的
和top、htop的比较:好处是可以自定义显示的内容
top是什么(实时监控,动态的)
top可以对进程进行实时监控
查看文件有哪些命令
- cat:从第一行开始,显示所有内容(如果是日志的话显示不全的,要加过滤,cat后面加**-n可以显示行号**)
- tac:从最后一行开始,显示所有内容(和cat反一下,卧槽,名字也刚好反一下!)
- more(常用):根据窗口大小,一页一页的显示文件内容(要记得用)
- 下一行:按回车键
- 下一页:按空格键或Ctrl + F(F代表Forward向前的意思)
- 上一页:Ctrl + B(B代表Back向后的意思)
- 按Q键:退出查看页面
- 按=键:输出当前行的行号(配合head、tail使用,可以读取对应行的上下文)
- 按:F键 输出文件名和当前行的行号(这里不太清楚是一个F还是冒号 + F,等待实际验证一下)
- 按V键:调用vi编辑器
- 按!键:命令调用Shell,并执行命令
- less(常用):和more类似,但其优点可以往前翻页,还可以搜索字符
- 上一页:按PgUp键
- 下一页:按PgDn键
- less + 要搜索的字符:可以实现数据过滤
- head:只显示文件的前几行(语法:head [n number] 文件名,例如head 20 log.txt)
- tail:只显示文件的后几行(和head相反),tail -f 可以查看实时日志(从文件尾部开始读)
- nl:类似于cat -n,显示时输出行号
- tailf:类似于tail -f,也可以查看实时日志,区别是tailf是从文件头开始读的
比较常用的:more、less、tail -f
参考原文:linux查看文件命令有哪些
列举几个常用的Linux命令(1个硬件+2个查看+2个操作)
1. 查看硬件相关
1. df(disk free查看磁盘大小)
查看磁盘大小
2. 查看系统相关
1. ps、watch、top、htop(查看动态、静态进程,上文有讲)
2. netstat(net:网络,主要查看TCP连接情况)
netstat是一个网络信息统计工具。它可以得到网卡接口上全部了解,路由表信息,网卡接口信息等。通常在网络编程中我们用它来显示TCP连接以及状态信息。
1. 例如
找到端口号为8080的进程: netstat -p tcp -ano |findstr :8080
然后删除这个进程:taskkill -PID 35729 -F
35729 是8080端口对应的PID进程号
3. vmstat(vm:虚拟机,主要查看CPU、内存、进程)
vmstat能够实时输出系统的进程信息,内存使用,cpu使用等资源的使用情况
思考:watch + ps 搭配使用是不是也能实现
3. 查看文件相关
1. ls(查看文件夹下的文件)
默认显示的数据
权限、硬件连接数、所属用户、所属用户组、文件大小、文件修改日期、文件名称
硬件连接数是什么
硬链接允许作用之一是允许一个文件拥有多个有效路径名,从而防止误删。但是只能在同一文件系统中的文件之间进行连接,不能对目录进行创建。
好像有点印象,是不是引用数目?其他地方引用到了我这个文件的次数
2. cat、tac、more、less、head、tail、nl、tailf(查看文件的内容)
4. 文件相关操作
1. tar(文件压缩、解压)
常用参数
- -c:创建的tar文件
- -x:解开tar文件
- -t:列出tar文件中包含的文件信息
- -r:附加新的文件到tar文件中
常用命令组合(后续再说)
tar -xvf /home/a.tar :打开tar打包文件
tar -zxvf /home/a.tar.gz :解压以gzip压缩的文件
tar -jxvf /home/a.tar.bz2 :解压以bzip压缩的文件
tar -cvf /home/a.tar /home :打包/home下所有文件
2. spilt(分割文件)
将文件分割为数个。
白话文:日志太多了,数据拆分?
3. rm -rf(文件删除)
4. mv(文件移动)
5. 程序相关操作
1. nohup(后台运行程序)(no hang悬挂 up)
这也是常用后台启动程序的常用方法,如果在交互命令行中运行程序,我们很容易就终止它。在交互环境下,我们的输出一般都会直接输出到当前界面,在后台启动的时候通常会定向到文件,那通常情况是下面这个命令。
nohup command >X.file 2 >&1 &
后台启动程序,指定日志输出的文件(命令看不懂没关系,知道这个东西就好)
6. 其他(暂不分类)
以下命令有个印象就可以了:
1. lsof(有个印象就行)
列出当前系统打开的文件描述符工具。可以得知感兴趣的描述符是被哪些进程使用
2. nc(瑞士军刀?是啥?)
快速构建网络链接。常用来调试客户端程序
参考链接:盘点20个面试中常用的Linux命令
平时是怎么查看日志的
cat、tac、more、less、head、tail、nl、tailf直接甩脸上
JVM相关的命令
原文链接:java死锁怎么用jvm调试_jvm 内存dump、gc查看、线程死锁,jmap、jstack、jstat
1. jstat命令
查看堆栈信息、三代(年轻代、老年代、永久代)的信息以及占有量、GC等
1. jstat -gc pid
可以显示gc的信息,查看gc的次数及时间,包括young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间
2. jstat -gccapacity pid
显示JVM内存中三代(young,old,perm)对象的使用和占用大小
3. jstat -gcutil pid
统计gc信息统计
4. jstat -gcnew pid
年轻代对象的信息
5. jstat -gcnewcapacity pid
年轻代对象的信息及其占用量
6. jstat -gcold pid
old代对象的信息
7. stat -gcoldcapacity pid
old代对象的信息及其占用量
8. jstat -gcpermcapacity pid
perm对象的信息及其占用量
2. jstack命令
查看JVM当前的线程信息,如线程状态、死锁情况等等
3. jmap命令
查看JVM中各种对象的数量,所占空间
值得一提的是这个命令可以到处一份binary heap dump的bin文件,这个文件能够直接用Eclipse Memory Anayliser来分析,并找出潜在的内存泄漏的地方。
白话文:主要查内存泄漏的
服务器CPU100%的排查过程
- 使用top -c命令实时查看CPU占用情况,找到占用CPU最高的线程PID
- 使用jstack -l 线程PID命令
1. jstack -l 线程PID命令 的作用
查看线程状态,使用的垃圾回收算法,死锁检测
如何在服务器上调用接口(curl命令)
格式:
curl "需要调用的url" -H "Content-Type: application/json" -X POST -d 'json请求体的内容'
- -H或**–header**:指定请求头部信息,比如Json格式类型
- -X或**–request**:指定请求类型为GET或者POST
- -d或**–data**:json请求体的内容
【八股文】Linux篇相关推荐
- 【B站视频教程笔记】基于VSCode和CMake实现C/C++开发 | Linux篇(gcc/g++)(安装、配置、使用详细教程)(VSCode教程)(CMake教程)(精!)
基于VSCode和CMake实现C/C++开发 | Linux篇 文章目录 目录结构 文件编辑 vim(编辑器之神,linux里可以畅通无阻,必学,但不是现在!) 安装GCC和GDB g++编译过程 ...
- C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇)
C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇) 名词解释:apxs apxs is a tool for building and installi ...
- Netbackup设备管理之Linux篇,Netbackup设备管理之Linux篇
Netbackup设备管理之Linux篇 在备份软件的使用过程中,关于磁盘.磁带的治理一样会花费储备治理员专门大比例的时刻和精力.因此,关于设备的治理的方便程度,是衡量一个备份软件好坏的重要的标准.N ...
- Linux篇:Shell脚本实现Gitlab双备份
01 前言 最近成功从架构组拿到了Gitlab的管理权限,第一件事就是想着如何备份,以防数据丢失背大锅,于是在网上搜索一番,发现一段非常赞的备份脚本,记录照着操作一下: 参考文章:https://bl ...
- JAVA JNI调用科大讯飞离线语音合成(Linux篇)
JNI调用科大讯飞离线语音合成(Linux篇) 背景:之前已经介绍过JNI调用科大讯飞离线语音合成(Windows篇),今天我们接着聊一聊在Linux系统中如何使用科大讯飞离线语音合成,我们这里以(u ...
- 【SemiDrive源码分析】【X9芯片启动流程】21 - MailBox 核间通信机制介绍(代码分析篇)之 Mailbox for Linux 篇
[SemiDrive源码分析][X9芯片启动流程]21 - MailBox 核间通信机制介绍(代码分析篇)之 Mailbox for Linux 篇 一.Mailbox for Linux 驱动框架分 ...
- 恢复被删除的文件-linux篇
恢复被删除的文件-linux篇 http://blog.chinaunix.net/u2/83058/showart_1404769.html 本文转自IBM中国上的文档 [http://www.ib ...
- linux下使用geant4指南,四步轻松安装Geant4 (Linux篇) | 入门
最近开始为订阅号"Geant4不完全学习指南"写一些文章. 正文开始. 四步轻松安装Geant4 (Linux篇) | 入门 软件版本:Ubuntu16.04,Geant4.10. ...
- 【Linux篇】kali Linux系统一次性安装软件包
[Linux篇]kali Linux系统一次性安装软件包 在Windows应用商店安装的kali linux是一个最小最基本的版本,里面很多工具都需要自己按需安装,不想麻烦的也可一次性安装好-[s ...
- Linux磁盘分区论文3000字,磁盘分区对齐详解与配置 – Linux篇
磁盘分区对齐详解与配置 – Linux篇 介绍 许多系统管理员可能不曾听过磁盘分区对齐之说,甚至一些有经验的存储管理员对分区对齐也不甚了解.磁盘分区不对齐现象是什么,为什么会造成比较严重的性能下降?相 ...
最新文章
- Centos 6.4下 MySQL配置主从服务(集群)
- 基于堆栈的虚拟机实现
- 【Linux基础】kiickstart无人值守安装
- 简易的实现对象内存池
- 避障跟随测距c语言程序,红外避障小车c语言程序.pdf
- mysql doen s exist_Mysql中大小写敏感问题导致的MySql Error 1146 Tabel doen’t exist错误
- 了解一下JAVA中的NIO模块
- Android Studio 4.0 / 4.0.1 无法创建Activity 问题
- MySQL破log_MySQL中的binlog相关命令和恢复技巧
- CentOS 7完全卸载MySQL
- 国科大.模式识别与机器学习.期末复习笔记手稿+复习大纲
- matlab 作图设置线宽,改matlab的绘图大小、字号、线宽
- hive 漫威the_漫威系列的观看顺序
- 企业级网络架构(搭建)学习笔记(网管)
- 节点英雄榜之脑海链:构建区块链化的知识变现经济生态
- Win10强制更新关闭方法
- mtklog结构及分析
- 三元组损失(Triplet loss)
- [BZOJ4763][P3603]雪辉[手写bitset+静态分块]
- 调用函数printchs输出星号图
热门文章
- 虚拟机中Linux配置java-jdk和tomcat
- 关于isl28022电源芯片的校准寄存器的配置问题
- java 百万数据查询_java一次性查询几十万,几百万数据解决办法
- KDD‘20 | 如何建模互联网水军的对抗行为?
- 视频教程-实用数据分析:数据分析师从小白到精通-大数据
- 基于单片机的心率脉搏检测电路设计(#0200)
- mysql5.6配置文件详解(二)
- [翻译]:SQL死锁-阻塞探测
- 精选6个超实用的Word技巧,每一个大有用处!
- 【2021-07-31 更新】【梳理】简明操作系统原理 第十九章 身份认证和访问控制(docx)