当前位置: 首页 > news >正文

不常用命令指南

常用命令网上资料很多,讲的也不错。这里记录下日常工作中用到的,但对于新手又不常用的命令

文章目录

  • 信息相关
    • 进程相关
      • `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

相关文章:

不常用命令指南

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

spring mvc | servlet :serviceImpl无法自动装配 UserMapper

纯注解SSM整合 解决办法&#xff1a; 在MybatisConfig添加 Configuration MapperScan("mapper")...

STM32 HAL库之串口接收不定长字符

背景 在项目开发过程中&#xff0c;经常会使用MCU的串口与外界进行通信&#xff0c;例如两个单片机之间TTL电平型串口通信&#xff0c;单片机与成熟电路模块之间的串口通信等等.... 如何高效的使用串口是开发人员必须关注的问题。 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 - 依赖注入 自动批量注入

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

UVM 验证方法学之interface学习系列文章(十一)virtual interface 再续篇

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

面试题整理5----进程、线程、协程区别及僵尸进程处理

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

OpenTK 中帧缓存的深度解析与应用实践

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

第2节-Test Case如何调用Object Repository中的请求并关联参数

前提&#xff1a; 已经创建好了project&#xff08;File -> New -> Project&#xff0c;Type&#xff1a;API/WebService&#xff09;&#xff0c;object repository中已经创建了RESTful endpoint&#xff08;Object Repository -> New -> Web Service Request&am…...

【HarmonyOS NEXT】Web 组件的基础用法以及 H5 侧与原生侧的双向数据通讯

关键词&#xff1a;鸿蒙、ArkTs、Web组件、通讯、数据 官方文档Web组件用法介绍&#xff1a;文档中心 Web 组件加载沙箱中页面可参考我的另一篇文章&#xff1a;【HarmonyOS NEXT】 如何将rawfile中文件复制到沙箱中_鸿蒙rawfile 复制到沙箱-CSDN博客 目录 如何在鸿蒙应用中加…...

Android学习(六)-Kotlin编程语言-数据类与单例类

假设我们要创建一个表示书籍的数据类 Book&#xff0c;包含书名和作者两个字段。在 Java 中&#xff0c;代码如下&#xff1a; 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 缩放定律的实证研究 论文链接&#xff1a; An Empirical Study of Scaling Law for OCR论文下载 论文作者 Miao Rang, Zhenni Bi, Chuanjian Liu, Yunhe Wang, Kai Han 内容简介 本论文在光学字符识别&#xf…...

力扣274. H 指数

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

挑战一个月基本掌握C++(第五天)了解运算符,循环,判断

一 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 1.1 算术运算符 假设变量 A 的值为 10&#xff0c;变量 B 的值为…...

Python的sklearn中的RandomForestRegressor使用详解

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

ReactPress 1.6.0:重塑博客体验,引领内容创新

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

人脸生成3d模型 Era3D

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

kubeadm搭建k8s集群

前置环境&#xff1a; 准备三台虚拟机 192.168.1.104&#xff08;用来做k8s的mater节点&#xff09; 192.168.1.105&#xff08;节点node2&#xff09; 192.168.1.109&#xff08;节点node3&#xff09; 关闭防火墙 systemctl stop firewalld systemctl disable firewalld安装…...

centOS系统进程管理基础知识

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

STM32中ADC模数转换器

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

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...