【Linux】命令行下的增删查改之“查看”

news2024/12/31 5:50:13

致谢:Linux常用命令大全(手册) – 真正好用的Linux命令在线查询网站 提供的命令查询

这一期部分介绍借用了网站内容.

头部内容获取(head)

head命令的功能是显示文件开头的内容,默认值为前10行。

指令参数:

-n

定义显示行数

-c

指定显示头部内容的字符数

-v

总是显示文件名的头信息

-q

不显示文件名的头信息

实例:

head一个25行内容的文本文件可以看到默认显示头10行。

[root@machine ~]$ head filename

指定显示一个文本文件默认十行,且显示其文件名在上方。

[root@machine ~]$ head -v filename

指定显示文件的前20个字符:

head -c 20 filename

尾部内容获取(tail)

tail 命令用于查看文件的末尾内容。默认情况下,tail 会在终端中显示指定文件的最后 10 行。如果您同时指定多个文件,tail 会在每个文件内容之前添加文件名,以便于区分不同文件的输出。

通过使用 -f 参数,您可以实现对文件尾部最新内容的持续监控。这一功能非常适合于实时查看日志文件,类似于机场候机厅的大屏幕,始终显示最新消息,而无需手动刷新。使用 tail -f 文件名 命令,您将能够实时获取文件中新增的内容,便于及时了解文件的变化。

指令参数:

-c

输出文件尾部的N(N为整数)个字节内容

-f

持续显示文件最新追加的内容

-F

与选项“-follow=name”和“--retry”连用时功能相同

-n

输出文件的尾部N(N位数字)行内容

--retry

即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。

--pid=

与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令

--help

显示指令的帮助信息

--version

显示指令的版本信息

实例:

默认显示某个文件尾部的后10行内容:

tail initial test

指定显示某个文件尾部的后5行内容:

tail -n 5 filename

指定显示某个文件尾部的后15个字节:

tail -c 30 initial filename

  • 持续刷新显示某个文件尾部的后10行内容:
tail -f /path1/path2/filename

下面是一个简单的 C 程序,它会不断地向当前路径下的 test 文件写入带行数的内容。你可以在一个终端中运行这个程序,并在另一个终端中使用 tail -f test 命令实时监视文件的变化。

C 程序代码:

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
int main() 
{ 
    FILE *file = fopen("test", "a"); // 以追加模式打开文件 
    if (file == NULL) 
    { 
        perror("Error opening file"); 
        return 1; 
    } 
    int lineNum = 1; 
    while (1)
    {
         // 写入带有行号的内容 
        fprintf(file, "This is line %d\n", lineNum); 
        fflush(file); // 确保内容被写入文件 
        lineNum++; // 暂停一段时间以模拟写入间隔 
        sleep(1); // 每秒写入一行 
    } 
    fclose(file); 
    return 0; 
}

使用方式:

  1. 编译代码,将上述代码保存为 writer.c,然后在终端中运行以下命令来编译:

gcc -o writer writer.c

  1. 运行程序在一个终端中运行编译好的程序:
./writer

  1. 监视文件

在另一个终端中使用 tail -f 命令监视文件 test 的变化:

tail -f test

效果:

  • 当你运行 ./writer 后,程序将每秒向 test 文件追加一行内容,内容格式为 "This is line X",其中 X 是行号。
  • 在另一个终端中使用 tail -f test 命令时,你会看到文件的变化,实时输出新添加的行。

通过这种方式,你可以同时观察 C 程序向文件写入的过程以及使用 tail -f 实时监视文件内容。

可以使用管道将 tail -f 的输出传递给 grep,筛选出特定的内容:

tail -f /var/log/syslog | grep "error"

中间部分内容获取:

cat tmp.txt 
tail - 10.txt 

思路是取到最大后截断尾部

使用文件处理指令对数据进行级联操作,这就叫做流水线处理

cat .txt | head -610 | tail-10|tac 
tail-50 tep.txt | less

在Linux操作系统中,管道(|)是一个特殊的符号,用于连接两个或多个命令,将一个命令的输出作为另一个命令的输入。通过使用管道,可以将多个命令串联起来,实现更复杂的操作。例如,可以使用管道将一个命令的输出传递给另一个命令进行处理,或者将多个命令组合在一起以实现更复杂的功能。管道是Linux中非常强大和常用的功能之一,可以提高命令行操作的效率和灵活性。

以下是一些Linux中经典的流水线处理示例:

使用grep和wc命令统计文件中包含特定关键词的行数:

cat file.txt | grep "keyword" | wc -l

使用ps和grep命令查找特定进程:

ps aux | grep "process_name"

使用ls和sort命令列出目录中的文件并按文件大小排序:

ls -l | sort -k 5 -n

使用find和xargs命令查找特定类型的文件并执行操作:

find . -name "*.txt" | xargs rm

这些示例演示了如何使用管道将多个命令连接在一起,实现复杂的数据处理和操作。通过灵活使用流水线处理,可以大大提高在Linux系统上的命令行操作效率和灵活性。

统计行数(WC)

wc命令来自于英文词组“Word count”的缩写,其功能是用于统计文件的字节数、单词数、行数等信息,并将统计结果输出到终端界面。利用wc命令可以很快的计算出准确的单词数及行数,评估出文本的内容长度,要想了解一个文件,不妨先wc一下吧~

wc [参数] 文件

指令参数:

-w

统计单词数

-c

统计字节数

-l

统计行数

-m

统计字符数

-L

显示最长行的长度

--help

显示帮助信息

--version

显示版本信息

实例:

统计指定文件的单词数量:

wc -w filename

统计指定文件的字节数量::

wc -c filename

集合:显示行数,字符数,字节数,单词数

wc -l -m -c -w test

去重(uniq)

uniq命令来自于英文单词unique的缩写,中文译为独特的、唯一的,其功能是用于去除文件中的重复内容行。uniq命令能够去除掉文件中相邻的重复内容行,如果两端相同内容中间夹杂了其他文本行,则需要先使用sort命令进行排序后再去重复,这样保留下来的内容就都是唯一的了。

uniq [参数] 文件

参数:

-c

打印每行在文本中重复出现的次数

-d

每个重复纪录只出现一次

-u

只显示没有重复的纪录

实例:

对指定文件显示时执行去重操作:

只显示未重复文件:

uniq -u test

仅显示指定文件中存在一摸一样内容行的信息:

uniq -d Filename

排序(sort)

sort命令的功能是对文件内容进行排序。有时文本中的内容顺序不正确,一行行地手动修改实在太麻烦了。此时使用sort命令就再合适不过了,它能够对文本内容进行再次排序。

sort [参数] 文件

参数:

-b

忽略每行前面开始出的空格字符

-c

检查文件是否已经按照顺序排序

-d

除字母、数字及空格字符外,忽略其他字符

-f

将小写字母视为大写字母

-i

除040至176之间的ASCII字符外,忽略其他字符

-m

将几个排序号的文件进行合并

-M

将前面3个字母依照月份的缩写进行排序

-n

依照数值的大小排序

-o

将排序后的结果存入制定的文件

-r

以相反的顺序来排序

-t

指定排序时所用的栏位分隔字符

-k

指定需要排序的栏位

实例:

对指定的文件内容按照字母顺序进行排序:

cat Filename sort Filename

显示日历(cal)

cal命令的名字来自英语单词“Calendar”。改命令用来显示当前日历,或者指定日期的公历(公历是现在国际通用的历法,又称格列历,通称阳历。)如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份 。

cal [参数] [月份] [年份]

参数:

-l

单月分输出日历

-3

显示最近三个月的日历

-s

将星期天作为月的第一天

-m

将星期一作为月的第一天

-j

显示在当年中的第几天(儒略日)

-y

显示当年的日历

实例:

显示当前月份的日历:

cal

显示近期三个月的日历(当前月,上一个月和下一个月):

cal -3

显示指定年月的日历,如显示1998年2月的日历:

cal 2 1998

显示该日期是当年中的第几天:

终端显示内容(cat)

cat命令来自于英文单词concatenate的缩写,其功能是用于查看文件内容。在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head……等等,每个命令都有各自的特点。cat命令适合查看内容较少的、纯文本的文件。

对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+c键中断命令的执行,所以对于大文件,干脆用more命令吧~

参数:

-n

显示行数(空行也编号)

-s

显示行数(多个空行算一个编号)

-b

显示行数(空行不编号)

-E

每行结束处显示$符号

-T

将TAB字符显示为 ^I符号

-v

使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

-e

等价于”-vE”组合

-t

等价于”-vT”组合

-A

等价于 -vET组合

--help

显示帮助信息

--version

显示版本信息

实例:

查看文件内容:

cat Filename

查看某个文件的内容,并显示行号:

cat -n Filename

搭配空设备文件和输出重定向操作符,将某个文件内容清空:

cat /dev/null > Filename cat Filename

持续写入文件内容,直到碰到EOF符后才会结束并保存:

cat > Filename << EOF

输出字符串或提取后的变量值(echo)

echo是用于在终端设备上输出指定字符串或变量提取后值的命令,能够给用户一些简单的提醒信息,也可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息再来进行二次处理,又或者同输出重定向符一起操作,将信息直接写入到文件中。

如需提取变量值,需在变量名称前加入$符号做提取,变量名称一般均为大写形式。

echo [参数] 字符串/变量

参数:

-n

不输出结尾的换行符

-e “\a”

发出警告音

-e “\b”

删除前面的一个字符

-e “\c”

结尾不加换行符

-e “\f”

换行,光标扔停留在原来的坐标位置

-e “\n”

换行,光标移至行首

-e “\r”

光标移至行首,但不换行

-E

禁止反斜杠转移,与-e参数功能相反

—version

查看版本信息

--help

查看帮助信息

实例:

输出指定字符串到终端设备界面(默认为电脑屏幕):

echo hello echo

输出某个变量值内容

搭配输出重定向符一起使用,将字符串内容直接写入文件中:

echo "Hello echo" > Filename

搭配反引号执行命令,并将执行结果输出:

echo `uptime`

使用所有参数,猜猜结果:

echo -e "Hello \a\an\fecho\n123\r321\b\c"

致谢:Linux常用命令大全(手册) – 真正好用的Linux命令在线查询网站 提供的命令查询 

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

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

相关文章

麒麟信安CentOS安全加固案例获评中国信通院第三届“鼎新杯”数字化转型应用奖

“鼎新杯”数字化转型应用大赛&#xff0c;由中国通信标准化协会主办、中国信息通信研究院承办&#xff0c;以落实国家“十四五”规划关于“加快数字化发展&#xff0c;建设数字中国”的总体要求为目标&#xff0c;意在打造一批具有产业引领与推广应用效应的企业数字化转型应用…

深度学习中一些好的博客

pandas中的基本知识 假设我们的pf是一个pandas的结构 pf.column_namedf[‘column_name’]df.loc[:, ‘column_name’]df.iloc[:, column_index] 如果想将 pandas 中的数据转换为 NumPy 格式&#xff0c;你可以使用 .values 或 .to_numpy() 方法。 反向传播 想要有grad&…

安全、专属且高效:WorkPlus即时通讯平台引领高效协作新纪元

在信息和技术迅速发展的现代社会&#xff0c;企业的工作方式正发生深刻的变革。随着全球化和数字化进程的加快&#xff0c;企业所面临的沟通与协调挑战也愈发明显。传统的沟通方式已无法适应快速发展的市场需求&#xff0c;企业迫切需要一种既安全又高效的即时通讯工具&#xf…

Unity 从零开始搭建一套简单易用的UGUI小框架 基础分析篇

一套UGUI的小框架用一篇文章显然是不够的&#xff0c;因为会很长很长大约有上万字&#xff0c;想必读者也没有那个耐心一点点读完&#xff08;主要是我也懒&#xff09;&#xff0c;所以我就将其分为三个部分 基础分析篇 功能撰写与优化篇 扩展与总结篇 我将其都放在了同一个专…

Opencv之读取图片

目录 安装opencv读取彩色图片显示图片读取灰度图片结论 安装opencv pip install opencv-python读取彩色图片 使用OpenCV库读取彩色图片&#xff0c;其格式默认为BGR。 下面的代码展示了如何读取一张名为bg.jpg的彩色图片&#xff0c;并获取其相关信息。 import cv2# 读取彩…

Brave编译指南2024 Linux篇-构建与运行(七)

引言 在完成了构建环境的初始化后&#xff0c;我们终于可以开始编译Brave浏览器了。本文将详细介绍如何构建Brave浏览器&#xff0c;以及如何运行编译好的浏览器。 1.编译Brave浏览器 1.1 构建 使用下面的命令进行发布构建 npm run build 这个命令会触发一系列的编译过程…

【pyspark学习从入门到精通5】弹性分布式数据集_3

目录 Actions .take(...) 方法 .collect(...) 方法 .reduce(...) 方法 .count(...) 方法 .saveAsTextFile(...) 方法 .foreach(...) 方法 Actions 与转换不同&#xff0c;动作是在数据集上执行计划任务的&#xff1b;一旦您完成了数据的转换&#xff0c;就可以执行您的转…

数学科普读物《从毕达哥拉斯到怀尔斯》

毕达哥拉斯是古希腊数学家&#xff0c;怀尔斯是英国数学家&#xff0c;曾任美国普林斯顿大学教授。这本书是哈工大出版社刘培杰先生主编的。这是一本500多页的书&#xff0c;我不禁慨叹高级数学爱好者刘培杰的博学广识&#xff0c;因为书中纵论古今旁征博引&#xff0c;仅书后的…

JavaWeb 18.监听器

目录 一、监听器概述 监听器的分类 按监听的对象划分 按监听的事件划分 二、监听器的六个主要接口 1.application监听器 2.session域监听器 3.request域监听器 三、session域的两个特殊监听器 1.session绑定监听器 2.钝化活化监听器 什么是钝化活化 如何配置钝化与活化 ​编辑 …

高并发下的库存扣减技术

背景 针对库存操作&#xff0c;宗旨&#xff1a;绝不超卖&#xff08;存在资损、造成客诉、用户体验差&#xff09;、尽量避免少卖&#xff08;相对资损&#xff09;。 在明星直播、大促、秒杀等高并发场景下&#xff0c;数据库的性能会变得非常差&#xff0c;传统的分库分表…

【C++进阶专栏】:priority_queue(优先级队列)?仿函数?

文章目录 前言1、优先级队列的使用&#xff1f;2、仿函数&#xff1f;3、优先级队列用仿函数实现大/小堆变换&#xff1f; 前言 priority_queue&#xff1a;优先级队列&#xff0c;别看有一个队列的名字&#xff0c;但结构个队列完全不一样。队列是一种先进先出的结构特征&…

AttributeError: ‘str‘ Object Has No Attribute ‘x‘:字符串对象没有属性x的完美解决方法

AttributeError: str Object Has No Attribute x&#xff1a;字符串对象没有属性x的完美解决方法 &#x1f50d;&#x1f4a1; AttributeError: str Object Has No Attribute x&#xff1a;字符串对象没有属性x的完美解决方法 &#x1f50d;&#x1f4a1;摘要 &#x1f4d6;引言…

四、音频播放

一、相关逻辑 在登录代码中调用&#xff0c;资源加载代码&#xff0c;然后再资源加载代码中调用。 1、登陆方法中&#xff1a; 单例类音频调用自己的方法&#xff0c;然后传入配置代码中的常量 2、音频播放代码中&#xff1a; 首先设置为一个单例类&#xff0c;然后初始化一…

精益与数字化的融合:制造业的创新之路

回望过去&#xff0c;精益管理作为制造业的瑰宝&#xff0c;以其“消除浪费、持续改进、顾客至上”的核心理念&#xff0c;引领了无数企业走向成功。从丰田生产方式到全球范围内的广泛实践&#xff0c;精益管理不仅提升了生产效率&#xff0c;更重塑了企业的文化和价值观。它教…

【Python大语言模型系列】一文教你使用dify云版本开发一个简单的Agent(完整教程)

这是我的第365篇原创文章。 一、引言 智能助手&#xff08;Agent&#xff09;&#xff0c;利用大语言模型的推理能力&#xff0c;能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代&#xff0c;并在没有人类干预的情况下完成任务。 本文我们将搭建一个旅行…

vt虚拟化怎么开启_各品牌主板及品牌机开启VT虚拟化教程

VT指的是CPU的虚拟化技术可以单CPU模拟多CPU并行&#xff0c;允许一个平台同时运行多个操作系统&#xff0c;并且应用程序都可以在相互独立的空间内运行而互不影响&#xff0c;从而显著提高计算机的工作效率。下面&#xff0c;小编给大家介绍电脑开启vt的操作步骤。 VT虚…

[LeetCode] 155. 最小栈

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…

TiDB 监控组件之 Blackbox_exporter 运行原理

作者&#xff1a; TiDBerHailang 原文来源&#xff1a; https://tidb.net/blog/b269e96f 1. 介绍 本文介绍了 TiDB 集群监控组件Blackbox Exporter监控运行机制和配置方式。Blackbox Exporter是Prometheus官方提供的 Exporter&#xff0c;它能够通过多种协议对网络服务进行…

使用HTML、CSS和JavaScript创建滚动弹幕效果

使用HTML、CSS和JavaScript创建滚动弹幕效果 在现代网页设计中&#xff0c;滚动文本是一种常见的动态效果&#xff0c;可以吸引用户的注意力并增强交互体验。在这篇博客文章中&#xff0c;我们将详细介绍如何使用HTML、CSS和JavaScript实现滚动文本效果。 效果 步骤1&#xf…

【电商购物管理系统】Python+Django网页界面平台+商品管理+数据库

一、介绍 电商购物管理系统&#xff0c;本系统前端使用HTML、CSS、BootStrap等技术搭建前端界面&#xff0c;后端使用Django框架处理用户的逻辑请求。主要功能有&#xff1a; 管理员登录与管理&#xff1a;管理员可以登录后台&#xff0c;对用户和商品进行增删改查的操作。用…