【八股文】Linux篇

目录

绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

  • 绝对路径: 如/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(常用):根据窗口大小,一页一页的显示文件内容(要记得用
  1. 下一行按回车键
  2. 下一页按空格键Ctrl + F(F代表Forward向前的意思)
  3. 上一页Ctrl + B(B代表Back向后的意思)
  4. 按Q键:退出查看页面
  5. 按=键:输出当前行的行号(配合head、tail使用,可以读取对应行的上下文)
  6. 按:F键 输出文件名和当前行的行号(这里不太清楚是一个F还是冒号 + F,等待实际验证一下)
  7. 按V键:调用vi编辑器
  8. 按!键:命令调用Shell,并执行命令
  • less(常用):和more类似,但其优点可以往前翻页,还可以搜索字符
  1. 上一页按PgUp键
  2. 下一页按PgDn键
  3. 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%的排查过程

  1. 使用top -c命令实时查看CPU占用情况,找到占用CPU最高的线程PID
  2. 使用jstack -l 线程PID命令

1. jstack -l 线程PID命令 的作用

查看线程状态,使用的垃圾回收算法,死锁检测

如何在服务器上调用接口(curl命令)

格式:

curl "需要调用的url"  -H "Content-Type: application/json" -X POST -d 'json请求体的内容'
  1. -H或**–header**:指定请求头部信息,比如Json格式类型
  2. -X或**–request**:指定请求类型为GET或者POST
  3. -d或**–data**:json请求体的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值