【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.pswp.cn/web/89139.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89139.shtml

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

相关文章

MVC HTML 帮助器

MVC HTML 帮助器 引言 MVC&#xff08;模型-视图-控制器&#xff09;是一种流行的软件架构模式&#xff0c;它将应用程序的逻辑分解为三个主要组件&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09…

linux下手工安装ollama0.9.6

1、去下载ollama的linux版的压缩包&#xff1a; 地址&#xff1a;https://github.com/ollama/ollama/releases2、上传到linux中。3、解压&#xff1a; tar zxvf ollama-linux-amd64-0.9.6.tgz -C /usr/local/4、如果仅仅是要手工执行&#xff0c;已经可以了&#xff1a; ollama…

kotlin布局交互

将 wrapContentSize() 方法链接到 Modifier 对象&#xff0c;然后传递 Alignment.Center 作为实参以将组件居中。Alignment.Center 会指定组件同时在水平和垂直方向上居中。 DiceWithButtonAndImage(modifier Modifier.fillMaxSize().wrapContentSize(Alignment.Center) )创建…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ToastNotification(推送通知)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— ToastNotification组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 Composition API&#xff08;<script s…

学习笔记(34):matplotlib绘制图表-房价数据分析与可视化

学习笔记(34):matplotlib绘制图表-房价数据分析与可视化分析房价分布情况&#xff0c;通过直方图、核密度估计和正态分布拟合来直观展示房价的分布特征&#xff0c;并进行统计检验。一、房价数据分析与可视化&#xff0c;代码分析1.1、导入必要的库import pandas as pd import …

前端三剑客之CSS

1. CSS 简介1) CSS 简述CSS&#xff0c;即层叠样式表&#xff08;英文全称&#xff1a;Cascading Style Sheets&#xff09;&#xff0c;是一种专门用于修饰 HTML 文档呈现样式的计算机语言。它的功能不仅限于静态美化网页&#xff0c;还能与各类脚本语言配合&#xff0c;实现对…

力扣25.7.11每日一题——无需开会的工作日

Description 这题类似合并区间&#xff0c;题意你们都能看懂吧…… Solution 这道题就需要用到合并区间的方法。 答案等于 daysdaysdays 减「有会议安排的天数」。 对左端点进行排序&#xff0c;计算有会议安排的天数&#xff0c;累加每个区间的长度&#xff0c;即为有会议…

每日一SQL 【销售分析 III】

文章目录问题案例执行顺序使用分组解决问题 案例 执行顺序 SQL 语句的执行顺序&#xff08;核心步骤&#xff09; 同一层级的select查询内部, 别名在整个 SELECT 计算完成前不生效 使用分组解决 select distinct s.product_id, Product.product_name from Sales sleft join …

轻轻松松带你进行-负载均衡LVS实战

8. LVS部署命令介绍 8.1 LVS软件相关信息 1.程序包&#xff1a;ipvsadm 2.Unit File: ipvsadm.service 3.主程序&#xff1a;/usr/sbin/ipvsadm 4.规则保存工具&#xff1a;/usr/sbin/ipvsadm-save 5.规则重载工具&#xff1a;/usr/sbin/ipvsadm-restore 6.配置文件&#xff1a…

C#.NET 集合框架详解

简介 C# 集合框架是处理数据集合的核心组件&#xff0c;位于 System.Collections 和 System.Collections.Generic 命名空间。它提供了多种数据结构来高效存储和操作数据。 集合框架概览 System.Collections (非泛型老版) └─ System.Collections.Generic (泛…

网络劫持对用户隐私安全的影响:一场无形的数据窃取危机

在互联网时代&#xff0c;网络劫持如同一把“隐形镰刀”&#xff0c;悄然威胁着用户的隐私安全。当我们在浏览网页、使用社交媒体或进行在线交易时&#xff0c;看似正常的网络连接背后&#xff0c;可能正暗藏着数据被窃取的风险。网络劫持通过多种技术手段干预用户与服务器的正…

使用 Helm 下载 Milvus 安装包(Chart)指南

目录 &#x1f4e6; 使用 Helm 下载 Milvus 安装包&#xff08;Chart&#xff09;指南 &#x1f6e0; 环境准备 &#x1f680; 第一步&#xff1a;添加 Milvus Helm 仓库 &#x1f50d; 第二步&#xff1a;查看可用版本 &#x1f4e5; 第三步&#xff1a;下载指定版本的 C…

EXTI 外部中断

目录 STM32中断 NVIC 中断控制器 NVIC优先级分组 EXTI 外部中断 AFIO 复用IO口 外部中断/事件控制器&#xff08;EXTI&#xff09;框图 STM32中断 在STM32微控制器中&#xff0c;共有68个可屏蔽中断通道&#xff0c;涵盖了多个外设&#xff0c;如外部中断&#xff08;EXT…

WebApplicationType.REACTIVE 的webSocket

通用请求体类 Data ApiModel("websocket请求消息") public class WebSocketRequest<T> implements Serializable {private static final long serialVersionUID 1L;/*** 参考&#xff1a;com.mcmcnet.gacne.basic.service.common.pojo.enumeration.screen.AiB…

降本增效!自动化UI测试平台TestComplete并行测试亮点

在跨平台自动化测试中&#xff0c;企业常面临设备投入高、串行测试耗时长、测试覆盖率难以兼顾的困境。自动化UI测试平台TestComplete的并行测试引擎提供了有效的解决方案&#xff1a;通过云端海量设备池与CI/CD深度集成&#xff0c;实现多平台、多浏览器并行测试&#xff0c;显…

云、实时、时序数据库混合应用:医疗数据管理的革新与展望(上)

云、实时、时序数据库混合应用:医疗数据管理的革新与展望 1、引言 1.1 研究背景与意义 在信息技术飞速发展的当下,医疗行业正经历着深刻的数字化转型。这一转型不仅是技术层面的革新,更是关乎医疗体系未来发展方向的深刻变革。从医疗服务的提供方式,到医疗管理的模式,再…

代码随想录算法训练营十六天|二叉树part06

LeetCode 530 二叉搜索树的最小绝对差 题目链接&#xff1a;530. 二叉搜索树的最小绝对差 - 力扣&#xff08;LeetCode&#xff09; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差…

自增主键为什么不是连续的?

前言 如果一个线程回滚&#xff0c;例如唯一键冲突的情况回滚时&#xff0c;回滚了sql语句&#xff0c;但是并没有把自增的值也-1。那么就会导致下一条插入的数据自增id出现了跳跃。 自增主键为什么不是连续的&#xff1f;前言执行时机为什么自增主键不是连续的为什么不回滚自…

OpenCV图像基本操作:读取、显示与保存

在图像处理项目中&#xff0c;图像的 读取&#xff08;imread&#xff09;、显示&#xff08;imshow&#xff09; 和 保存&#xff08;imwrite&#xff09; 是最基础也是最常用的三个操作。本文将详细介绍这三个函数的功能、用法和注意事项&#xff0c;并提供一个完整示例供读者…

.NET控制台应用程序中防止程序立即退出

在VB.NET控制台应用程序中防止程序立即退出&#xff0c;主要有以下几种常用方法&#xff0c;根据需求选择适合的方案&#xff1a; 方法1&#xff1a;等待用户输入&#xff08;推荐&#xff09; Module Module1Sub Main()Console.WriteLine("程序开始运行...") 这里是…