不常用命令指南
常用命令网上资料很多,讲的也不错。这里记录下日常工作中用到的,但对于新手又不常用的命令
文章目录
- 信息相关
- 进程相关
- `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个输入…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
云原生时代的系统设计:架构转型的战略支点
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、云原生的崛起:技术趋势与现实需求的交汇 随着企业业务的互联网化、全球化、智能化持续加深,传统的 I…...
