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

致谢: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 命令是用于查看文件末尾内容的强大工具。默认情况下,它会显示指定文件的最后 10 行。如果同时指定多个文件,tail 会在每个文件内容之前添加文件名,方便用户区分输出。

指令参数:

-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 [参数] 文件

指令参数:

-w

统计单词数

-c

统计字节数

-l

统计行数

-m

统计字符数

-L

显示最长行的长度

--help

显示帮助信息

--version

显示版本信息

实例:

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

wc -w filename

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

wc -c filename

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

wc -l -m -c -w test

去重(uniq)

uniq 命令是“unique”的缩写,用于去除文件中的重复内容行。它只会删除相邻的重复行,因此在处理非相邻重复行时,需要先使用 sort 命令进行排序。通过这种方式,可以确保留下来的内容是都是唯一的。

uniq [参数] 文件

参数:

-c

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

-d

每个重复纪录只出现一次

-u

只显示没有重复的纪录

实例:

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

只显示未重复文件:

uniq -u test

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

uniq -d Filename

排序(sort)

sort 命令的功能是对文件内容进行排序。它可以按照字母顺序数值大小特定列进行排序,广泛应用于数据整理和分析。通过使用 sort,用户能够轻松地将文本文件中的数据按字母或数值顺序排列,便于查阅和管理。当与其他命令如之前提到的 uniq 结合使用时,它可以有效地去除重复行,确保数据的唯一性和整洁性。

sort [参数] 文件

参数:

-b

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

-c

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

-d

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

-f

将小写字母视为大写字母

-i

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

-m

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

-M

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

-n

依照数值的大小排序

-o

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

-r

以相反的顺序来排序

-t

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

-k

指定需要排序的栏位

实例:

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

cat Filename sort Filename

显示日历(cal)

cal命令的名字来自英语单词“Calendar”。该命令用来显示当前月份的日历,或者指定日期的公历.如只有一个参数,则表示年份,如有两个参数,则表示月份和年份 。

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

参数:

-l

单月分输出日历

-3

显示最近三个月的日历

-s

将星期天作为月的第一天

-m

将星期一作为月的第一天

-j

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

-y

显示当年的日历

实例:

显示当前月份的日历:

cal

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

cal -3

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

cal 2 1998

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

终端显示内容(cat)

cat 命令是“concatenate”的缩写,主要用于查看文件内容。它适合用于显示内容较少纯文本文件。面对内容较多的文件时,cat 命令可能会导致屏幕快速滚动,用户难以阅读,因此对于大文件,使用 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提取变量值时,需要在变量名称前加上 $ 符号,通常变量名称采用大写形式

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.rhkb.cn/news/451517.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现双向链表的增删改查

头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int LTDataType; typedef struct ListNode {LTDataType data;struct ListNode* prev;struct ListNode* next; } LTNode; //v…

matlab输入汉字时,输入法在左上角显示解决办法

解决方法&#xff1a; 输入汉字时输入法在左上角显示&#xff08;如图1&#xff09;&#xff0c;将鼠标放在竖着的小点处拖动到工作区合适位置&#xff08;如图2&#xff09;&#xff0c;下次输入汉字时输入法便在图2处显示。 图1 图2

如何测试IP速度?

了解代理的连接速度是否快速是确保网络使用效率和体验的关键因素之一。本文来为大家如何有效地评估和测试代理IP的连接速度&#xff0c;以及一些实用的方法和工具&#xff0c;帮助用户做出明智的选择和决策。 一、如何评估代理IP的连接速度 1. 使用在线速度测试工具 为了快速…

OpenCV高级图形用户界面(6)获取指定窗口中图像的矩形区域函数getWindowImageRect()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 提供窗口中图像的矩形区域。 该函数 getWindowImageRect 返回图像渲染区域的客户端屏幕坐标、宽度和高度。 函数原型 Rect cv::getWindowImage…

Vue详细入门(语法【一】)

今天滴学习目标&#xff01;&#xff01;&#xff01; Vue1. 什么是Vue.js2. Vue是怎么使用的嘞3. MVVM是什么嘞&#xff1f;4. Vue有哪些指令1. v-bind2.v-model3.v-if 和 v-else4. v-for5. v-show6. v-on 咱们先了解一下什么是Vue&#xff0c;Vue是怎么使用的嘞&#xff0c;V…

甘特图基线-用起来了吗~

管理项目无疑是一项充满挑战的任务&#xff01;每个项目都伴随着严格的截止日期&#xff0c;因此&#xff0c;确保项目按时完成&#xff0c;并在推进过程中一一达成所有关键的里程碑&#xff0c;显得尤为重要。 为了更精准地掌握项目进展&#xff0c;利用甘特图的基线功能来捕捉…

【华为HCIP实战课程十三】OSPF网络中3类LSA及区域间负载均衡,网络工程师

一、ABR SW1查看OSPF ABR为R4而非R3,因为R4连接骨干区域0,R3没有连接到区域0 R6查看OSPF路由: 二、查看3类LSA,由于R6不是ABR因此自身不会产生3类LSA 但是有区域间路由就可以看到3类LSA

SpringMVC之 文件上传和下载

1. 文件上传 1.1 前端注意事项 文件上传操作&#xff0c;前端的表单项需要如下三项设置&#xff1a; &#xff08;1&#xff09;input标签的type属性应设置为file&#xff0c;并且注意不要在input标签中设置value属性&#xff0c;因为这可能导致文件上传不成功&#xff1b; …

【LeetCode:1160. 拼写单词 + 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Spring Boot框架下的电影评论系统设计

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理电影评论网站的相关信息成为必然。开发合适…

【算法题】数组中只出现一次的两个数字

数组中只出现一次的两个数字 1. 题目2. 思路2.1 哈希表2.2 位运算 1. 题目 标签: 哈希表, 位运算. 2. 思路 2.1 哈希表 最简单的方法肯定是用哈希表, 遍历一遍数组找到只出现一次的两个数字. 相关代码就不贴了. 不过这样的话空间复杂度是 O(n), 太高了. 2.2 位运算 另一个…

多进程编程

使用父子进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半&#xff0c;子进程拷贝后一半&#xff0c;两个进程同时进行 #include<myhead.h>//获取拷贝文件的字节数 int get_file_len(const char* file1,const char* file2) {//以只读形式打开需要读取的文件int fd1 …

【最新华为OD机试E卷-支持在线评测】模拟目录管理 (200分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

Golang笔记_day08

Go面试题&#xff08;一&#xff09; 1、空切片 和 nil 切片 区别 空切片&#xff1a; 空切片是指长度和容量都为0的切片。它不包含任何元素&#xff0c;但仍然具有切片的容量属性。在Go语言中&#xff0c;可以使用内置的make函数创建一个空切片&#xff0c;例如&#xff1a;…

【思维导图】C语言—常见概念

hello&#xff0c;友友们&#xff0c;今天我们进入一个新的专栏——思维导图&#xff01; 思维导图帮助我们复习知识的同时建构出一个清晰的框架&#xff0c;我往后会不断更新各个专栏的思维导图&#xff0c;关注我&#xff0c;一起加油&#xff01; 今天我们回顾C语言中的常见…

【C++贪心】2712. 使所有字符相等的最小成本|1791

本文涉及知识点 C贪心 LeetCode2712. 使所有字符相等的最小成本 给你一个下标从 0 开始、长度为 n 的二进制字符串 s &#xff0c;你可以对其执行两种操作&#xff1a; 选中一个下标 i 并且反转从下标 0 到下标 i&#xff08;包括下标 0 和下标 i &#xff09;的所有字符&am…

【从零到一的笔试突破】——day1笔试巅峰(6道笔试题)ACM模式让笔试更有感觉

文章目录 数字统计&#xff08;数学模拟&#xff09;两个数组的交集&#xff08;哈希&#xff09;点击消除&#xff08;栈&#xff09;牛牛的快递&#xff08;模拟&#xff09;最小花费爬楼梯&#xff08;动态规划&#xff09;数组中两个字符串的最小距离&#xff08;滑动窗口o…

开放式蓝牙耳机排行榜第一名是哪款?推荐五款热门开放式耳机!

​在当今的耳机市场上&#xff0c;开放式耳机因其时尚的外观和舒适的佩戴体验&#xff0c;已经成为广受欢迎的日常选择。然而&#xff0c;面对众多品牌和参差不齐的质量&#xff0c;选择一款合适的开放式耳机确实让人头疼。作为一名拥有三年耳机评测经验的博主&#xff0c;同时…

238.除自身以外数组的乘积

目录 题目解法思路&#xff1a;步骤&#xff1a;代码实现&#xff1a;解释&#xff1a;示例&#xff1a;输出&#xff1a; 除nums[i]之外的其他数如何快速找到其索引&#xff0c;不用遍历的方法&#xff1f;前缀积是什么&#xff1f;为什么会想到前缀积和后缀积的方法&#xff…

ssm医院交互系统+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 摘要 I Abstract II 1绪论 1 1.1研究背景与意义 1 1.1.1研究背景 1 1.1.2研究意义 1 1.2国内外研究…