不常用命令指南
常用命令网上资料很多,讲的也不错。这里记录下日常工作中用到的,但对于新手又不常用的命令
文章目录
- 信息相关
- 进程相关
- `htop`
- `pgrep`(根据指定的条件获取进程id)
- `lsof`
- 网络相关
- `ss`
- `nc`(netcat)
信息相关
进程相关
htop
htop
是一个在 Linux 系统中常用的命令行工具,它用于监控系统资源的使用情况,提供比传统的 top 命令更为丰富和友好的界面。htop 可以显示 CPU、内存、交换空间(swap)、进程信息等实时数据,同时支持对进程进行排序、筛选和交互式操作。
官网地址: https://htop.dev/
主要功能与特点:
实时监控:
显示系统的 CPU、内存、交换空间、进程状态等实时信息。
提供每个核心的 CPU 使用率,可以帮助你查看多核 CPU 的负载情况。
交互式操作:
htop 提供了丰富的交互功能,你可以直接在命令行中使用上下箭头、F键等操作对进程进行管理。
可以对进程进行排序(例如按 CPU 使用率、内存使用率等),通过 F6 可以选择排序方式。
支持杀死进程(通过选择进程后按 F9),方便系统管理员在遇到死锁或高负载时终止进程。
进程树视图:
htop 可以以树状结构显示进程间的父子关系,帮助用户理解进程的层级和依赖。
过滤与搜索:
通过 F3
键可以对进程进行搜索,快速定位你感兴趣的进程。
通过 F4
键进行进程过滤,可以根据进程的名称、PID 等信息筛选进程。
显示定制:
你可以定制显示的字段,包括 CPU、内存、用户、状态等信息。可以通过 F2
键进入设置界面进行定制。
颜色高亮:
htop 使用不同的颜色来高亮显示系统资源的使用情况,帮助用户快速识别瓶颈部分。
pgrep
(根据指定的条件获取进程id)
pgrep
是一个用于查找当前系统中符合特定条件的进程的命令。它的功能是通过进程名、用户、进程ID等条件来匹配进程,并返回匹配进程的进程ID(PID)。pgrep 是一个非常实用的工具,尤其适用于在脚本中自动化处理进程管理。
pgrep [选项] [匹配字符串]
# 根据进程名称查找进程: 最常见的用法是通过进程名来查找进程ID。
# 这也是最常用的方式
pgrep <process_name>
# 例如,查找名为 apache2 的进程:
pgrep apache2#使用正则表达式匹配进程名: pgrep 允许使用正则表达式来匹配进程名称。
# -f 选项会让 pgrep 匹配进程的完整命令行,而不仅仅是进程名称。
pgrep -f <'pattern'>
# 例如,查找命令行中包含 apache 的进程:
pgrep -f apache# 显示进程的详细信息: -a 选项可以列出匹配的进程ID和进程名:
pgrep -a <process_name># 根据用户查找进程: -u 选项允许你根据用户来过滤进程。你可以指定用户名或用户ID(UID):
pgrep -u username
# 例如,查找所有由用户 www-data 启动的进程:
pgrep -u www-data# 查找指定进程的父进程: -P 选项允许你查找某个进程的子进程:
pgrep -P parent_pid
# 例如,查找进程ID为 1234 的所有子进程:
pgrep -P 1234# 查找进程的进程组ID(PGID): -G 选项允许你根据进程组ID来查找进程:
pgrep -G <pgrp_id>
lsof
lsof
(List Open Files)是一个在 Linux 和类 Unix 系统中使用的命令行工具,用于列出当前系统中所有打开的文件及相关的进程信息。它不仅可以显示文件,还能列出与网络连接、设备、管道等相关的打开资源,因此在系统管理和故障排除中非常有用。
在 linux 中,一切皆文件。
# 示例输出
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# nginx 12345 root 6u IPv4 23456 0t0 TCP *:http (LISTEN)# 列出当前系统中所有进程打开的文件(包括设备文件、网络连接、管道等)
lsof# 通过 -p 参数指定进程 ID(PID),查看该进程打开的文件
lsof -p <PID># 指定一个字符串来过滤进程名,显示以该字符串开头的进程所打开的文件
lsof -c <process-name-prefix>
# 会列出所有以ls开头的进程,如:lsmod
lsof -c ls# 使用 -u 参数,可以查看某个用户(或多个用户)打开的所有文件
lsof -u <username># 某个文件(或目录)被哪个进程打开
lsof <filename># 列出所有当前打开的网络连接,包括 TCP 和 UDP 连接
lsof -i
lsof -i tcp
lsof -i udp
lsof -i :80
lsof -i tcp:80# 查看某个进程(例如 PID 1234)占用了哪些网络端口,可以结合使用 -p 和 -i 参数
lsof -p <pid> -i# 查看哪些文件被锁定。使用 -l 参数可以显示锁定文件的信息
lsof -l# 有时文件可能已经被删除,但某个进程仍然保持着该文件的打开句柄。使用 lsof 可以查看这些文件
lsof | grep deleted# 文件描述符(File Descriptors, FD)表示文件在内核中的标识符。lsof 显示的输出中会包括文件描述符的信息(如 cwd、txt、mem 等)。你可以通过这些信息了解进程如何使用文件
# 你可以使用 -t 来过滤文件类型。常见的文件类型包括:
# txt:普通文件
# cwd:当前工作目录
# mem:内存映射文件
# reg:常规文件
# chr:字符设备
# dir:目录
lsof -p <PID> -d <FD>
网络相关
ss
ss
(Socket Statictics)是一个在 Linux 系统中用来查看网络连接状态的命令,通常用于查看系统中打开的套接字(sockets),包括 TCP、UDP 连接、监听的端口、进程 ID 等信息。它比传统的 netstat
命令更加高效且提供了更多的功能和更简洁的输出。
ss -lntup
- -l 查看所有监听(listening)端口
- -u 查看所有 UDP 连接
- -t 查看所有 TCP 连接
- -p 显示每个监听端口对应的进程名称和 PID(进程 ID)
- -n 显示数字形式的端口和 IP 地址(避免 DNS 解析)
nc
(netcat)
功能非常全面,建议自行搜索学习。这里简单介绍下。
nc
(Netcat)是一个非常强大且灵活的命令行工具,用于网络连接、端口扫描、数据传输等操作。它通常被称为“网络工具的瑞士军刀”,因为它的功能十分广泛,可以用来调试和分析网络连接,也可以作为一个简单的客户端或服务器进行数据传输。
nc 默认使用 TCP 协议,如果想使用 UDP 协议,可以使用 -u
显式指定。
# 测试网络连接是否正常
nc <host|ip> <port># 创建一个简单的 TCP 服务器,监听指定的端口,并等待客户端连接
nc -l <port>
# 创建一个简单的 TCP 服务器,并把指定的文件发送给客户端
nc -l <port> < /path/filename# 扫描远程主机的多个端口,以检测哪些端口是开放的
# -z:告诉 nc 不发送任何数据,只测试端口是否开放
# -v:启用详细输出,显示哪些端口是开放的
nc -zv <host|ip> <start-port>-<end-port>
nc -zv <host|ip> <port># 使用 TCP 向目标发送文件
nc <receiver_host> <port> < file.txt
# 服务端接收数据,并保存为文件
nc -l <port> > received_file.txt# 因为默认使用 TCP 协议,因此可以模拟所有其他基于 TCP 的应用层协议。比如:HTTP 协议
echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80
相关文章:

不常用命令指南
常用命令网上资料很多,讲的也不错。这里记录下日常工作中用到的,但对于新手又不常用的命令 文章目录 信息相关进程相关htoppgrep(根据指定的条件获取进程id)lsof 网络相关ssnc(netcat) 信息相关 进程相关 …...

spring mvc | servlet :serviceImpl无法自动装配 UserMapper
纯注解SSM整合 解决办法: 在MybatisConfig添加 Configuration MapperScan("mapper")...

STM32 HAL库之串口接收不定长字符
背景 在项目开发过程中,经常会使用MCU的串口与外界进行通信,例如两个单片机之间TTL电平型串口通信,单片机与成熟电路模块之间的串口通信等等.... 如何高效的使用串口是开发人员必须关注的问题。 STM32的HAL库为我们提供了三种串口通信机制&am…...

Pyqt6的tableWidget填充数据
代码 from PySide6.QtWidgets import QTableWidget QTableWidgetItemdef tableInit(self):self.tableWidgetself.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)module_keyWord readJsonToDict(keyWordFileDir module_name) #读取模块关键字json字典数据s…...

ASP.NET Core - 依赖注入 自动批量注入
依赖注入配置变形 随着业务的增长,我们项目工作中的类型、服务越来越多,而每一个服务的依赖注入关系都需要在入口文件通过Service.Add{}方法去进行注册,这将是非常麻烦的,入口文件需要频繁改动,而且代码组织管理也会变…...

UVM 验证方法学之interface学习系列文章(十一)virtual interface 再续篇
一 前言 并非总是可以将被测单元(DUT)视为一个黑盒,即仅监控和驱动DUT的顶层端口信号。这一点在从模块级测试转向更大规模的系统级测试时尤为明显。有时,我们需要了解实现细节以便访问DUT内部的信号。这被称为白盒验证。 Verilog一直提供从其他作用域访问几乎任何层次结构…...

面试题整理5----进程、线程、协程区别及僵尸进程处理
面试题整理5----进程、线程、协程区别及僵尸进程处理 1. 进程、线程与协程的区别1.1 进程(Process)1.2 线程(Thread)1.3 协程(Coroutine)2. 总结对比 3. 僵尸进程3.1 什么是僵尸进程?3.2 僵尸进…...

OpenTK 中帧缓存的深度解析与应用实践
摘要: 本文深入探讨了 OpenTK 中帧缓存的使用。首先介绍了帧缓存的基本概念与在图形渲染管线中的关键地位,包括其与颜色缓存、深度缓存、模板缓存等各类缓存的关联。接着详细阐述了帧缓存对象(FBO)的创建、绑定与解绑等操作,深入分析了纹理附件、渲染缓冲区附件在 FBO 中的…...

第2节-Test Case如何调用Object Repository中的请求并关联参数
前提: 已经创建好了project(File -> New -> Project,Type:API/WebService),object repository中已经创建了RESTful endpoint(Object Repository -> New -> Web Service Request&am…...

【HarmonyOS NEXT】Web 组件的基础用法以及 H5 侧与原生侧的双向数据通讯
关键词:鸿蒙、ArkTs、Web组件、通讯、数据 官方文档Web组件用法介绍:文档中心 Web 组件加载沙箱中页面可参考我的另一篇文章:【HarmonyOS NEXT】 如何将rawfile中文件复制到沙箱中_鸿蒙rawfile 复制到沙箱-CSDN博客 目录 如何在鸿蒙应用中加…...

Android学习(六)-Kotlin编程语言-数据类与单例类
假设我们要创建一个表示书籍的数据类 Book,包含书名和作者两个字段。在 Java 中,代码如下: public class Book { String title; String author; public Book(String title, String author) { this.title title; this.author author; } Ove…...

CV-OCR经典论文解读|An Empirical Study of Scaling Law for OCR/OCR 缩放定律的实证研究
论文标题 An Empirical Study of Scaling Law for OCR OCR 缩放定律的实证研究 论文链接: An Empirical Study of Scaling Law for OCR论文下载 论文作者 Miao Rang, Zhenni Bi, Chuanjian Liu, Yunhe Wang, Kai Han 内容简介 本论文在光学字符识别…...

力扣274. H 指数
给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发…...

挑战一个月基本掌握C++(第五天)了解运算符,循环,判断
一 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 1.1 算术运算符 假设变量 A 的值为 10,变量 B 的值为…...

Python的sklearn中的RandomForestRegressor使用详解
文章目录 Python的sklearn中的RandomForestRegressor使用详解一、引言二、RandomForestRegressor简介1、随机森林回归原理2、RandomForestRegressor的主要参数 三、构建和训练模型1、数据准备2、数据划分3、模型训练 四、模型评估1、预测2、评估指标 五、特征重要性分析六、可视…...

ReactPress 1.6.0:重塑博客体验,引领内容创新
ReactPress 是一个基于Next.js的博客&CMS系统, Github项目地址:https://github.com/fecommunity/reactpress 欢迎Star。 体验地址:http://blog.gaoredu.com/ 今天,我们自豪地宣布ReactPress 1.6.0版本的正式发布,…...

人脸生成3d模型 Era3D
从单视图图像进行3D重建是计算机视觉和图形学中的一项基本任务,因为它在游戏设计、虚拟现实和机器人技术中具有潜在的应用价值。早期的研究主要依赖于直接在体素上进行3D回归,这往往会导致过于平滑的结果,并且由于3D训练数据的限制࿰…...

kubeadm搭建k8s集群
前置环境: 准备三台虚拟机 192.168.1.104(用来做k8s的mater节点) 192.168.1.105(节点node2) 192.168.1.109(节点node3) 关闭防火墙 systemctl stop firewalld systemctl disable firewalld安装…...

centOS系统进程管理基础知识
进程的概念与属性 1.进程是系统中正在执行的代码片段,也可以称为一个程序。 2.操作系统通过分配进程编号(PID)来管理进程。 3.进程属性包括PID、PPID、UID、GID、状态、优先级、终端名和资源占用等。 PS命令与进程查看 1.PS命令用于查看进程…...

STM32中ADC模数转换器
一、ADC简介 ADC模拟-数字转换器 ADC可以将引脚连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC,1us转换时间 输入电压范围: 0~3.3V,转换结果范围:0~4095 18个输入…...

初学stm32 --- 外部中断
目录 STM32 IO 口中断基础知识 相关库函数: 使用 IO 口外部中断的一般步骤 STM32 IO 口中断基础知识 STM32 的每个 IO 都可以作为外部中断的中断输入口。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立…...

wordpress调用指定分类ID下 相同标签的内容
要在WordPress中调用分类ID为1、3、7的分类下,具有相同标签的前10个内容,可以使用自定义的WordPress查询(WP_Query)。以下是实现此功能的步骤和示例代码: 步骤: 确定共同标签: 首先,你需要确定分类1、3、…...

SQL语法基础知识总结
一、引言 在当今数字化时代,数据的存储和管理至关重要。SQL(Structured Query Language),即结构化查询语言,是用于管理关系型数据库的强大工具。无论是开发 Web 应用、进行数据分析还是处理企业级数据,掌握…...

css 实现呼吸灯效果
先看效果: 动画的结果就想实在呼吸,完整的代码如下: <template><div class"container"><div class"long-breath"></div></div> </template><style lang"less"> html, body{h…...

IMX6ULL开发板如何关掉自带的QT的GUI界面和poky的界面的方法
重要说明:其实最后发现根本没必要去关掉自带的QT的GUI界面,直接把屏幕先刷黑就可以看到测试效果了,把屏蔽先刷黑的代码见博文: https://blog.csdn.net/wenhao_ir/article/details/144594705 不过,既然花了时间摸索如何…...

几种广泛使用的 C++ 编译器
C 编译器有很多种,它们在不同的操作系统和开发环境中提供服务。以下是几种广泛使用的 C 编译器: 1. GCC (GNU Compiler Collection) 平台:跨平台(Linux, macOS, Windows)特点:GCC 是一个自由软件编译器套…...

《Vue进阶教程》第十六课:深入完善响应式系统之单例模式
往期内容: 《Vue进阶教程》第五课:ref()函数详解(重点) 《Vue进阶教程》第六课:computed()函数详解(上) 《Vue进阶教程》第七课:computed()函数详解(下) 《Vue进阶教程》第八课:watch()函数的基本使用 《Vue进阶教…...

C语言版解法力扣题:将整数按权重排序
1.题目描述 我们将整数 x 的 权重 定义为按照下述规则将 x 变成 1 所需要的步数: 如果 x 是偶数,那么 x x / 2 如果 x 是奇数,那么 x 3 * x 1 比方说,x3 的权重为 7 。因为 3 需要 7 步变成 1 (3 --> 10 -->…...

Unity ECS和OOP优劣对比
OOP的优劣 面向对象编程(OOP, Object-Oriented Programming)是一种通过对象及其交互来组织代码的编程范式,广泛应用于软件开发中。以下是OOP的优缺点: 优点 代码可重用性 继承机制:通过继承,子类可以复用…...

【Java基础面试题026】Java中的String、StringBuffer和StringBuilder的区别是什么?
回答重点 他们都是Java中处理字符串的类,区别主要体现在可变性、线程安全和性能上 1)String 不可变:String是不可变类,字符串对象创建,存储在堆中,字符串内容存储在字符串常量池中,一旦创建内…...