【Linux技术专题】「必备基础知识」带你仔细梳理一下平时排查问题查询日志的基本操作和指令

news2024/11/26 12:25:57

带你仔细梳理一下平时排查问题查询日志的基本操作和指令

  • Linux文件与目录管理
  • 文件目录
    • 相对路径与绝对路径
      • 目录的相关操作标识符
      • `-` 代表前一个工作目录。
        • 示例
      • `~` 代表当前用户的主文件夹。
        • 示例
      • 可执行文件路径的变量: $PATH
        • 示例
        • 注意说明
    • 文件内容查阅
      • 文件内容检索/截取
        • 指令名称:cat
        • 指令名称:tac
          • 分析说明
          • 使用示例
        • nl(添加行号打印)
          • 主要选项
          • 使用示例
        • more
        • less
        • head和tail指令

Linux文件与目录管理

了解和熟悉Linux系统的文件存储结构、权限设置和命令行工具,将有助于快速定位和解决与日志相关的问题,提高系统管理员和开发人员的工作效率。
在这里插入图片描述

  1. 文件路径:Linux系统的日志文件按规定的目录结构组织。了解不同日志文件的存储位置和命名规则,可更快地找到所需的日志文件。例如,系统日志通常位于/var/log/syslog或/var/log/messages,Apache服务器日志可能位于/var/log/apache2等。

  2. 目录结构:Linux的日志目录按功能和服务进行分组,如系统日志、安全日志、网络服务日志等各有其子目录。通过这样的分类和组织,可更轻松地定位和管理各类型的日志文件。举例来说,安全相关的日志文件通常位于/var/log/secure或/var/log/auth.log等目录。

  3. 文件权限和所有者:Linux系统的文件和目录都具备权限和所有者设置。对于日志文件而言,这非常重要,因为仅有具备足够权限的用户能够访问和查看日志文件。通过正确设置文件权限和所有者,可确保只有授权人员可查看和处理日志文件。

  4. 命令行工具:Linux提供了丰富的命令行工具,可用于查看和搜索日志文件,如grep、tail、less等。这些工具使我们能够以灵活高效的方式搜索和过滤日志内容,并根据关键字或时间范围快速定位相关日志条目。

文件目录

相对路径与绝对路径

  • 绝对路径是指从根目录 / 开始写起的路径。例如,/usr/share/doc 是一个绝对路径。

  • 相对路径是指不从根目录 / 开始写起的路径。相对路径通常根据当前工作目录来确定。例如,如果当前工作目录是 /usr/share/doc,要找到 /usr/share/man 目录,可以使用相对路径 cd ../man

目录的相关操作标识符

  • . 代表当前目录。
  • .. 代表上一层目录。

以上的这两个指令,我们平常的使用中很常用,再次不进行过于赘述了,比较简单。

- 代表前一个工作目录。

主要是面向于操作的前一个执行指令所在的目录地址。

假设你当前的工作目录是 /home/user1,现在你想切换到上一个工作目录。

你可以使用 - 来代表前一个工作目录,然后执行相应的命令。在这个案例中,你可以执行 cd - 命令来返回上一个工作目录。

示例

$ pwd
/home

$ cd /etc
$ pwd
/etc

$ cd -
$ pwd
/home

首先我们通过 cd /etc 命令切换到 /etc 目录。然后,通过 cd - 命令返回到上一个工作目录 /home。你可以根据需要在不同的目录之间切换,并使用 - 来代表前一个工作目录。

~ 代表当前用户的主文件夹。

~ 是一个特殊符号,在Linux系统中表示当前用户的主文件夹(也称为家目录或用户目录)。每个用户在系统中都有一个唯一的主文件夹,其中存储了该用户的个人文件和配置信息。

当你在终端或命令行中使用 ~ 时,系统会自动将其解释为当前用户的主文件夹路径。这对于快速访问个人文件或切换到用户的主文件夹非常方便。

例如,如果你的用户名是"user1",那么~就等同于/home/user1。无论你当前的工作目录在哪里,使用~可以始终快速回到你的主文件夹。

示例

$ cd /usr/share
$ pwd
/usr/share

$ cd ~
$ pwd
/home/user1

当你在终端或命令行中使用 cd 命令时,~ 可以快速返回当前用户的主文件夹。无论你当前的工作目录在哪里,使用 cd ~ 可以将工作目录切换回主文件夹。

可执行文件路径的变量: $PATH

在Linux系统中,$PATH 是一个环境变量,用于存储多个目录的路径。当我们在终端中执行一个命令时,系统会按照 $PATH 的设置去这些目录中搜索与命令名称相匹配的可执行文件。

例如,当我们在任何目录下输入 ls 命令时,系统会在 $PATH 定义的每个目录中搜索名为 ls 的可执行文件。如果在多个目录中都存在名为 ls 的可执行文件,那么将执行搜索到的第一个匹配的可执行文件。

示例

$ echo $PATH
/usr/local/jdk1.8.0_111/bin:/usr/local/jdk/bin:/usr/local/bin:/usr/bin/mysql:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

在上面的示例中,$PATH 的值包含了多个目录路径,这些路径是用冒号进行分隔的。当我们执行命令时,系统会根据这些路径去搜索可执行文件。

通过设置 $PATH ,我们可以添加或删除目录路径,以调整系统搜索可执行文件的顺序和范围。这样可以方便地执行命令,而不需要输入完整的路径。

注意说明

不论是 root 用户还是其他用户,都有 /bin/usr/bin 目录,并且这些目录在 $PATH 环境变量中,因此可以在任何地方执行 ls 命令来找到 /bin/ls 可执行文件。

自己安装的程序包没有添加到系统的 $PATH 变量中,所以在不指定完整路径的情况下无法直接执行其中的脚本文件。因此,我们需要手动使用相对或绝对路径来执行这些脚本文件。

文件内容查阅

文件内容检索/截取

  • cat: 以从第一行开始的顺序显示文件内容。
  • tac: 以从最后一行开始的顺序显示文件内容,可以注意到它是 cat 倒写的。
  • nl: 显示文件内容并输出行号。
  • more: 按页逐步显示文件内容。
  • less: 类似于 more,但更强大的是它可以向前翻页。
  • head: 只显示文件的前几行。
  • tail: 只显示文件的最后几行。
  • od: 以二进制方式读取文件内容。

指令名称:cat

[root~]# cat [-AbEnTv]

在这里插入图片描述

指令名称:tac

tac命令用于反向显示文件内容,即从最后一行开始逐行向前显示。

tac [选项]... [文件]...

在这里插入图片描述

分析说明

tac命令是cat命令的反向版本。它的作用是将文件内容从最后一行开始逐行向前显示,按照逆序输出。与cat命令不同,tac命令以行为单位进行操作,而不是以文件为单位。

tac指令没有特别复杂的参数和用法。常用的选项有-b和-r。选项-b用于忽略以空白开头的行,这意味着以空格或制表符开头的行将被忽略。选项-r隐含地反转输出行的顺序,即正序变为逆序。可以同时使用两个选项,例如tac -br。

使用示例
  1. 显示文件内容的逆序:

    tac filename.txt
    

    这将以逆序显示filename.txt文件的内容。

  2. 忽略空白开头的行,以逆序显示文件内容:

    tac -b filename.txt
    
  3. 反转输出行的顺序,以正序显示文件内容:

    tac -r filename.txt
    

tac命令可以帮助用户快速查看文件内容的逆序,特别适用于需要查看大型文件时定位到最后几行的情况。

nl(添加行号打印)

nl命令用于在打印文件内容时添加行号。

nl [选项]... 文件...
主要选项
  • b:指定行号的方式,主要有两种:
    - b a:不论是否为空行,都列出行号(类似于cat -n);
    - b t:如果有空行,空的那一行不列出行号(默认值);
  • n:指定行号的显示方式,主要有三种:
    - n ln:行号显示在屏幕的最左边;
    - n rn:行号显示在自身字段的最右边,且不加0;
    - n rz:行号显示在自身字段的最右边,且加0;
  • w:指定行号字段占用的字符数。

nl命令能够自动为输出的文件内容添加行号。与cat -n略有不同,nl提供了更多的显示设计,包括行号位数和自动补齐0等功能。

常用选项包括-b和-n。选项-b用于指定行号的方式,可以选择不论是否为空行都列出行号,或者如果有空行,则不列出行号(默认值)。选项-n用于指定行号的显示方式,可以选择行号显示在屏幕的最左边,或者显示在自身字段的最右边,且可以选择是否补齐0。选项-w用于指定行号字段占用的字符数。

使用示例
  1. 默认显示文件内容并添加行号:

    nl filename.txt
    

    这将显示filename.txt文件的内容,并为每行添加行号。

  2. 显示行号在行的最左边,不补齐0:

    nl -n ln filename.txt
    
  3. 显示行号在行的最右边,不补齐0:

    nl -n rn filename.txt
    
  4. 显示行号在行的最右边,补齐0,字段宽度为6个字符:

    nl -n rz -w 6 filename.txt
    

nl命令可以方便地为文件内容添加行号,便于查看和定位。可以根据需要选择不同的选项来满足输出样式的要求。

more

使用more命令可以逐页查看文件内容。下面是more命令的一些常用操作:

  • 空白键:向下翻一页;
  • Enter键:向下翻一行;
  • /字串:在当前显示内容中向下搜索包含"字串"的关键字;
  • :f:立即显示文件名和当前显示的行数;
  • q:立即退出more,不再显示文件内容;
  • b或[ctrl]-b:向上翻页,只适用于文件,对管道无效。

使用示例:

  1. 查看文件内容并逐页显示:

    more filename.txt
    

    通过这种方式可以一次显示一页文件内容,按空白键翻页。

  2. 在显示的内容中搜索关键字:

    /keyword
    

    这将向下搜索包含"keyword"的关键字。

  3. 显示文件名和当前行数:

    :f
    

    这将格式显示文件名以及当前显示的行数。

  4. 立即退出more:

    q
    

    使用该命令可以立即退出more,不再继续显示文件内容。

  5. 向上翻页(对文件有效):

    b
    

    或使用[ctrl]-b键进行向上翻页操作。

more命令可以方便地逐页查看文件内容,提供了基本的翻页和搜索功能,使查看大型文件变得更加便捷。

less

使用less命令可以逐页查看文件内容。下面是less命令的一些常用操作:

  • 空白键:向下翻动一页;
  • [pagedown]键:向下翻动一页;
  • [pageup]键:向上翻动一页;
  • /字串:向下搜寻包含"字串"的内容;
  • ?字串:向上搜寻包含"字串"的内容;
  • n:重复前一个搜寻(与/或?有关);
  • N:反向重复前一个搜寻(与/或?有关);
  • g:前进到文件的第一行;
  • G:前进到文件的最后一行(注意大小写);
  • q:退出less程序;

less命令相对于more命令更加灵活。在使用more时,只能向后翻页,而使用less时,可以使用[pageup]和[pagedown]等按键来前后翻页查看文件内容。

head和tail指令

head命令用于取出文件的前面几行。以下是head命令的一些用法示例:

head [-n number] 文件

选项与参数:

  • -n:后面接数字,表示显示几行的意思

可以使用下面的命令来查看文件的前几行:

head /etc/man_db.conf

默认情况下,head命令会显示文件的前十行。如果想显示前20行,可以使用如下命令:

head -n 20 /etc/man_db.conf

tail命令用于取出文件的后面几行。以下是tail命令的一些用法示例:

tail -n number 文件

可以使用下面的命令来查看文件的后几行:

tail -n 20 /etc/man_db.conf

范例一:如果不知道/etc/man_db.conf有几行,但只想列出100行之后的数据,可以使用下面的命令:

tail -n +100 /etc/man_db.conf

范例二:可以使用tail命令持续监测/var/log/messages文件的内容:

tail -f /var/log/messages

在使用tail -f命令后,需要按下[crtl]-c来停止监测。

通常使用tail命令来实时查看日志文件。

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

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

相关文章

opencv进阶03-图像与鼠标的交互示例

在处理图像时,可能需要与当前正在处理的图像进行交互。OpenCV 提供了鼠标事件,使用户可以通过鼠标与图像交互。鼠标事件能够识别常用的鼠标操作,例如:针对不同按键的单击、双击,鼠标的滑动、拖曳等。 例如,…

CentOS防火墙操作:开启端口、开启、关闭、配置

一、基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld systemctl是…

iptables之iptables表、链、规则 、匹配模式、扩展模块、连接追踪模块(一)

一、iptables的链 1.请求到达本机: PREROUTING --> INPUT --> Local Process (本机) 2.请求经过本机: PREROUTING --> FORWARD --> POSTROUTING 3.请求从本机发出:local Process(本机&#xf…

计算机竞赛 python 爬虫与协同过滤的新闻推荐系统

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python 爬虫与协同过滤的新闻推荐系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&…

ReactDOM模块react-dom/client没有默认导出报错解决办法

import ReactDOM 模块“"E:/Dpandata/Shbank/rt-pro/node_modules/.pnpm/registry.npmmirror.comtypesreact-dom18.2.7/node_modules/types/react-dom/client"”没有默认导出。 解决办法 只需要在tsconfig.json里面添加配置 "esModuleInterop": true 即…

无涯教程-Perl - setpwent函数

描述 此功能将枚举设置(或重置)到密码条目集的开头。应该在第一次调用getpwent之前调用此函数。 语法 以下是此函数的简单语法- setpwent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perlwhile(($name, $passwd, $uid, $gid, $quota, …

Makefile多个子文件夹

首先,目录结构: 其中根目录Makefile主要作用是调用其他子文件夹Makefile,每个子模块执行各自编译后在build文件夹下生成obj文件,最后再执行build文件夹下Makefile进行链接。 根目录Makefile: TARGET ACT_Drv ##SRC_D…

java:JDBC

文章目录 什么是JDBCJDBC使用步骤详解各个对象DriverManagerConnectionStatementResultSetPreparedStatement JDBC控制事务操作步骤示例 什么是JDBC 我们知道,数据库有很多种,比如 mysql,Oracle,DB2等等,如果每一种数…

Python运算符全解析:技巧与案例探究

在Python编程中,运算符是强大的工具,能够使我们在数据处理和逻辑判断方面更加灵活。本篇博客将全面探讨Python中常用的运算符,包括算术、比较、逻辑、赋值、位、成员和身份运算符,通过实际案例为你展示如何妙用运算符解决问题。 …

java中的同步工具类CountDownLatch

这篇文章主要讲解java中一个比较常用的同步工具类CountDownLatch,不管是在工作还是面试中都比较常见。我们将通过案例来进行讲解分析。 一、定义 CountDownLatch的作用很简单,就是一个或者一组线程在开始执行操作之前,必须要等到其他线程执…

gitee(码云)如何生成并添加公钥,以及配置用户信息

一,简介 在使用Gitee的时候,公钥是必须的,无论是克隆还是上传。本文主要介绍如何本地生成和添加公钥到服务器,然后配置自己的用户信息,方便日后拉取与上传代码。 二,步骤介绍 2.1 本地生成公钥 打开git ba…

2023牛客暑期多校训练营9-J Puzzle: Star Battle

2023牛客暑期多校训练营9-J Puzzle: Star Battle https://ac.nowcoder.com/acm/contest/57363/J 文章目录 2023牛客暑期多校训练营9-J Puzzle: Star Battle题意解题思路代码 题意 解题思路 出题人都说是诈骗题(,可以发现满足每行每列恰好有 n n n个星…

Mysql复制类型、主从复制集群种类、主从复制原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 主从复制原理主从复制原理图一、概述二、为什么要读写分离?三、mysql支持的复制类型1、基于语句的复制statement:2、基于行的复制row&#x…

项目经理必知的45个项目管理术语

大家好,我是老原。 项目经理成败与否,80%取决于沟通。 有不少刚入门的项目经理小白,听到自己的上级或者别的项目经理大佬就项目问题进行探讨时,他们时不时就冒出个专业术语,都是一脸懵。 这时候,也不好意…

HCIP学习--路由策略使用实验

未完成 一、实验拓扑 二、实验需求 7的环回不宣告到ospf中,重发布直连到ospf中,且这步操作要在双向重发布前面 两个协议间进行多点双向重发布 R7的环回没有宣告在OSPF协议中,而是后期重发布进入的 解决环路,所有路径选择最优&a…

npm install 中 --save 和 --save-dev 是什么?

npm,全名 Node Package Manager,套件管理工具,package.json 会记下你在项目中安装的所有套件。 假设在项目中安装 lodash npm i --save lodash这样在 dependencies 中会出现: 如果修改了导入方式: npm i --save-dev …

FreeRTOS(动态内存管理)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、动态内存管理介绍 1、heap_1 2、heap_2 3、heap_3 4、heap_4 5、heap_5 二、动态内存总结与应用 1、heap_1 2、heap_4 3、heap_5 三、内存管理编程测试 1、heap_4 2、h…

变形金刚:从零开始【01/2】

一、说明 在我们的日常生活中,无论你是否是数据科学家,你都在单向地使用变压器模型。例如。如果您使用的是 ChatGPT 或 GPT-4 或任何 GPT,那么在为您回答问题的框中是变压器的一部分。如果您是数据科学家或数据分析师,则可能正在使…

【Linux】IO多路转接——select接口

目录 I/O多路转接之select select初识 select函数 socket就绪条件 select基本工作流程 select服务器 select的优点 select的缺点 select的适用场景 I/O多路转接之select select初识 select是系统提供的一个多路转接接口。 select系统调用可以让我们的程序同时监视多…

vmagent获取node-exporter配置

vmagent 使用以下命令添加图表 helm 存储库: helm repo add vm https://victoriametrics.github.io/helm-charts/helm repo update 列出vm/victoria-metrics-agent可供安装的图表版本: helm search repo vm/victoria-metrics-agent -l victoria-met…