那些你可能遇到的 Linux 命令?什么,你还不知道?赶紧收藏?完善中!

news2024/11/13 7:52:59

文章目录

      • 一. Linux 进程
        • 1. 通过进程名查找进程号
          • 1.1 ps aux & ps -ef:diff
          • 1.2 ps aux & ps -aux:什么?它们不一样?
          • 1.3 grep & awk:取出进程号、取出进程号并 Kill
        • 2. 通过进程号查看进程信息:/proc/pid
        • 3. 通过进程号查找进程名
        • 4. 监控进程占用情况
      • 二、Linux 文件
        • 1. 监控日志文件:动态跟踪
        • 2. 替换文件 字符 || Word

写在前面:一下截图执行结果均基于 阿里云 CentOS7 系统。

一. Linux 进程

1. 通过进程名查找进程号

        通过进程名查找进程号当然非 Linux 进程管理命令 ps 啦!!!当然也可以 pidof+具体进程名。

1.1 ps aux & ps -ef:diff
  • ps aux | grep process_name (以 BSD 语法显示进程信息)
  • ps -ef | grep process_name (以标准语法查看系统进程信息,System V)

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

1.2 ps aux & ps -aux:什么?它们不一样?

在大多数现代的Linux系统上,ps -aux 和 ps aux 被视为等效的命令,因为 -a 选项已经默认包含了-x 选项的功能,但是还是建议使用 ps aux

        不会吧?不会吧?到现在还不知道它们不一样?
        实际上,通过 man ps 查看 ps 命令手册,能够看到这么一句话:

        Note that “ps -aux” is distinct from “ps aux”. The POSIX and UNIX standards require that “ps -aux” print all processes owned by a user named “x”, as well as printing all processes that would be selected by the -a option. If the user named “x” does not exist, this ps may interpret the command as “ps aux” instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits. It is fragile, subject to change, and thus should not be relied upon.

        稍稍翻译一下:
        请注意,ps -auxps aux 是不同的。POSIX 和 UNIX 标准要求 ps -aux 打印所有由用户名 x 拥有的进程,并打印所有通过 -a 选项选择的进程。如果名为 x 的用户不存在,则此 ps 可能会将命令解释为 ps aux 并打印警告。此行为旨在帮助过渡旧的脚本和习惯。它是脆弱的,可能会发生变化,因此不应依赖它。

POSIX:Portable Operating System Interface of UNIX

        官方都这么说了?它两不一样。那我们用 Docker 实际体验一下:

在一些较老的 Unix 系统上,如 Solaris 和 AIX,ps -aux 和 ps aux 是不同的命令,具有不同的语法和输出格式,docker 似乎体验不到

  • Redhat 系列 之 CentOS7 (包管理方式 rpm/yum):它两执行结果一样
    在这里插入图片描述

  • CentOS6:ps -aux 打印警告信息
    在这里插入图片描述

  • RRedhat 系列 之 RHEL (Red Hat Enterprise Linux):它两执行结果一样
    在这里插入图片描述

  • Debian 系列之 Debian (社区类 Linux 的典范,是迄今为止最遵循 GNU 规范的 Linux 系统,包管理方式为 apt-get & dpkg):它两执行结果一样
    在这里插入图片描述

  • Debian 系列之 Ubuntu 22.04 (基于 Debian 的 unstable 版本加强而来):它两执行结果一样
    在这里插入图片描述

  • Alpine:它两执行结果一样
    在这里插入图片描述

1.3 grep & awk:取出进程号、取出进程号并 Kill
  • ps aux | grep mysql | grep -v grep | awk '{print $2}'
    在这里插入图片描述
  • kill -9 $(ps aux | grep mysql | grep -v grep | awk '{print $2}')

在这里插入图片描述

2. 通过进程号查看进程信息:/proc/pid

        通过进程号查找进程信息进入 /proc/pid 目录即可

  • ll /proc/pid
    在这里插入图片描述

    • cwd (link):进程运行目录

    • exe (link):执行程序的绝对路径

    • cmdline:程序运行时输入的命令行命令

    • fd:打开的文件描述符目录,文件描述符链接到了打开的文件,cat + 文件描述符编号可以查看文件
      在这里插入图片描述

    • fdinfo:打开的文件描述符
      在这里插入图片描述

  • cat /proc/pid/status:内存使用情况
    在这里插入图片描述

3. 通过进程号查找进程名

        通过进程名查找进程号当然也可以用 Linux 进程管理命令 ps 啦!!!

  • ps -p pid
    在这里插入图片描述

    • comm:COMMAND
    • comm=:COMMAND 等于
  • ps aux | grep pid:可以过滤,若 pid 存在的话 (固定的两个:grep 进程及 pid 所属进程),输出结果可能多于两个,不适合于脚本使用
    在这里插入图片描述

4. 监控进程占用情况

  • top:-d 选项可以修改刷新时间
    在这里插入图片描述

  • watch & ps:CPU 占用 top 15,五秒刷新一次,watch -n 5 'ps aux --sort -pcpu | head -15'
    在这里插入图片描述

二、Linux 文件

1. 监控日志文件:动态跟踪

  1. Shell 脚本模拟日志文件 Append:date_log.sh
while true
do
    cur_time=`date +"%Y-%m-%d,%H:%M:%S"`
    echo "[INFO]" $cur_time >> date_log.log
    sleep 1s
done
  1. 后台启动 date_log.sh:sh date_log.sh &
  2. tail
  • tail -n5 file or tail -5 file :打印文件最后 5 行
    在这里插入图片描述

  • tail -f -n5 file:-f —— --follow[={name|descriptor}] (伴随着文件增长输出追加数据,缺省为 descriptor 文件描述符)
    在这里插入图片描述

  • tail -F -n5 file:-F —— --follow=name --retry (–retry keep trying to open a file if it is inaccessible 如果文件不可访问,不断重试打开文件)

    • 如果文件名称改掉之后,还想继续跟踪原文件名称对应的尾部内容,就得使用 -F 选项而不是 -f 选项 (即,要想跟踪会更名的日志的话,用 tail -F 而不是 tail -f,如 采用 log4j 日志时,每隔 1 个小时生成一个新的日志文件,当前的日志输出在 LOG4J.LOG 中,当一个小时过去后,log4j 会将 LOG4J.LOG 改名成 LOG4J.yyyy-mm-dd-HH 的形式)
    • 手动改名,tail -F -n file 的输出如下
      在这里插入图片描述

2. 替换文件 字符 || Word

SED:参考 https://blog.csdn.net/Olivia_Vang/article/details/104091358 & man

  1. sed 命令
    • -i[SUFFIX], --in-place[=SUFFIX]:edit files in place (makes backup if SUFFIX supplied),在某位置编辑文件,即会更改原文件
    • sed s 命令 s/regexp/replacement/:Attempt to match regexp against the pattern space,即查找替换命令,“(作用范围)s/替换目标/替换值/替换目标选项”
      • 作用范围:单个数字;数字,数字;数字,+数字(某数字行及下数几行);数字,$(某数字行到最后一行)
      • 替换目标选项:g —— 作用范围内行的所有查找目标,而不仅是第一个查找目标
    • sed y 命令:略
  2. pet.txt
dog,dog
cat,cat
dog,cat
cat,dog
dog,cat,cat
cat,dog,dog
dog,cat,cat,dog,cat
monkey

在这里插入图片描述
3. sed 's/cat/dog/' pet.txt:作用于 pet.txt 的每一行并替换每行出现的第一个 cat
在这里插入图片描述
4. sed 's/cat/dog/g' pet.txt:作用于 pet.txt 的每一行并替换每行所有的 cat
在这里插入图片描述
5. sed '1,5s/cat/dog/g' pet.txt:作用于 pet.txt 的 1 到 5 行并替换每行所有的 cat
在这里插入图片描述
6. sed '5,$s/cat/dog/g' pet.txt:作用于 pet.txt 的 5 到最后一行并替换每行所有的 cat

7. sed '4,+2s/cat/dog/g' pet.txt:作用于 pet.txt 的 指定行 4 及其后 2 行并替换每行所有的 cat
在这里插入图片描述
8. sed '7s/.*/dog/g' pet.txt:作用于第 7 行,整行替换 (.*) 为 dog,可以不带 g
在这里插入图片描述
在这里插入图片描述

  1. sed '8s/./dog/g' pet.txt:作用于第 8 行,整行字符替换 (.) 为 dog,不带 g 替换第一个字符

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/617151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频理解学习笔记(四)

视频理解学习笔记(四) 3D CNNC3DI3DNon-local算子 (Self-attention替换掉LSTM)R (2 1) DSlowFast Video TransformerTimeSformer 总结Reference 3D CNN 双流的缺点:光流抽取太慢——tvl one算法,0.06s抽取…

什么是浅拷贝和深拷贝

javascript 中有不同的方法来复制对象,那么我们怎样才能正确地复制一个对象呢?,本文来介绍一下浅拷贝和深拷贝。 一、什么是浅拷贝(Shallow Copy) 浅拷贝是创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷…

遗传算法在数学建模中的应用及MATLAB实现

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 目录 遗传算法基本概念 遗传算法原理 MATLAB实现 1. 使用ga求解遗传算法问题 数学建模案例:旅行商问题(TSP&#xf…

操作系统原理 —— 内存连续分配管理方式(二十)

在之前的章节中,我们到了内存管理,其中有一个很重要的功能,就是对操作系统中的内存进行分配和回收。 那如何对操作系统的内存进行分配呢? 整体上可以分为两种方式:连续分配管理方式、非连续分配管理方式。 这里提到的…

【vue3】08-vue的组件化开发-插槽(Slots)的完全指南

Vue插槽(Slots)的完全指南 插槽的作用插槽的基本使用具名插槽作用域插槽(难点) 插槽的作用 在开发中,我们会经常封装一个个可复用的组件: 前面我们会通过props传递给组件一些数据,让组件来进行展示;但是为…

【CVPR2023】TPS详解:联合令牌剪枝与压缩以实现视觉变形器更积极的压缩

【CVPR2023】TPS详解:联合令牌剪枝与压缩以实现视觉变形器更积极的压缩 0. 引言1. 为什么要使用TPS?2. TPS介绍3. TPS 详解3.1 重要性计算3.2 令牌压缩3.2.1 匹配3.2.2 融合 4. 简化版理解5. 总结 0. 引言 虽然 Vision Transformers (ViTs&a…

小文智能宣布接入ChatGPT,智能化客户服务,开创全新用户体验

小文智能是一家致力于用AI技术解放劳动力的公司,最近我们接入了ChatGPT技术,深度探索AI在智能对话机器人领域应用的更多可能,这将为我们的客户带来更为优质的人机对话服务和全新的用户体验。 ChatGPT是一种基于人工智能的自然语言处理技术&a…

案例31:基于Springboot企业员工薪酬关系系统开题报告设计

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

逍遥自在学C语言 | break-循环的中断与跳转

前言 在C语言中,break语句是一种控制流语句,它用于终止当前所在的循环结构(for、while、do-while)或者switch语句,从而跳出循环或者结束switch语句的执行。 一、人物简介 第一位闪亮登场,有请今后会一直…

ML算法——梯度下降随笔【机器学习】

文章目录 11、梯度下降 11、梯度下降 梯度下降如何帮助参数优化? 梯度下降是一种用于参数优化的常见方法。它的基本思想是通过迭代地更新参数,以减小损失函数|代价函数的值,从而找到一个最优解。 梯度方向:→|向右|正向 ←|向左|反…

PostGIS(1):PostGIS概述

作为对象关系型数据库PostGreSQL的拓展模块,PostGIS可用于存储GIS数据,并提供了对基于GiST的R树索引支持、以及面向GIS对象的分析和处理相关的函数。 以下是PostGIS官网对其特征的介绍, (1) 先看一下百度对PostGIS的介…

Langchain-ChatGLM:基于本地知识库问答

文章目录 ChatGLM与Langchain简介ChatGLM-6B简介ChatGLM-6B是什么ChatGLM-6B具备的能力ChatGLM-6B具备的应用 Langchain简介Langchain是什么Langchain的核心模块Langchain的应用场景 ChatGLM与Langchain项目介绍知识库问答实现步骤ChatGLM与Langchain项目特点 项目主体结构项目…

php7新特性详细介绍(二)

一、PHP 7 异常 PHP 7 异常用于向下兼容及增强旧的assert()函数。它能在生产环境中实现零成本的断言,并且提供抛出自定义异常及错误的能力。 assert() 配置 | 配置项默认值可选值zend.assertions11 - 生成和执行代码 (开发模式) 0 - 生成代码,但在执…

智警杯excel和sql实训盲点

目录 excel基础操作: excel函数:智警杯赛前学习1.2--excel统计函数_lulu001128的博客-CSDN博客知识点https://blog.csdn.net/lulu001128/article/details/130936259?spm1001.2014.3001.5501 excel报表实战: excel数据透视及绘图&#xff…

Amino框架无锁算法实现并发线程安装组件(一)

Amino是无锁并行框架,线程安装,该框架封装了无锁算法,提供了可用于线程安全的一些数据结构,同时还内置了一些多线程调度模式。使用Amino进行软件开发有以下的优势: 1.对死锁的问题免疫 2.确保系统并发的整体进度 3.降低高并发下无锁竞争带…

java设计模式之:建造者模式

文章目录 建造者模式介绍建造者模式适用场景案例场景一坨坨代码实现重构代码 与工厂模式区别建造者模式优缺点总结 该说不说几乎是程序员都知道或者了解设计模式,但大部分小伙伴写代码总是习惯于一把梭。好的代码不只为了完成现有功能,也会考虑后续扩展。…

springboot自动配置源码解析

概述 使用springboog的时候引入starter就自动为我们加载,例如我们引入 spring-boot-starter-web 之后,就自动引入了 Spring MVC 相关的 jar 包,从而自动配置 Spring MVC 。 自动装配原理 SpringBootApplication SpringBootApplication: Spri…

Java的引用

一、概述 其实java有4种引用,4种可分为强、软、弱、虚。我们将从这四个方面入手进行介绍。 二、强引用 首先看到我们有一个类叫M,在这个类里我重写了一个方法叫finalize(),我们可以看到这个方法是已经被废弃的方法,为什么要重写…

【jupyter】Jupyter Notebook如何导入导出文件

目录 0.系统:windows 1.打开 Jupyter Notebook 2.Jupyter Notebook导入文件 3.Jupyter Notebook导出文件 0.系统:windows 1.打开 Jupyter Notebook 1)下载【Anaconda】后,直接点击【Jupyter Notebook】即可在网页打开 Jupyte…

用户研究干货——这一篇就够啦

一、基本概念: ①工作内容:用户研究的首要目的是帮助企业定义产品目标用户群,明确、细化产品概念,并通过对用户的任务操作特性、知觉特征、认知心理特征的研究,使用户的实际需求成为产品设计的导向,使产品…