目录
绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
- 绝对路径: 如/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请求体的内容

3138

被折叠的 条评论
为什么被折叠?



