功能实现题

2023-11-19

目录

32. 如何利用linux的指令来查询一个文件的行数?

33. linux下统计一个文件中每个id的出现次数?

34. Linux 在多个文件中查找字符串?

35. 如何查看占用cpu最多进程?

36. 如何找到 Java 进程中哪个线程占用了大量 CPU 处理时间?

37. 如何找到占用内存最多的进程?

38. 磁盘不够了,如何快速找出磁盘占用最大的文件?

39. 找到大于某个阈值大小的文件?

40. 查找某个名称或者类型的文件?

41. 查看某个文件的大小?

42. 查看某log文件某个字符串的前后5行?

43. 找到上述行中的最后一列?

44. 如果最后一列是10 20 10 30,那么如何统计每个数字出现的次数,比如输出210 120 1~30

45. 查找log的前5行,后5行?

46. 写输出数字 0 到 500 中 7 的倍数(0 7 14 21...)的命令?

47. 输出文件中某一行数据

48. 如何判断IP是否可以访问?

49. 如何判断某个ip的端口是否可以访问?

50. 如何用命令行请求web服务器?

51. 如何显示某个端口的TCP连接?

52. 如何统计处于各个状态的连接个数?

53. 如何查看进程的占用的文件符情况?

54. less和vim如何查看日志并寻找关键字?

less

vim

55. vim如何删除游标所在行

系统优化

56. 系统卡顿,如何排查


 

32. 如何利用linux的指令来查询一个文件的行数?

  • wc [选项] 文件
    • -c 统计字节数
    • -l 统计行数
    • -w 统计字数
    • -m 统计字符数
  • 一般选项不加时,默认-lcw,显示结果依次为行数、字节数、字数

33. linux下统计一个文件中每个id的出现次数?

  • 举例:检查一个文件中“404”出现的次数

  • grep 就是按参数进行过滤
  • grep -o 一条数据里面有多个相同,会统计相同的次数
  • grep 一条数据里面有多个相同,会统计一次次数
  • wc -l 见上,就是统计行数

34. Linux 在多个文件中查找字符串?

  • 文件不多的情况下

  • 文件多的情况下

  • xargs 将读入的数据重新格式化,默认是将换行和空格替换为空格

35. 如何查看占用cpu最多进程?

  • 通过以下语句获取每一列字段的含义(即标题行)
ps aux | head -1
  • 首先 ps aux能够输出所有的进程
  • 然后,grep -v PID 命令将包含PID的标题行去掉
  • 接着, sort -rn -k +3 ,按照第三列数据进行排序,-r是降序排序,-n是按数值进行排序,-k用来指定列
  • head -1 获取排序后的第一行数据
ps aux|grep -v PID|sort -rn -k +3|head

36. 如何找到 Java 进程中哪个线程占用了大量 CPU 处理时间?

  • 首先根据上面一步能定位到PID

  • 接下来,利用下面的命令查看线程占用资源的情况

    • -H #Threads mode 是否开启线程模式,默认是off

      -p # PID monitoring 只显示某个进程的信息,e.g: top -P 488 只显示进程号为488的进程信息

      -o # sort 排序,-o fieldname ,指定要排序的字段 ,

top -H -p [PID]
  • 对于上述结果,通过ctrl+p对结果按照cpu进行排序,得出哪个线程占用cpu最高(下面以544为例)
  • 先将544转为16进制的220
  • 接下来将该java进程的堆栈信息输出到一个文件
jstack [PID] > jstack.txt
  • 然后在该文件中找到对应的线程ID
    • 利用grep -n可以定位到nid=0x220的行数
    • 然后查询指定行附近的内容(前10行,后20行等)

37. 如何找到占用内存最多的进程?

ps aux|grep -v PID|sort -rn -k +4|head

38. 磁盘不够了,如何快速找出磁盘占用最大的文件?

du -h * | sort -rn | head -1
  • du命令可以查看文件的大小

39. 找到大于某个阈值大小的文件?

find / -type f -size +10G
  • 查找在/目录下文件大小大于10G的文件

40. 查找某个名称或者类型的文件?

find / -name *.ppt

41. 查看某个文件的大小?

du -h /usr/local/apache2/logs/access_log
  • 获取某个文件夹的大小
du -sh data

42. 查看某log文件某个字符串的前后5行?

  • grep -n 能够将包含指定项目的行以及对应的行号显示出来
grep -n "b" a.txt
  • 查找指定行附近的内容
# 错误行定位到了8786830 下面命令能查看前20行和后10行 tail -n +8786810 err.log |head -n 30

43. 找到上述行中的最后一列?

  • awk '{print $NF}' 打印出最后一列
  • 'NR>1 {print $NF}' 能跳过第一行
grep "b" a.txt | awk '{print $NF}'

44. 如果最后一列是10 20 10 30,那么如何统计每个数字出现的次数,比如输出210 120 1~30

  • awk里面通过""来拼接字符串
  • xargs -n1 每行显示一个字符
  • uniq -c 去重,并且将出现次数带上
grep "b" a.txt | awk '{print $NF}' | xargs -n1 | sort | uniq -c | awk '{print $2"~"$1}'

45. 查找log的前5行,后5行?

head -n 5 log tail -n 5 log

46. 写输出数字 0 到 500 中 7 的倍数(0 7 14 21...)的命令?

seq 0 7 500

seq 用于生成从一个数到另一个数之间的所有整数。

用法:seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数

47. 输出文件中某一行数据

tail -n +5 | head -1
  • 先找到第5行以后的数据
  • 然后通过head输出这些数据中的第一行

48. 如何判断IP是否可以访问?

ping ip

49. 如何判断某个ip的端口是否可以访问?

telnet ip port
  • 后接ctrl+]可以给端口发送数据包

50. 如何用命令行请求web服务器?

curl https://www.example.com
  • 不带参数,默认是get请求

51. 如何显示某个端口的TCP连接?

netstat -anp | grep ":8080" // -t 表示过滤TCP连接

52. 如何统计处于各个状态的连接个数?

netstat -anp | awk '{print $6}' | sort | uniq -c | sort -n 

53. 如何查看进程的占用的文件符情况?

lsof | grep hello.c
  • lsof显示的结果,从左往右分别代表:打开该文件的程序名,进程id,用户,文件描述符,文件类型,设备,大小,iNode号,文件名。
COMMAND   PID                      USER   FD             TYPE        DEVICE SIZE/OFF   NODE   NAME vi        27940                    hyb    7u      REG               8,15     16384     137573 /home/hyb/.1.txt.swp

54. less和vim如何查看日志并寻找关键字?

less

b 向后翻一页 d 向后翻半页 /字符串:向下搜索“字符串”的功能 ?字符串:向上搜索“字符串”的功能 空格键 滚动一行 回车键 滚动一页 q 退出less n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关)

vim

  • /+关键字 ,回车即可。此为从文档当前位置向下查找关键字,按n键查找关键字下一个位置,N往回找;
  • ?+关键字,回车即可。此为从文档挡圈位置向上查找关键字,按n键向上查找关键字,N往回找;

55. vim如何删除游标所在行

  • dd删除

系统优化

56. 系统卡顿,如何排查

  • 首先通过 top -c 命令显示当前进程的运行列表
  • 然后,按一下P按照CPU使用率进行排序,得到CPU使用率最高的进程(2609)
  • 接着,使用 top -Hp 2609 找出这个进程下面的线程,继续按P进行排序
  • 然后,可以找到消耗CPU最多的线程
    • 此处需要将线程号转为十六进制 2854->b26
  • 然后,导出进程快照,看看线程做了什么
    • jstack -l 2609 > ./2609.stack
  • 再用grep查看线程在文件中做了什么
    • cat 2609.stack |grep 'b26' -C 8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

功能实现题 的相关文章

随机推荐

  • 蓝牙打开流程

    通常两种打开方式 一个是在菜单Setting上打开 一种就是自动打开 default on 两种都是最终调用IBluetooth enable 来打开的 启动蓝牙BluetoothService frameworks base servic
  • osg orbitManipulator拖拽位置不精确的问题解决。

    实际上 就是个焦距和视距的问题 摄像机在不同的位置 远近切面会改变 但是fovy和aspectRatio不改变 这样 也会导致近切面的宽高发生改变 就类似于一个无限延伸的视锥体滑梯 远近切面就在这滑梯上滑动 由于最终物体要投影到近切面 而近
  • Ubuntu安装g++

    在编译之前我们需要在系统里安装G GCC 它们就是Linux下的C C的编译器 代码如下 代码 sudo apt get install build essential 好 现在我们在文本编辑器里写一个C的简单的程序 好像所有学习C或者C
  • MQ的基本原理是怎样的?MQ的优点有哪些?MQ的核心概念包括哪些?MQ的消息传递模式有哪些?

    1 MQ的基本原理是怎样的 MQ 消息队列 是一种面向消息的中间件 用于实现不同系统之间的异步通信 其基本原理如下 生产者 Producer 将消息发送到消息队列中 而不是直接发送给消费者 Consumer 消息队列将接收到的消息存储在内部
  • Python字符串的截取

    字符串元素的截取 Python中的字符串用单引号 或双引号 括起来 同时使用反斜杠 转义特殊字符 字符串的截取的语法格式如下 变量 头下标 尾下标 索引值以 0 为开始值 1 为从末尾的开始位置 加号 是字符串的连接符 星号 表示复制当前字
  • 怎么优化深层神经网络(超参、正则以及优化)

    在训练神经网络时 我们需要做出很多决策 比如 神经网络分多少层 每层含有多少个隐藏单元 学习速率是多少 各层采用哪些激活函数等等 我们不可能从一开始就准确的预测出这些超参数 因为应用机器学习是一个高度迭代的过程 通常在项目启动时 我们会先有
  • 小程序识别车牌php,微信小程序——车牌键盘输入js+css

    请输入车牌号码 carNo item 清空 关闭 item OK Del pages jp cp jp cp wxss lf float left rt float right tel border bottom 2rpx solid dd
  • Python常用函数笔记汇总1

    清理 重塑 转换 numpy where condition x y 1 这里x y是可选参数 condition是条件 这三个输入参数都是array like的形式 而且三者的维度相同 2 当conditon的某个位置的为true时 输出
  • 树莓派启用ll命令

    前言 在Linux系统中ll命令是ls l的快捷命令 在树莓派中默认是禁用的 通过修改配置文件将其开启 启用说明 vi bashrc 找到以下位置 将 删除 some more ls aliases alias ll ls l alias
  • ubuntu中的终端是区分大小写的

    ubuntu中的终端是区分大小写的
  • 主成分分析法(PCA)的理解(附python代码案例)

    目录 一 PCA简介 二 举个例子 三 计算过程 公式 3 0 题干假设 3 1 标准化 3 2 计算协方差矩阵 3 3 计算特征值和特征值向量 3 3 多重共线性检验 可跳过 3 4 适合性检验 可跳过 3 5 计算主成分贡献率及累计贡献
  • 什么是protocol分层,垂直service??计算机网络详解【计算机网络养成】

    内容导航 分组丢失和延时 发生原因 四种分组延时 节点处理延迟 排队延迟 传输延时 Transmission 传播延时 Propagation 使用cmd命令tracert 和 tracerert 来检查延迟 分组丢失 吞吐量 有效的数据量
  • 【网易】星际穿越

    简单数学 include
  • QT实现电子时钟

    QT实现电子时钟 实现方法 实现效果 代码 头文件 源文件 实现方法 主窗口QDialog调用QLCDNumber窗口 实现效果 代码 头文件 dialog h ifndef DIALOG H define DIALOG H include
  • Git使用(3)常见报错

    仅限于当时当地情况下的处理方式 不代表所有情况 Q Refusing to fetch into current branch refs heads master of non bare repository A 在当前分支下fetch g
  • (详细步骤和代码)利用A100 GPU加速Tensorflow

    利用A100 GPU加速Tensorflow NVIDIA A100 基于 NVIDIA Ampere GPU 架构 提供一系列令人兴奋的新功能 第三代张量核心 多实例 GPU MIG 和第三代 NVLink Ampere Tensor C
  • 2022-2028年中国商用车产业园区行业市场竞争态势及未来前景分析报告

    智研咨询发布的 2022 2028年中国商用车产业园区行业市场竞争态势及未来前景分析报告 共十五章 首先介绍了商用车产业园区行业市场发展环境 商用车产业园区整体运行态势等 接着分析了商用车产业园区行业市场运行的现状 然后介绍了商用车产业园区
  • 用elasticsearch聚合函数实现distinct查询

    1 等价的sql Sql代码 SELECT DISTINCT field1 field2 FROM test index test type 等价于 Sql代码 SELECT field1 field2 FROM test index te
  • VMware-Ubuntu安装bochs

    我的运行环境是VMware的Ubuntu 首先大家可以按照CSDN上的教程按照符合自己需求的虚拟机 我在上午还在VMware和virtualBox之间做选择 但是由于已经安装过了VMware 所以我就直接用了VMware 当然了 一千人眼中
  • 功能实现题

    目录 32 如何利用linux的指令来查询一个文件的行数 33 linux下统计一个文件中每个id的出现次数 34 Linux 在多个文件中查找字符串 35 如何查看占用cpu最多进程 36 如何找到 Java 进程中哪个线程占用了大量 C