• 常见的linux命令


    常见的linux命令

    1、awk

    https://blog.csdn.net/qq_41288473/article/details/123475376

    https://blog.csdn.net/weixin_35801556/article/details/116675859

    2、vi命令

    进入vi的命令
    vi filename :打开或新建文件,并将光标置于第一行首
    vi +n filename :打开文件,并将光标置于第n行首
    vi + filename :打开文件,并将光标置于最后一行首
    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
    vi filename…filename :打开多个文件,依次进行编辑

    移动光标类命令
    h :光标左移一个字符
    l :光标右移一个字符
    space:光标右移一个字符
    Backspace:光标左移一个字符
    k或Ctrl+p:光标上移一行
    j或Ctrl+n :光标下移一行
    Enter :光标下移一行
    w或W :光标右移一个字至字首
    b或B :光标左移一个字至字首
    e或E :光标右移一个字至字尾
    ) :光标移至句尾
    ( :光标移至句首
    }:光标移至段落开头
    {:光标移至段落结尾
    nG:光标移至第n行首
    n+:光标下移n行
    n-:光标上移n行
    n$:光标移至第n行尾
    H :光标移至屏幕顶行
    M :光标移至屏幕中间行
    L :光标移至屏幕最后行
    0:(注意是数字零)光标移至当前行首
    $:光标移至当前行尾

    屏幕翻滚类命令
    Ctrl+u:向文件首翻半屏
    Ctrl+d:向文件尾翻半屏
    Ctrl+f:向文件尾翻一屏
    Ctrl+b;向文件首翻一屏
    nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

    插入文本类命令
    i :在光标前
    I :在当前行首
    a:光标后
    A:在当前行尾
    o:在当前行之下新开一行
    O:在当前行之上新开一行
    r:替换当前字符
    R:替换当前字符及其后的字符,直至按ESC键
    s:从当前光标位置处开始,以输入的文本替代指定数目的字符
    S:删除指定数目的行,并以所输入文本代替之
    ncw或nCW:修改指定数目的字
    nCC:修改指定数目的行

    删除命令
    ndw或ndW:删除光标处开始及其后的n-1个字
    do:删至行首
    d$:删至行尾
    ndd:删除当前行及其后n-1行
    x或X:删除一个字符,x删除光标后的,而X删除光标前的
    Ctrl+u:删除输入方式下所输入的文本

    搜索及替换命令
    /pattern:从光标开始处向文件尾搜索pattern
    ?pattern:从光标开始处向文件首搜索pattern
    n:在同一方向重复上一次搜索命令
    N:在反方向上重复上一次搜索命令
    :s/p1/p2/g:将当前行中所有p1均用p2替代
    :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
    :g/p1/s//p2/g:将文件中所有p1均用p2替换

    3、Linux系统命令 - 查看内存使用情况

    3.1、查看内存的使用情况

    在Linux系统中,大部分操作都通过命令行来完成,因为大部分情况下不开启图形界面。
    在服务器环境,则只能通过shell执行操作。
    下面介绍查看内存使用情况的相关命令。 包括物理内存(RAM)和交换内存(swap)

    free 命令是Linux系统中最简单和最常用的内存查看命令, 示例如下:

    在这里插入图片描述

    其中, -m 选项是以MB为单位来展示内存使用信息; -h 选项则是以人类(human)可读的单位来展示。

    上面的示例中, Mem: 这一行:

    • total 表示总共有 7822MB 的物理内存(RAM),即7.6G。
    • used 表示物理内存的使用量,大约是 322M。
    • free 表示空闲内存;
    • shared 表示共享内存?;
    • buff/cache 表示缓存和缓冲内存量; Linux 系统会将很多东西缓存起来以提高性能,这部分内存可以在必要时进行释放,给其他程序使用。
    • available 表示可用内存;

    3.2、使用 vmstat 命令

    使用 vmstat -s 命令和选项, 可以对内存使用情况进行统计, 类似于 /proc/meminfo

    示例如下:

    在这里插入图片描述

    3.4、 使用 top 命令

    top 命令一般用于查看进程的CPU和内存使用情况;当然也会报告内存总量,以及内存使用情况,所以可用来监控物理内存的使用情况。
    在输出信息的顶部展示了汇总信息。

    重点关注顶部的 KiB Mem 和 KiB Swap 这两行。 表示内存的总量、使用量,以及可用量。
    buffer 和 cache 部分,和 free 命令展示的差不多。
    在这里插入图片描述

    4、查看cpu

    lscpu

    此命令用来显示cpu的相关信息  lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读  命令输出的信息包含cpu数量,线程,核数,套接字和Nom-Uniform Memeor Access(NUMA),缓存等  不是所有的列都支持所有的架构,如果指定了不支持的列,那么lscpu将打印列,但不显示数据

    参数说明:

    -a, –all: 包含上线和下线的cpu的数量,此选项只能与选项e或-p一起指定
    -b, –online: 只显示出上线的cpu数量,此选项只能与选项e或者-p一起指定
    -c, –offline: 只显示出离线的cpu数量,此选项只能与选项e或者-p一起指定
    -e, –extended [=list]: 以人性化的格式显示cpu信息,如果list参数省略,输出所有可用数据的列,在指定了list参数时,选项的字符串、等号(=)和列表必须不包含任何空格或其他空白。比如:’-e=cpu,node’ or ’–extended=cpu,node’
    -h, –help:帮助
    -p, –parse [=list]: 优化命令输出,便于分析.如果省略list,则命令的输出与早期版本的lscpu兼容,兼容格式以两个逗号用于分隔cpu缓存列,如果没有发现cpu缓存,则省略缓存列,如果使用list参数,则缓存列以冒号(:)分隔。在指定了list参数时,选项的字符串、等号(=)和列表必须不包含空格或者其它空白。比如:’-e=cpu,node’ or ’–extended=cpu,node’
    -s, –sysroot directory: 为一个Linux实例收集CPU数据,而不是发出lscpu命令的实例。指定的目录是要检查Linux实例的系统根
    -x, –hex:使用十六进制来表示cpu集合,默认情况是打印列表格式的集合(例如:0,1)

    5、查看端口

    Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。

    lsof(list open files)是一个列出当前系统打开文件的工具。

    lsof 查看端口占用语法格式:

    lsof -i:端口号
    
    • 1

    在这里插入图片描述

    更多lsof的常用命名

    lsof -i:8080:查看8080端口占用
    lsof abc.txt:显示开启文件abc.txt的进程
    lsof -c abc:显示abc进程现在打开的文件
    lsof -c -p 1234:列出进程号为1234的进程所打开的文件
    lsof -g gid:显示归属gid的进程情况
    lsof +d /usr/local/:显示目录下被进程开启的文件
    lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
    lsof -d 4:显示使用fd为4的进程
    lsof -i -U:显示所有打开的端口和UNIX domain文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    netstat

    netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

    netstat 查看端口占用语法格式:

    netstat -tunlp | grep 端口号
    
    • 1
    • -t (tcp) 仅显示tcp相关选项
    • -u (udp)仅显示udp相关选项
    • -n 拒绝显示别名,能显示数字的全部转化为数字
    • -l 仅列出在Listen(监听)的服务状态
    • -p 显示建立相关链接的程序名

    例如查看 8000 端口的情况,使用以下命令:

    # netstat -tunlp | grep 8000
    tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      26993/nodejs  
    
    • 1
    • 2

    6、find命令

    Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    常用实例

    将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:

    # find . -name "*.c"
    
    • 1

    将当前目录及其子目录中的所有文件列出:

    # find . -type f
    
    • 1

    将当前目录及其子目录下所有最近 20 天内更新过的文件列出:

    # find . -ctime  20
    
    • 1

    查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:

    # find /var/log -type f -mtime +7 -ok rm {} \;
    
    • 1

    查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

    # find . -type f -perm 644 -exec ls -l {} \;
    
    • 1

    查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:

    # find / -type f -size 0 -exec ls -l {} \;
    
    • 1

    7、实时查看日志信息

    第一种:查看实时变化的日志(比较吃内存)

    最常用的:

    tail -f app.log  (默认最后10行,相当于增加参数 -n 10)

    tail -200f app.log (最后200行,某一时刻往前推)

    tail -f catalina.out | grep --line-buffer “发送邮件” (实时查看tomcat的控制台日志中,含有“发送邮件”关键字的记录)

    tail -f catalina.out | grep --line-buffer -E “发送邮件|接收到”grep筛选多个关键字:满足任意一个条件)

    tail -f catalina.out | grep --line-buffer “发送邮件” | grep --line-buffer “异常报警” (grep筛选多个关键字:同时满足多个条件)

    ​ 注:–line-buffer : 每输出一行,就刷新一次

    Ctrl+c 是退出tail命令

    其他情况:

    tail -n 20 app.log  (显示app.log最后20行)

    tail -n +5 app.log  (从第5行开始显示文件)

    第二种:搜索关键字附近的日志

    最常用的:

    cat -n filename |grep “关键字”

    其他情况:

    cat app.log | grep -C 5 ‘关键字’  (显示日志里匹配字串那行以及前后5行)

    cat app.log | grep -B 5 ‘关键字’  (显示匹配字串及前5行)

    cat app.log | grep -A 5 ‘关键字’   (显示匹配字串及后5行)

    第三种:进入编辑查找:vi(vim)

    1、进入vim编辑模式:vi app.log

    2、输入“/关键字”,按enter键查找

    其他情况:

    cat app.log | grep -C 5 ‘关键字’  (显示日志里匹配字串那行以及前后5行)

    cat app.log | grep -B 5 ‘关键字’  (显示匹配字串及前5行)

    cat app.log | grep -A 5 ‘关键字’   (显示匹配字串及后5行)

  • 相关阅读:
    【谢希尔 计算机网络】第1章 计算机网络概述
    【华为OD题库-025】 找出两个整数数组中同时出现的整数-java
    nodejs开发环境搭建
    C#:最少硬币问题算法​(附完整源码)
    基于 SpringBoot + MyBatis 的在线五子棋对战
    前后端分离项目,vue+uni-app+php+mysql订座预约小程序系统 开题报告
    docker介绍
    蓝桥杯双周赛算法心得——摆玩具(分段的差不计入结果)
    Linux的十个常用命令
    5.ARP地址解析协议
  • 原文地址:https://blog.csdn.net/qq_45830276/article/details/126467838