从0开始linux(3)——如何读写文件

news2024/11/20 10:31:37

欢迎来到博主的专栏——从0开始linux
博主ID:代码小豪


文章目录

    • 创建普通文件
    • 用文本编辑器nano写入文件
    • 如何读取文件
      • cat命令
      • less命令
      • head和tail

我们前面已经了解和如何操作文件,但是目前认识的文件类型分为两类,一类是目录文件、另一类是普通文件。我们已经清楚了目录文件如何创建,删除。但是我们似乎还不太了解普通文件该如何操作。

创建普通文件

我们通常会用touch命令创建一个新的普通文件,但是touch命令实际上的作用远不止创建文件,touch命令的作用是修改文件时间或创建新文件。

而一个文件的时间可分为3种

  1. 修改时间(mtime) 最近该文件的文件内容修改的时间
  2. 状态时间(ctime) 当文件的状态变更时,就会更改这个时间
  3. 读取时间(atime) 上一次读取该文件的时间

我们可以通过一下指令来查看文件的某种时间

ls -l --time=atime #查看文件的读取实践
ls -l --time=ctime #查看文件的状态时间
ls -l #默认查看文件的修改时间

那么如果某些文件的时间错误了,那么我们就可以用touch将文件的时间修改过来。

touch [option] filename

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

可以发现touch将test的时间修改了。如果touch’要操作的文件不存在,那么就会创建一个新的空文件。

用文本编辑器nano写入文件

我们尝试用touch命令创建一个新的空文件test1。

现在我们尝试使用文本编辑器向test1写入数据。首先我们要下载一个nano。

yum -y install nano

nano的使用方式非常简单,我们直接用nano,再加上要编辑的文件名,就能打开这个文件进行编辑了。

nano filename

比如我们使用nano编辑test1,这次我们来向test1写入一句hello world。

nano test1

在这里插入图片描述
出编辑文本外。nano的操作是通过组合按键来进行的。nano常用的组合按键有以下几种

组合按键作用
ctrl+g查看在线文档
ctrl+x退出nano程序,并询问你是否保存文件
ctrl+O保存文件

当编辑好hello world后,我们按下ctrl+x退出文件,输入y确定保存

如何读取文件

我们前面已经用nano编辑好了一个文件,但是我们要如何才能读取这个文件呢?没关系,接下来介绍4个命令:(1)cat,(2)less,(3)head,(4)tail

cat命令

哟,原来linux还藏着一直猫猫啊。实际上是concatenate的缩写,主要功能是将文件中的信息一股脑的打印在屏幕上面,比如上面写好的test1文件,我们就可以用cat指令读取

cat [option] filename
#-n:列出行号
#-b:仅对非空白行列出行号

比如:打印test1,并列出行号

cat -n test1

如果说这个行号的效果不明显,我们可以在test1当中多输入一些文本信息。
在这里插入图片描述

[root@hecs-144165 test_05.19]$ cat -n test1#-n 会打印空白行号
     1	hello world
     2	
     3	aaaaaaaaa
     4	
     5	bbbbbbbbb
[root@hecs-144165 test_05.19]$ cat -b test1#-b则不会
     1	hello world

     2	aaaaaaaaa

     3	bbbbbbbbb

tac命令,tac命令与cat命令是倒着来的,实际上他们的作用的也是倒着来,不信?不行就用tac命令读取一下test1试试。

[root@hecs-144165 test_05.19]$ tac test1
bbbbbbbbb

aaaaaaaaa

hello world

可以发现tac是倒着打印的。这里拿出一个很形象的图。

在这里插入图片描述

但是如果文件的内容非常多,超过50行,那么cat一次甩出这么输出信息肯定是看不过来的,因此我们下面介绍less来查看文件。

less命令

less命令可以控制屏幕上的输出信息,比如我们创建一个拥有1w多行文本信息的文件text。下面请大家输入这行指令。

cnt=1; while [ $cnt -le 10000 ] ; do echo "hello $cnt">>text; let cnt++;done

我在本博客中不解释这行命令的原理,此命令会在text文件当中写10000行文本信息,我们先用cat查看一下

cat -n text

可以发现,这个文本信息在屏幕上的滚动速度太快了,我们很难看到前面写了什么信息,因此cat确实不适合读取较多信息的文件。我们使用less可以让控制文件的输出信息,控制读取的速度。

less filename

[root@hecs-144165 test_05.19]# less text


hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
hello 10
hello 11
hello 12
hello 13
hello 14
hello 15
hello 16
hello 17
hello 18
hello 19
hello 20
hello 21
hello 22
hello 23
hello 24
hello 25
hello 26
hello 27
hello 28
hello 29
hello 30
hello 31
hello 32
hello 33
hello 34
hello 35
hello 36
hello 37
hello 38
: #less会在这里等待你输入命令

less可以执行的命令有

按键执行效果
空格键向下翻动一页
[pagedown]向下翻动一页
[pageup]向上翻动一页
enter向下查看一行
/string查找关键字
q离开less这个程序

head和tail

如果我们只想读取文件开头的几行信息或者只想读取末尾的几行信息该怎么办呢?此时我们就需要用到head和tail命令了

head命令。

head [-nnumber] filename

head命令默认读取文件的前10行信息。head命令的选项只有-n,因此我就不用option代替了。
-n后面接数字,表示想要读取头n行的文件,当然,head还允许我们忽略n,直接使用数字

head text #默认读取前10行的信息
head -n20 text#读取前20行的信息
head -20 text#省略n

tail命令

tail [-n number] filename

tail默认读取文件的末尾10行信息。-n和-number的用法可以参考上面的head

tail text #默认读取末尾10行的信息
tail -n20 text#读取末尾20行的信息
tail -20 text#省略n

ok,现在来说说这么一个高端点的用法。我们不想要看前面的信息,我也不想看后面的信息,我想看5000,-5020行之间的信息,请问我该如何操作?

这个操作并不麻烦,如果我们想要看第5000-5020行的信息,那么首先我们先用head查看前5020行的信息,然后再用tail查看后21行的信息。这样子我们就能看到5000-5020行之间的信息了。

嘶,这个操作似乎有点合理,但是我不知道什么选项可以做到这种效果啊。当然了,我们不需要什么选项,我们只需要用到一个特殊的东西,管道(|)。

管道(|),这个符号代表的意思是:将前面命令输出的信息,通过管道,交给后面的命令处理,因此,我们应该写出这样的命令。

[root@hecs-144165 test_05.19]# head -5020 text | tail -21

所以,head -5020 text会将前5020行的信息取出来,然后通过管道交给后面tail处理,而tail选择将这段信息的末尾21行打印出来,于是就打印出了第5000-5020行的信息。
在这里插入图片描述

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

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

相关文章

PDF 生成在左侧目录栏目录信息的目录 点击跳转

pdf 导出的内容 是itextpdf 写的 目录信息 得用 pdfbox 里的 PDDocumentOutline <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.4.3</version></dependency><dependency&g…

[手游] 正义对决3

《正义对决3联机版》是一款多人联机的竞技射击游戏&#xff0c;玩家将扮演警方和强盗两个不同的势力&#xff0c;展开一场在庞大都市中的正义之战。强盗一方将在城市内抢劫各处并藏匿&#xff0c;而警方则必须将所有罪犯绳之以法。游戏中&#xff0c;玩家可自由购买众多武器装备…

OpenCASCADE Draw模块TKDraw项目问题修改

1.问题 在调试Draw模块代码时&#xff0c;出现一个小问题&#xff0c;导致无法正常运行 如下&#xff1a; 2.代码跟踪 通过代码跟踪发现时一个数组越界问题&#xff0c;在此处添加了判断处理&#xff0c;程序可以正常调试

批量复制文件智能删除已复制,轻松管理文件新体验!让您的文件整理更高效无忧

在信息爆炸的时代&#xff0c;文件管理无疑成为我们日常生活和工作中不可或缺的一部分。面对堆积如山的文件&#xff0c;我们时常陷入无尽的复制、粘贴、删除循环中&#xff0c;不仅耗时耗力&#xff0c;还容易出错。但今天&#xff0c;我要向您推荐一款颠覆传统的文件管理工具…

手撕算法|斯坦福大学教授用60页PPT搞定了八大神经网络

人工智能领域深度学习的八大神经网络常见的是以下几种 1.卷积神经网络&#xff08;CNN&#xff09;&#xff1a; 卷积神经网络是用于图像和空间数据处理的神经网络&#xff0c;通过卷积层和池化层来捕捉图像的局部特征&#xff0c;广泛应用于图像分类、物体检测等领域。 2.循…

Convolutional Occupancy Networks【ECCV】

论文&#xff1a;https://arxiv.org/pdf/2003.04618 代码&#xff1a;GitHub - autonomousvision/convolutional_occupancy_networks: [ECCV20] Convolutional Occupancy Networks 图 1&#xff1a;卷积占据网络。传统的隐式模型 (a) 由于其全连接网络结构&#xff0c;表现能力…

真拿AI赚到钱的人,不在朋友圈里

1 最近有张两大AI巨头对比的梗图给我看乐了&#xff0c;玩儿AI的还在做产品&#xff0c;玩儿焦虑的已经在数钱了。 这也是在做AI&#xff0c;只不过是唉声叹气的ai。 要我说&#xff0c;现在缺的根本不是AI&#xff0c;而是【有用的AI】。 恩格斯老师说过一句话&#xff1a…

基于Python图像增强算法:低光增强+图像修复+超分辨率重建

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在图像处理与计算机视觉领域&#xff0c;图像增强技术是提高图像质量和可用性的重要手段。在实…

揭秘!亚马逊、Vinted卖家如何借助自养号测评实现爆单?

​作为一名跨境卖家&#xff0c;你一定梦想着能够在亚马逊上实现爆单&#xff0c;让产品火爆销售。下面就分享五个秘诀&#xff0c;帮助你实现这个梦想&#xff1a; 1. 优质产品&#xff1a;首先&#xff0c;确保你的产品质量优秀&#xff0c;能够满足消费者的需求。品质好的产…

数据结构和算法基础(一)

数据结构——基本概念 数据&#xff1a;数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 数据元素、数据项&#xff1a;数据元素是数据的基本单位&#xff0c;通常作为…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第三周) - 词嵌入

词嵌入 1. 词嵌入2. Word2Vec3. 其他词嵌入方法 3.1. GloVe3.2. FastText3.3. 动态词向量 4. 词嵌入中的偏见5. 词嵌入的应用 5.1. 深度平均网络 1. 词嵌入 词嵌入(Word Embeddings)是一种将单词映射到连续向量空间中的技术&#xff0c;用于表示单词的语义信息。相比于传统的…

免费、开源、好用的 SQL 客户端合集

免费、开源、好用的 SQL 客户端合集 分类 编程技术 0、SQL Chat SQL Chat 是 2023 年 3 月推出的新型 SQL 客户端&#xff0c;它将数据库管理带入了基于聊天的新时代。 SQL Chat 由 ChatGPT 驱动&#xff0c;能够帮你编写和润色 SQL 语句&#xff0c;让数据库操作变得更加智…

华为数通 HCIP-Datacom(H12-821)题库

最新 HCIP-Datacom&#xff08;H12-821&#xff09;完整题库请扫描上方二维码访问&#xff0c;持续更新中。 BGP路由的Update消息中可不包含以下哪些属性&#xff1f; A、Local Preference B、AS Path C、MED D、Origin 答案&#xff1a;AC 解析&#xff1a;as-path和ori…

缩进在编程中的重要性及正确使用方法

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 前言 缩进不当引发的问题 缩进的正确使用方法 缩进错误的调试与修复 总结 前言 在编程世…

vue2快速安装环境,从0-1创建vue2项目教程

vue2快速安装环境&#xff0c;从0-1创建vue2项目教程(windows) 一、node下载 1.如何查看node版本和npm版本 二、npm安装脚手架 1.注意事项 三、vue2选项解读 四、运行脚手架 一、node下载 1、(node.js中文网) 下载长期稳定版本就行 解释下node.js和npm的关系? 想象你在…

【golang】内存对齐

什么是内存对齐 在访问特定类型变量的时候通常在特定的内存地址访问&#xff0c;这就需要对这些数据在内存中存放的位置有限制&#xff0c;各种类型数据按照一定的规则在空间上排列&#xff0c;而不是顺序的一个接一个的排放&#xff0c;这就是对齐。 内存对齐是编译器的管辖…

安装harbor出现问题: Running 1/1 ✘ Network harbor_harbor Error

安装harbor出现问题&#xff1a; [] Running 1/1 ✘ Network harbor_harbor Error 0.2s failed to create network harbor_harbor: Error response from daemon: Fa…

Unity射击游戏开发教程:(25)创建具有视差效果的滚动背景

unity设计游戏gif 在这篇文章中,我将介绍如何制作具有视差效果的滚动背景。这无疑会让玩家感觉自己在前进,环境也更加充满活力和有趣。 我需要找到一些背景图像,这些图像提供了可以轻松循环的大图像以及可以分层以提供背景深度的其他图像。我检查精灵图像的一个地方是 OpenG…

【教程】Linux 安装 kkFileView 文档在线预览项目 及优化

【教程】Linux 安装 kkFileView 文档在线预览项目 官网 kkFileView - 在线文件预览 (keking.cn) 安装包 可以直接下载成品 也可以下载source 源码 自己编译 kkFileView 发行版 - Gitee.com 打开IDEA 然后先clear 再install 然后在 file-online-preview\server\target 目录…

MiniCPM-Llama3-V-2_5-int4

MiniCPM-Llama3-V-2_5-int4大模型部署使用环境&#xff1a; python3.8cuda11.8其它要求&#xff0c;按照安装文档要求下载即可 我是在算力平台用4090跑的&#xff0c; GPU 显存&#xff08;8GB&#xff09;可以部署推理 int4 量化版本&#xff0c;如果推理非量化版本需要更高显…