Linux的基本指令(3)

目录

制作小文件&查看

nano指令

cat指令

tac指令

制作大文件&查看

一切皆文件

echo指令

> 输出重定向 

以写"w"的形式打开文件

以追加"a"的形式打开文件 

cat指令

< 输入重定向

创建big.txt

more指令

less指令(推荐使用)

head指令

tail指令

wc指令 

管道


前面博客我们学习关于文件属性的操作:增删查改。如何看待这么多的指令,记不住。指令不需要刻意记忆,补充知识才是比较重要的。

制作小文件&查看

如何快速在Linux上写代码

【1】我们使用【nano指令】,nano是Linux相当于记事本的作用的指令。

如果没有nano,请安装:yum insall -y nano 安装和卸载的本质都是将这个指令拷贝/删除到这个路径下。如果你没有某个指令,都可以yum install -y 指令 安装一下。(若有不同上网搜索一下)

【2】我们使用【cat指令】去查看文件的内容。

 【3】我们使用【gcc指令】去编译和【./可执行程序】去运行。

如何快速写出代码?制作小文件?

nano 源文件----->ctrl+x---->y----->回车(写代码)--->gcc 源文件(编译)---->./可执行程序

nano指令

创建一个文件(类似记事本)可以写入数据,crtl+x退出。 

 

cat指令

语法:cat [选项][文件]
功能:查看目标文件的内容,本质是显示文件内容

常用选项:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

tac指令

与cat相反除外,无选项,把内容倒置打印出来。

cat/tac都是去查看一些小文件内容,ls ll是去查看文件/目录的属性。上面我们也制作了一个小文件并且查看了,那我们如何制作一个大文件,并且查看呢?

制作大文件&查看

以下操作都是以【文件】为主体。角度都是站在【显示器】角度

一切皆文件

一切皆文件是Linux的基本哲学之一。普通文件、目录、字符设备、块设备和网络设备(套接字)等都被当做文件来对待。虽然他们类型不同,但是linux系统为它们提供了一套统一的操作接口。Linux可以以统一的方式来进行文件/设备的访问!

为什么说Linux下“一切皆文件”? - 知乎 (zhihu.com)

Linux 下 “一切皆文件” 思想的本质和好处在哪里?与 Windows 下的文件管理思想有啥差别? - 知乎 (zhihu.com)

Linux中的理念"一切皆文件",对于任何文件来讲,操作文件内容,当前无非就是【读】和【写】,所以:向显示器设备写入文件,就是向显示器文件,向显示器打印数据,即显示器文件写入数据。

包括我们所看到的终端也是文件! 👇证明

终端文件的路径:/dev/pts/ 

首先我们创建了【多个终端】 

 接着我们用echo 字符串 > 终端文件   把数据输入终端文件

至此,我们可以证明终端是一个文件。

echo指令

echo指令在屏幕上打印了"hello Linux”。在Linux当中一切皆文件,那么显示屏也是显示屏文件。所以可以说 echo是向显示屏这个文件,输入字符串。

> 输出重定向 

此时我们这样写,相当于把写入显示器文件的字符串,写入文件 log.txt !把本来应该显示到显示器上的数据,显示到了文件中!

这个动作被称作:输出重定向

写作:>

 当然我们也可以直接重定向!

以写"w"的形式打开文件

>输出重定向-----以写的形式打开文件写入数据

  • 如果文件不存在,创建一个空文件,写入数据(可以不写只创建)
  • 如果文件存在,清空数据,写入数据(可以不写只创建)

我们发现我们每次用echo写入数据都是,清空了原文件,重新写入。

在我们学习C语言进阶阶段,我们学习过文件以写的形式打开,并写入数据,这里复习一下。

C语言之文件操作篇(1)-CSDN博客

C语言之文件操作篇(2)-CSDN博客

 所以重定向和上面代码是一样的,打开文件,文件不存在就创建,存在就清空。

以追加"a"的形式打开文件 

>> 输出追加重定向-----以追加的形式打开文件写入数据(>>之间不能有空格)

  • 如果文件不存在,创建一个空文件,写入数据(可以不写只创建)
  • 如果文件存在,写入数据(如果有数据,就追加数据)

 

cat指令

我们一般都是从键盘获取数据,一切皆文件,那么ca也可以从【键盘文件】获取数据,输入【显示器文件】。

< 输入重定向

当然,我们也可以从【普通文件】获取数据输入【显示器文件】!此刻我们将【键盘文件】输入【显示器】重定向为【普通文件】获取数据输入【显示器文件】!

这个动作被称为:输入重定向

写作:<

特别提醒:cat log.txt 和cat < log.txt是区别很大的🆗!不一样!

创建big.txt

有了上面知识的铺垫,终于我们来创建一个大文件。

 i=1; while [ $i -le 1000 ]; do echo "hello Linux $i"; let i++; done > big.txt

我们发现用cat 去查看这个大文件是非常不方便的,所以接下来我们学习一些查看大文件的指令! 

 

more指令

语法:more [选项][文件]
功能:more命令,功能类似 cat。

  • cat一次性全部把文件的数据全部打印出来,
  • more首先会打印出占满屏幕的数据,按下Enter(回车下翻)之后,逐行打印。(可以逐行查看)。存在弊端:就是不能上下查看,只能回车下翻逐行查看
  • more会特定查看。输入/关键字,就会出现关键字所对应的数据,以及上下文的数据。

常用选项:

  • -n 对输出的所有行编号
  • q 退出more

 

 

上面的more是存在只能下翻的弊端,那Linux就引入了我们的less指令。 

less指令(推荐使用)

  • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
  • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
  • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

语法: less [参数] 文件
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。

  • 上下键即可上下翻动,q即可退出。

 

现在可以上下翻动大文件的数据查看,也可以逐行特定查看,那么我们想指定查看前几行或后几行,该用下面指令了。

head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

语法:head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行

选项:

  • -n<行数> 显示的行数

 

tail指令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。

语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:

  • -f 循环读取
  • -n<行数> 显示行数

 

wc指令 

统计文本行数

wc -l big.txt

 

管道

在Linux中的管道类似生活中的天然气/石油/自来水管道。Linux的管道是资源传输的,运输数据。

管道是用来级联多条指令的

 

现在我们可以less上下翻动查看数据。程序(大文件)在运行的时候会产生很多记录信息,如果发生错误,我们需要用日志来排查(大文件)/var/log/messages,现在我们可以查看日志的tail head头尾部分如果我们想要查看big.txt的中间数据呢? 

  • 方法1

head -n50 test > tmp #将前50行装入临时文件tmp
tail -n1 tmp #得到中建行

  • 方法2

head -n50 test | tail -n1

  • command > filename :输出重定向
  • command >> filename :输出追加重定向
  • command < filename :输入重定向
  • 快捷键:输入指令出,只有上下键即可翻看历史指令了🆗

✔✔✔✔✔最后,感谢大家的阅读,若有错误和不足,欢迎指正!

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

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

相关文章

Docker—更新应用程序

在本部分中&#xff0c;你将更新应用程序和映像。您还将了解如何停止和移除容器。 一、更新源代码 在以下步骤中&#xff0c;当您没有任何待办事项列表项时&#xff0c;您将把“空文本”更改为“您还没有待办事项&#xff01;在上面添加一个&#xff01;” 1、在src/static/…

HTML5 的全局属性 hidden 和 display:none 的关系

目录 1&#xff0c;hidden 和 display:none 的关系2&#xff0c;其他隐藏元素的方式2.1&#xff0c;语意上的隐藏2.2&#xff0c;视觉上的隐藏 1&#xff0c;hidden 和 display:none 的关系 hidden - MDN 参考 一句话总结&#xff1a;hidden 是HTML5 新增的全局布尔属性&…

数据挖掘之时间序列分析

一、 概念 时间序列&#xff08;Time Series&#xff09; 时间序列是指同一统计指标的数值按其发生的时间先后顺序排列而成的数列&#xff08;是均匀时间间隔上的观测值序列&#xff09;。 时间序列分析的主要目的是根据已有的历史数据对未来进行预测。 时间序列分析主要包…

Java数据结构之《构造哈夫曼树》题目

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等(偏难理解)的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题…

unity学习笔记17

一、动画组件 Animation Animation组件是一种更传统的动画系统&#xff0c;它使用关键帧动画。你可以通过手动录制物体在时间轴上的变换来创建动画。 一些重要的属性&#xff1a; 1. 动画&#xff08;Animation&#xff09;&#xff1a; 类型&#xff1a; Animation组件允许…

七、Lua字符串

文章目录 一、字符串&#xff08;一&#xff09;单引号间的一串字符&#xff08;二&#xff09;local str "Hello, "&#xff08;三&#xff09;[[ 与 ]] 间的一串字符&#xff08;四&#xff09;例子 二、字符串长度计算&#xff08;一&#xff09;string.len&…

2023年第十二届数学建模国际赛小美赛B题工业表面缺陷检测求解分析

2023年第十二届数学建模国际赛小美赛 B题 工业表面缺陷检测 原题再现&#xff1a; 金属或塑料制品的表面缺陷不仅影响产品的外观&#xff0c;还可能对产品的性能或耐久性造成严重损害。自动表面异常检测已经成为一个有趣而有前景的研究领域&#xff0c;对视觉检测的应用领域有…

TimiGP细胞互作算法

介绍&#xff1a; 通过推断细胞间相互作用和免疫细胞预后价值来研究时间的计算方法。我们的方法将存活统计数据与批量转录组学图谱相结合&#xff0c;以构建免疫细胞-细胞相互作用网络&#xff0c;其中边缘&#xff08;例如&#xff0c;X → Y&#xff09;表明高 X/Y 比值与良…

数据结构之堆排序以及Top-k问题详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力 目录 1.前言 2.堆排序 2.1降序排序 2.2时间复杂…

C++ 抽象类和接口 详解

目录 0 引言1 抽象类2 接口2.1 Java与C接口的区别 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;C专栏&#x1f4a5; 标题&#xff1a;C 抽象类和接口 详解❣️ 寄语&#xff1a;书到用时方恨少&#xff0c;事非经过不知难&#xff01;&#x1f…

Python的模块与库,及if __name__ == ‘__main__语句【侯小啾python领航班系列(二十四)】

Python的模块与库,及if name == __main__语句【侯小啾python领航班系列(二十四)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

【拓展】Loguru:更为优雅、简洁的Python 日志管理模块

目录 一、简单介绍 二、安装与简单使用 ​三、常见用法 3.1 显示格式 3.2 写入文件 3.3 json日志 3.4 日志绕接 3.5 并发安全 四、高级用法 4.1 接管标准日志logging 4.2 输出日志到网络服务器 4.2.1 自定义日志服务器 ​4.2.2 第三方库日志服务器 4.3 与pytest结…

LED屏幕信息安全如何预防?

随着科技的不断进步&#xff0c;LED屏幕在我们生活和工作中扮演着越来越重要的角色&#xff0c;然而&#xff0c;随之而来的是信息安全面临的挑战。为了有效预防LED屏幕信息的泄露和被盗取&#xff0c;我们需要采取一系列的安全措施。以下是一些建议&#xff1a; 物理安全措施&…

长度最小的子数组(Java详解)

目录 题目描述 题解 思路分析 暴力枚举代码 滑动窗口代码 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条…

单片机学习11——矩阵键盘

矩阵键盘&#xff1a; 这个矩阵键盘可以接到P0、P1、P2、P3都是可以的。 使用矩阵键盘是能节省单片机的IO口。 P3.0 P3.1 P3.2 P3.3 称之为行号。 P3.4 P3.5 P3.6 P3.7 称之为列号。 矩阵键盘检测原理&#xff1a; 1、检查是否有键按下&#xff1b; 2、键的抖动处理&#xf…

Redis的安装

本文采用原生的方式安装Redis&#xff0c;Redis的版本为5.0.5 安装 下载 下载网站&#xff1a;https://download.redis.io/releases/ wget http://download.redis.io/releases/redis-5.0.5.tar.gz解压 tar -zxvf redis-5.0.5.tar.gz进入redis目录 cd redis-5.0.5执行编译…

面试--各种场景问题总结

1.在开发过程中&#xff0c;你是如何保证机票系统的正常运行的&#xff1f; 用户、测试、监控和日志、安全措施、数据备份、系统设计、需求分析 2.在机票系统开发过程中&#xff0c;你最有成就的事情&#xff0c;为什么&#xff1f; 用户体验感、高可用和稳定性、客户满意度、系…

IdleStateHandler 心跳机制源码详解

优质博文&#xff1a;IT-BLOG-CN 一、心跳机制 Netty支持心跳机制&#xff0c;可以检测远程服务端是否存活或者活跃。心跳是在TCP长连接中&#xff0c;客户端和服务端定时向对方发送数据包通知对方自己还在线&#xff0c;保证连接的有效性的一种机制。在服务器和客户端之间一…

vscode非常好用的扩展插件

1、Code Spell Checker&#xff1a; 帮助我们检查单词是否拼写错误&#xff0c;检查规则遵循驼峰拼写法。 2、Color Highlight&#xff1a;高亮显示颜色值 3、Svg Preview&#xff1a; 实时预览svg图片&#xff08;修改width、height、fill等值来实时查看效果&#xff09; 4、…

人工智能(pytorch)搭建模型21-基于pytorch搭建卷积神经网络VoVNetV2模型,并利用简单数据进行快速训练

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能(pytorch)搭建模型21-基于pytorch搭建卷积神经网络VoVNetV2模型&#xff0c;并利用简单数据进行快速训练。VoVNetV2模型是计算机视觉领域的一个重要研究成果&#xff0c;它采用了Voice of Visual Residual&…