Linux Command

Linux Command

一、命令

1.grep

grep(Global Regular Expression Print)是全局正则表达式搜索,它在一个或多个文件中搜索字符串模板。如果

模板包括空格,则需要用""包裹,模板后的所有字符串被看作文件名,不影响原文件内容。

常与ps、cat命令一起使用,grep的输出为其他命令的输入

grep [options]
-A n 显示匹配字符后n行
-B n 显示匹配字符前n行
-C n 显示匹配字符前后n行
-c 计算符合样式的列数
-i 忽略大小写
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹
-v 反向过滤文本行的搜索

模板规则表达式:
^ 匹配所有以x开头的行 如:'^grep'匹配所有以grep开头的行
$ 匹配所有以x结束的行 如:'grep$'匹配所有以grep结尾的行
. 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p
* 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行
.* 匹配任意字符
[] 匹配一个指定范围内的字符 如'[Gg]rep'匹配Grep和grep

在这里插入图片描述

在这里插入图片描述

2.free

显示内存的使用情况

free [options]
-b 以Byte为单位显示内存使用情况
-k 以KB为单位显示内存使用情况
-m 以MB为单位显示内存使用情况]
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值(常用)
	单位有: 
	    B = bytes
    	K = kilos
      	M = megas
      	G = gigas
      	T = teras 
-s<间隔秒数> 持续观察内存使用状况
-t 显示内存总和列
-V 显示版本信息

在这里插入图片描述

在这里插入图片描述

3.top

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

top [options]
-d 指定信息刷新的时间间隔
-p 指定监控进程的ID
-i 不显示任何闲置或者僵死进程
-c 不显示命令

在这里插入图片描述

在这里插入图片描述

前五行是当前系统情况整体的统计信息区

1.第一行为任务队列信息和uptime命令一样

在这里插入图片描述

当前系统时间 | 系统以运行的时间 | 当前系统登录用户个数 | 1分钟、5分钟、15分钟负载情况

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以

逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

2.第二行为任务(进程)信息,一共110个进程,3个在运行,106个再休眠,1个停止,0个处于僵尸状态

3.第三行为cpu状态信息

​ 2.6% us——用户空间占用CPU的百分比

​ 2.6% sy——内核空间占用CPU的百分比

​ 0.0% ni — 改变过优先级的进程占用CPU的百分比

​ 94.7% id — 空闲CPU百分比

​ 0.0% wa — IO等待占用CPU的百分比

4.第四行为内存状态,包括物理内存总量、使用的内存总量、空闲内存总量、缓存的总量

5.第五行为swap交换分区信息,包括交换区总量、空闲交换区总量、使用交换区总量、缓冲的交换区总量

4.ps
ps -ef | grep 进程名 //查看进程pid

在这里插入图片描述

第二列为进程pid

5.vmstat

显示进程和CPU的统计信息

在这里插入图片描述

procs

  • r :运行和等待CPU时间片的进程数

  • b :等待资源的进程数

cpu

  • us:用户进程消耗CPU的时间百分比

  • sy:内核进程消耗CPU的时间百分比

  • id:处于空闲的CPU时间百分比

  • wa:系统等待IO的CPU时间百分比

  • st:来自一个虚拟机偷取CPU的时间百分比

(如果us + sy大于80%说明CPU可能不足)

6.mpstat

查看多核CPU每个计算核心的使用情况

mpstat [-P {|ALL}] [internal [count]]
-P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
internal 相邻的两次采样的间隔时间
count 采样的次数

在这里插入图片描述

7.pidstat

查看指定进程的cpu、内存、线程、设备IO等系统资源的占用情况

pidstat [options] [internal [count]]
-u 默认的参数,显示各个进程的CPU使用统计
-r 显示各个进程的内存使用统计
-d 显示各个进程的IO使用情况
-p 指定进程号

在这里插入图片描述

8.iostat

查看系统设备的IO负载情况

iostat [options] [internal [count]]
-c 显示CPU使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 M 为单位显示
-x 显示详细信息

在这里插入图片描述

9.ifstat

查看设备网络IO负载情况

在这里插入图片描述

10.netstat

显示网络状态

netstat [options]
-r或--route 显示Routing Table
-t或--tcp 显示TCP传输协议的连线状况
-u或--udp 显示UDP传输协议的连线状况

netstat -a //显示详细的网络状况
netstat -at //显示TCP端口号的使用情况
netstat -apu //显示UDP端口号的使用情况

netstat -nap | grep 进程pid //通过进程pid查看占用端口
netstat -nap | grep 端口号 //通过端口查看进程pid

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11.df

查看文件系统的磁盘空间占用情况

df -h //以容易理解的格式输出文件系统大小

在这里插入图片描述

12.ping

检测主机网络

ping [options] destination
-c <完成次数> 设置完成要求回应的次数
-i<间隔秒数> 指定收发信息的间隔时间
-R 记录路由过程

在这里插入图片描述

13.tar

用来建立和还原备份文件 / 文件夹,不会删除原始的文件

tar [options] file
-A 新增压缩文件到已存在的压缩-c建立新的压缩文件
-c或--create 建立新的备份文件
-f<备份文件>或--file=<备份文件> 指定备份文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性

tar -cf file.tar file //压缩为file.tar
tar -jcf file.tar.bz2 file //压缩打包文件为file.tar.bz2
tar -czf file.tar.gz file //压缩文件为file.tar. gz
tar -tvf test.tar.gz //列出压缩文件内容

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

14.gzip

压缩文件,添加后缀.gz,并删除原始的文件,不能压缩文件夹

gzip [options] file
-d或--decompress或----uncompress  解开压缩文件
-v或--verbose  显示指令执行过程

gzip -dv file.gz //解压文件,并列出详细信息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

15.bzip2

压缩文件,添加.bz2的压缩文件,并删除原始的文件,不能压缩文件夹

bzip2 [options] file
-d 执行解压缩
-f 在压缩或解压缩时,若输出文件与现有文件名相同,则覆盖现有文件
-k 在压缩或解压缩后保留源文件 
-v 压缩或解压缩文件时,显示详细的信息

bzip2 file //压缩不保留源文件
bzip2 -k file //压缩保留源文件
bzip2 -d file //解压缩
bunzip2 file //解压缩 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

16.zip / unzip

压缩文件 / 文件夹后缀为zip,并不会删除原始的文件

zip [options] file.zip file
-m 压缩文件后删除源文件
-P<密码> 使用zip的密码选项
-o 将压缩文件的更改时间设成和该文件相同
-d 从压缩文件内删除指定的文件
-v 显示指令执行过程
-q 不显示指令执行过程
-r 将指定目录下的所有文件和子目录一并压缩
-x<范本样式> 压缩时排除符合条件的文件

zip -P 密码 file.zip file //压缩文件或文件夹
zip -dv test.zip test/test.txt //删除zip压缩包中的文件

unzip [options] file.zip
-n 解压缩时不要覆盖原有的文件
-P<密码> 使用zip的密码选项
-d<目录> 指定文件解压缩后所要存储的目录

unzip file.zip //解压文件
unzip -n text.zip -d /tmp //指定解压到哪个地方并且不覆盖原有文件

在这里插入图片描述在这里插入图片描述

17.sed

利用脚本来处理文本文件,自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等

sed [options] {script} file


脚本规则:
a 新增
c 取代
d 删除
i 插入 
p 打印
s 替换 配合正则表达式

在第一行添加一行字符串"1":

在这里插入图片描述

删除第一行:

在这里插入图片描述

打印第三行:
在这里插入图片描述

在第二行插入一行字符串"asd":

在这里插入图片描述

用“?”取代一二行:
在这里插入图片描述

以上操作不会修改文件内容,需要添加参数-i

在这里插入图片描述

sed -i "s/查找字段/替换字段/g" 文件名

在这里插入图片描述

18.vi

vi是所有Unix及Linux系统下标准的编辑器

基本上分为三种状态,分别是:

  • 命令模式(command mode)

    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式和底行模式

  • 插入模式(Insert mode)

    输入文字,按ESC键可回到命令行模式

  • 底行模式(last line mode)

    将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等

vi file //编辑文件,进入命令模式

命令模式快捷键:

  • i:进入插入模式,从光标当前位置开始输入
  • a:进入插入模式,从目前光标所在位置的下一个位置开始输入
  • o:进入插入模式,向下插入新的一行,从行首开始输入
  • ctrl + b:屏幕往后移动一页
  • ctrl + f:屏幕往前移动一页
  • ctrl + u:屏幕往后移动半页
  • ctrl + d:屏幕往前移动半页
  • G:移动到文章的最后
  • $:移动到光标所在行的行尾
  • ^:移动到光标所在行的行首
  • w:光标跳到下个字的开头
  • b:光标回到上个字的开头
  • x:每按一次,删除光标所在位置的后面一个字符
  • #x:删除光标所在位置的后面#个字符
  • X:大写的X,每按一次,删除光标所在位置的前面一个字符
  • #X:#X表示删除光标所在位置的前面#个字符
  • dd:删除光标所在行
  • #dd:从光标所在行开始删除#行
  • yw:将光标所在之处到字尾的字符复制到缓冲区中
  • #yw:复制#个字到缓冲区
  • yy:复制光标所在行到缓冲区
  • #yy:表示拷贝从光标所在的该行往下数#行文字
  • p:将缓冲区内的字符贴到光标所在位置
  • r:替换光标所在处的字符
  • R:替换光标所到之处的字符,直到按下ESC键为止。
  • u:撤回操作
  • ctrl + g:列出光标所在行的行号
  • #G:表示移动光标至第#行行首

底行命令快捷键:

esc键确定处于命令模式后,再按:键进入底行命令模式

  • set nu:在文件中的每一行前面列出行号
  • #:在冒号后输入一个数字,再按回车键就会跳到该行了
  • / 关键字:先按/键,再输入寻找的字符,可以按n往后寻找到您要的关键字为止
  • ? 关键字:先按?键,再输入寻找的字符,可以一直按n往前寻找到您要的关键字为止
  • w:保存文件
  • q:退出vi,可以在q后跟一个!强制离开
  • qw:保存并退出
19.find

用来在指定目录下查找文件

find path [options] []
-name filename 根据文件名查询,iname会忽略大小写
-user user 查找所属用户为user的所有文件
-type  根据类型查找
    d: 目录
    c: 字型装置文件
    b: 区块装置文件
    p: 管道文件
    f: 文件
    l: 符号连结
    s: socket

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、生产问题

1.CPU占用过高

运行死循环java程序
在这里插入图片描述

在这里插入图片描述

先使用top命令查看CPU占比最高的进程

top

在这里插入图片描述

定位到是哪一个程序

jps -l
ps -ef|grep java|grep -v grep //grep -v 不显示自身

在这里插入图片描述

定位到具体的线程或代码

ps -mp pid -o THREAD,tid,time //显示pid进程下的所有线程信息

在这里插入图片描述

将具体的线程id转换为16进制,定位到具体代码行

printf "%x\n" 线程id 
jstack pid |grep 线程id(16进制) -A60 //显示进程对应线程的前60行栈信息  

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值