当前位置: 首页 > news >正文

【Linux】基本指令详解(二) 输入\输出重定向、一切皆文件、认识管道、man、cp、mv、echo、cat

文章目录

  • 一、man指令
  • 二、输入/输出重定向(echo、一切皆文件)
  • 三、cp指令
  • 四、mv指令
  • 五、cat指令
  • 六、more/less指令
  • 七、head/tail指令
  • 八、管道初见


一、man指令

Linux的指令有很多参数,我们不可能全记住,可以通过查看联机手册获取帮助。
man 指令就可以用来查看指令的信息,查看完毕按q退出。

在这里插入图片描述

man手册一共分为9个章节,指令后面不跟选项的话默认查第一章,如果第一章找不到,就会去第二章找,我们最主要了解前两个就行了,后面的几乎用不到。

在这里插入图片描述

直径章节查找指令如下:

在这里插入图片描述

二、输入/输出重定向(echo、一切皆文件)

这里小编想先补充一个理论:Linux系统下一切皆文件
下面小编会尝试以指令角度证明这个观点。
首先小编先介绍一个指令echo,它类似printf,它可以打印数据到显示器,只不过printf支持格式化输出:%d %c …

在这里插入图片描述

既然数据可以被打印到显示器上,那显示器就可以理解为一个文件,我们把数据写入显示器,同理,后面我们介绍从键盘读取数据时,键盘也可以理解成一个文件。
下面我们再来看一个指令:

在这里插入图片描述

这里我们echo指令如果不加后面的东西,会默认写入显示器文件,而这里却写入到了文本文件test.txt,这里其实发生了输出重定向,我们在后面加上“>"和文件名就会把输出文件由显示器文件更改到目标文件。(cat指令是打印文件的内容,后面会细讲)
输出重定向有两个特点:
1、若输出重定向的文件不存在,会自动新建一个文件。
2、在输出重定向写入文件前,会先将原始文件的内容清空再写入新内容。
上面我们已经展示了第一个特点的,下面是第二个特点的示例:

在这里插入图片描述

所以我们可以根据第二个特点清空文件:

在这里插入图片描述

如果是两个>>符号就就不会清空test,txt的原始数据,这就是追加重定向

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

输入重定向: 输入重定向相对更难理解,小编这里先画一幅图来方便大家理解:

在这里插入图片描述

cat可以类比scanf,当我们使用默认cat指令时,它会等待用户写入数据,用户再按回车时就会把用户输入的数据显示到显示器上,而我们输入重定向后它会直接从文件读数据然后显示。

在这里插入图片描述

这里有的读者朋友可能有疑问,cat test,txt 和 cat < test,txt 有什么区别,它们俩本质是不同的,这里小编不能细讲,因为牵涉到后面的知识,这里先埋个伏笔,等待后面小编以后更新的博客吧。

下面小编再以终端为例演示一下一切皆文件:(终端是Xshell登陆远端服务器时显示的界面,如下所示:)

在这里插入图片描述

一般终端文件会被放在 /dev/pts 目录下,我们现在打开了一个终端,该目录下其中的文件名为0的文件就是终端文件,ptms目前不用管,那我多打开几个终端是不是该目录的文件个数就会变多呢?
这是当然,示例如下:

在这里插入图片描述

在这里插入图片描述

那么我们已经知道终端是文件了,那我们拿到终端的文件路径后就可以输出重定向到对应的终端文件,那终端上就会显示我们输出的数据,这也可以进一步证明Linux下一切皆文件。

在这里插入图片描述

三、cp指令

(copy)
这是一条拷贝指令。可以拷贝普通文件也可以拷贝目录,拷贝目录因为要递归拷贝,所以最好加上选项 -rf 格式如下:
拷贝普通文件:cp src(原) dst(目标)
拷贝目录: cp -rf src(原) dst(目标)
这里的src 和 dst 可以是绝对路径,也可以是相对路径。

在这里插入图片描述

四、mv指令

(move)
mv 指令的格式和cp指令类似,但是它不需要加选项 -rf
(不同指令的设计者可能不同,所以无法统一标准),并且当它的目标文件或路径是否存在时该指令所代表的含义是不同的,细节如下:

  • 若目标文件在当前目录存在或目标路径存在时,相当于剪切并拷贝原文件

在这里插入图片描述

  • 若目标文件或目标路径在当前目录不存在或目标路径不存在时,相当于对原文件或原目录重命名

在这里插入图片描述

当然剪切与重命名可以同时发生,所以我上面的描述不一定准确,mv指令最终的行为都取决于你的逻辑。

在这里插入图片描述

五、cat指令

该指令用来查看文件的内容,和ls指令用来查看文件属性相对应,它适合查看小文件的文件内容,一但内容过长就会导致刷屏,查看长文件推荐使用more和less,下一组指令就会讲解。
它不能用来查看目录的内容。

在这里插入图片描述

- n选项:打印时所有行编号

在这里插入图片描述

- b选项:打印时对非空行编号

在这里插入图片描述

- s 打印时将多行空行改为一行

在这里插入图片描述

这里还有一个有趣的指令,把cat倒着写tac,这个指令可以把文件内容倒序打印出来。

在这里插入图片描述

六、more/less指令

这两条指令适合用来查看大文件(如日志文件),less指令实际上最常用。

more打印完一整个屏幕后会停下来,我们按回车键就会继续往下打印,它只支持回车键向下翻,不支持上下自由查看,所以不做推荐,重点了解less指令。

在这里插入图片描述

less打印完一整个屏幕后也会停下来,只不过它支持上下方向键自由查看文件内容,它还支持查找功能,输入 /xxx 后按回车就可以向下查找到第一个带xxx的数字,输入 ?xxx 后按回车就可以向上查找到第一个带xxx的数字,再按n就可以跳转到下一个带xxx的数字。 选项 -i 忽略搜索时的大小写,选项 -N显示每行的行号。查看完毕按q退出。

七、head/tail指令

head/tail指令用来查看文件的前x行。

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

八、管道初见

如果我们要提取大文件的中间部分该怎么做呢?首先linux没有直接提供能访问中间部分的指令,我们要实现提起中间部分需要借助head和tall指令实现,比如我们要提取test.c的5000行到5010行,先head提取前5011行到一个临时文件,然后再tail这个文件的后11行就成功提取到我们想要的了。

在这里插入图片描述

这样虽然能实现我们想要的结果,但是这种左手倒右手的方式效率太低了,这里就要引入一个概念,管道
在linux系统中,存在一种可以用来连接多条指令执行结果的语法特征,叫做管道,管道也是一种文件,只不过它是一种内存级文件,不会存在磁盘中。
管道在命令行中就是一个 | (用来集连指令的竖画线)
管道的原理我们目前还无法理解,但是可以学会理解并使用它,首先总结一下现实世界管道的特征,它一定有入口和出口,并且是用来传输资源的,如石油,自来水,而在计算机世界里,数据是它的资源。下面是一个利用管道的例子:

在这里插入图片描述

所以管道就可以将我们之前所介绍的工具链指令集连起来,实现更多更复杂的功能。

以上就是小编分享的全部内容了,如果觉得不错还请留下免费的赞和收藏
如果有建议欢迎通过评论区或私信留言,感谢您的大力支持。
一键三连好运连连哦~~

在这里插入图片描述

http://www.xdnf.cn/news/1132237.html

相关文章:

  • LVS集群搭建
  • OpenCV稠密光流估计的一个类cv::optflow::DenseRLOFOpticalFlow
  • [AI-video] 字幕服务 | 视频素材服务 | 视频生成服务
  • 智能电网时代:双向WiFi电表在海外家庭能源中的战略价值
  • C++---emplace_back与push_back
  • 网络爬虫的相关知识和操作
  • lazyvim恢复gt键
  • 项目流程管理系统使用建议:推荐13款
  • 【27】MFC入门到精通——MFC 修改用户界面登录IP IP Address Control
  • DHTMLX Suite 9.2 重磅发布:支持历史记录、类Excel交互、剪贴板、拖放增强等多项升级
  • AWS IAM 最佳安全实践通用指南
  • 随机链表的复制数据结构oj题(力口138)
  • HTML进阶
  • Golang学习之常见开发陷阱完全手册
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘tkinter’问题
  • C#语法基础总结(超级全面)
  • 16路串口光纤通信FPGA项目实现指南 - 第二部分(下)
  • uniapp写好的弹窗组件
  • Maven入门指南:生命周期、阶段和执行顺序详解
  • Qt 将触摸事件转换为鼠标事件(Qt4和Qt5及以上版本)
  • webpack和vite对比
  • Django基础(三)———模板
  • 大语言模型(LLM)训练的教师强制(Teacher Forcing)方法
  • django在线音乐数据采集-22647
  • Anspire Open暑期上新季 - 第二弹Anspire Browser Agent,开启云端自动化新纪元
  • 【RTSP从零实践】13、TCP传输AAC格式RTP包(RTP_over_TCP)的RTSP服务器(附带源码)
  • Node.js Process Events 深入全面讲解
  • 【AI智能体】Dify 基于知识库搭建智能客服问答应用详解
  • 壹脉销客AI电子名片源码核心架构
  • SSM框架学习——day3