linux基本指令之文件操作

news2024/11/7 20:41:03

前言

这次博客的主要目的就是要解决如何快速查看或查找文件,以及讲解文件的一些属性。本次博客还是以基本指令为主来理解linux对文件的操作。

linux下输入输出流的理解

在linux中,我们要对文件进行输入输出时,一般会怎么做呢?

可以通过printf命令,(这个是linux系统命令,不是c语言的函数),来把字符串打印在linux终端上,那么它是怎么做到的?

可以通过外设来理解,我们要输入就必须要键盘,要看见输出就必须要有显示器。而在c语言中默认有文件被打开,因为在系统中外设也是文件。

extern FILE* stdin

extern FILE* stdout

extern FILE* stderr

这几个文件分别是标准输入,标准输出,标准错误。

在linux同样也存在,这三个流,它们是系统默认打开的流。

所以我们在把内容通过键盘输入,屏幕(默认是终端)输出时,要有这几个设备文件打开。所以这里再一次证明:linux下一切皆文件。

当然,终端也是一个文件:这个在重定向后会实践一波。

重定向

使用重定向可以改变默认输入输出流的方向。

直接来

输出重定向

使用echo指令可以把字符串输出到终端上。它默认是写入终端的。通过重定向可以把内容写入文件中:

可以把内容重定向写入test文件中,通过cat指令把文件内容写出。

也可以通过把内容重定向写入不存在的文件中从而创建文件。

这样也可以创建一个文件。

如果我们对一个已经存在的有内容的文件再次重定向,那么就会把原来的内容清空,并且重新写入

追加重定向

注意在追加是会自动添加换行的。

输入重定向

输入重定向就是改变从默认位置读入信息。

使用cat可以进行输入重定向

这两种其实不一样,上面的是输入重定向。

接下来利用终端也是一个文件来进行终端间的重定向:

在/dev/pts中有一个字符文件,它就代表终端,以c开头的文件就是字符文件,此时有两个一个是0

一个是1.

在一个0终端下个1输出内容,把内容重定向给终端1,由此终端其实也是一个文件。

当然我们可以使用代码来验证这一点.

·在vim里面编辑这些代码,使用gcc编译。

这样在就可以在终端0写代码,在终端1中显示,这也是重定向。也肯定了终端就是文件。

文件的基本分类

linux下文件可以分为以下几类: 

普通文件:以-开头,可以后很多的后缀,a.txt  a.c  a.cpp  a.mp3  a.mp4 a.npj……

 

后缀无法作为linux区分文件的标准,所以普通文件的运用是最广的。但是编译器要看是不是.c文件,不然编译不过。所以后缀名要写对。

目录文件:以d开头,是一个目录。

这些全部都是目录文件。

字符文件:以c开头,键盘,显示器,终端都是字符文件,输入的数据都有顺序性。

块设备文件:以b开头磁盘

这里是一个磁盘,相当于windos系统的c盘d盘。不要乱搞,否者就相当于c盘的信息被改,那么整个系统可能会崩。

连接文件:以l开头

一般在库里面,以l开头,主要是用于编译时把各个.o文件连接起来。 

管道文件:以p开头

这里的管道文件暂时不做讲解。

日志的查看与查找

介绍日志的作用:一般而言对于一个系统来说会出错所以说这时候就需要查看日志来判断错误在哪?这里还是以Ubuntu为例去查看日志文件。

在 Ubuntu 中,不同类型的日志文件位于不同的位置:

系统日志

  • /var/log/syslog:包含系统的一般日志信息,包括内核消息、系统启动和关闭信息等。
  • /var/log/auth.log:记录用户认证相关的日志,如登录尝试、密码错误等。
  • /var/log/kern.log:内核日志,记录内核产生的消息。

一般就这几个,可以都看看,就是还看不懂,哈哈哈哈哈。

只需要cat /var/log/xxxxxx就可以查看不同的日志。

接下来来看看命令:

more

使用s或者回车往下看,并且不回显。

只能一直往下看,很low,一般不用。按下q退出。

这里按下 /+字符串 可以查找内容。

先使用脚本创建文本文件:

然后more log.txt输入:

 回车查找hellook


less 

支持鼠标上下移动,也支持键盘上下键移动。就可以看到之前的信息。

这里同样也支持查找:也是/ +字符串

输入/ hellook即可。

按下n可以查找下一个目标:

tail和head

查看文件的最后或者最前行

head+文件 查看文件前10行内容         tail+文件  查看文件后10行内容

head -1 文件 查看文件的前1行内容   tail -1 文件 查看文件的最后一行内容

举例,查看前2行内容:

查看最后2行内容:

那么如果要看中间部分?-假设是查看100~110行

算一算:这里的文件一共1000行,从1000到1递减

如果要看第100~110行:那么先算第110行是什么数字,因为第1行是1000 ,那么第100行是1000-99=901,那么第110行就是1000-109=891,这么一看对照一下是对的。

那么这个代码还可以简化:通过管道来简化,比如要读第601到610行

解释一下管道文件:

这里是head先取出了610行内容存入了管道中,再使用tail取出文件最后10行,再举几个例子

都是管道的用法,类似于充当一个临时变量。

总结一波:

1.一般查看日志,这种大型文件使用less好,more不太好用。

2.使用cat查看小型的文件。

3.可以使用head tail查看文件的任意范围行内容。

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

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

相关文章

JavaEE初阶---网络原理值TCP篇(三)

文章目录 1.延时应答机制2.捎带应答3.面向字节流---粘包问题3.1问题引入3.2解决方法 4.异常情况的处理5.TCP的心跳机制6.TCP/UDP的对比 1.延时应答机制 例如我们的这个剩余空间大小10kb,如果我们直接返回ack,这个发送方的窗口大小只能是10kb,但是如果我们进行延时&…

慢sql优化和Explain解析

要想程序跑的快,sql优化不可懈怠!今日来总结一下常用的慢sql的分析和优化的方法。 1、慢sql的执行分析: 大家都知道分析一个sql语句执行效率的方法是用explain关键词: 举例:sql:select * from test where bussiness_…

Java后端面试内容总结

先讲项目背景,再讲技术栈模块划分, 讲业务的时候可以先讲一般再特殊 为什么用这个,好处是什么,应用场景 Debug发现问题/日志发现问题. QPS TPS 项目单元测试,代码的变更覆盖率达到80%,项目的复用性高…

【10月】新款3DMAX插件排行榜

根据近期的行业动态和插件发布情况,整理并推荐一些在10月或近期内受到关注的3DMAX新款插件。 1. MaxToCAD插件 功能特点:允许用户将3D MAX中的三维模型快速转换为CAD软件可识别的二维平面图,适用于需要将3D设计导出为施工图或平面图的设计师…

【数据结构与算法】第7课—数据结构之队列

文章目录 1. 队列1.1 什么是队列1.2 队列的结构1.3 队列初始化1.4 队列入栈1.5 出队列1.6 查找队列有效元素个数1.7 取队头和队尾数据1.8 销毁链表 2. 用两个队列实现栈3. 用两个栈实现队列4. 循环队列 1. 队列 注:文中Queue是队列,Quene是错误写法 1.1 …

window快捷键:window + v 打开剪切板历史记录 / 非常实用

一、剪切板历史记录功能介绍 1.1、window v 打开剪切板历史记录 / 文字、图片都可记录 1.2、window v 最近使用 1.3、window v 表情符号 1.4、window v GIF 1.5、window v 颜文字 1.6、window v 符号 二、欢迎交流指正

手机功耗异常大数据看板建设

一、背景 基于《软件绿色联盟应用体验标准—功耗标准》监控软硬件资源功耗异常类别与趋势 上述为手机功耗问题的前世今生及我们应该在哪些维度建立功耗的埋点监控支持分析​ 二、目标 手机端侧建立alarm\wakelock\wakeup\gps\bt\cpu\sensor\netTriffic等功耗相关的使用次数和时…

多彩电子显示屏

在仓储管理的广阔舞台上,一款名为“仓库46代”的创新标签悄然登场,它不仅是技术的飞跃,更是智慧仓储的新篇章。这款标签,以其独特的515.6x260x29mm身材,优雅地融入了繁忙的仓库环境,其沉稳的黑色外观&#…

sklearn|机器学习:决策树(一)

文章目录 sklearn|机器学习:决策树(一)(一)概述(二)实战1. 环境配置2. sklearn 中的决策树(1)模块 sklearn.tree(2)sklearn 基本建模流…

服务器Linux系统网络重启失败 Restarting network (via systemctl):......

网络重启时报错: Linux 网络服务重启失败可能由网络配置工具冲突或配置错误引起。 冲突问题:在 Linux 中,network 和 NetworkManager 这两个工具可能会冲突,禁用 NetworkManager 可以尝试解决该问题。 先停止服务 systemctl s…

域控操作二十四:主域故障辅域接替

模拟环境:上海DC1故障无法开机,导致只有一个DNS的电脑无法上网(实际可以添加DC2但是为了实验就不说了) FSMO还在DC1上 使用powershell把角色迁移到DC2 ntdsutil roles connections connect to server DC2SHA.whbk.cn quitSeize …

边缘AI计算技术应用-实训解决方案

一、解决方案架构 1.1 来自产业的项目 实训项目全部是基于产业的商业化项目,经过角色拆解、任务拆解、代码拆解、部署流程拆解等过程,讲其标准化为教师可以带领学生完成的实训内容,真正帮助学生接触产业前沿技术和工作内容,提升就…

贪心算法习题其二【力扣】【算法学习day.18】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…

【Axure原型分享】颜色选择器——填充颜色

今天和大家分享颜色选择器——填充颜色的原型模板,点击颜色区域可以弹出颜色选择器,点击可以选择对应颜色,颜色区域会变色我们选择的颜色,具体效果可以观看下方视频或者打开预览地址体验。 【原型效果】 【Axure高保真原型】颜色…

SQL实战训练之,力扣:1843. 可疑银行账户

目录 一、力扣原题链接 二、题目描述 三、建表语句 四、题目分析 五、SQL解答 六、最终答案 七、验证 八、知识点 一、力扣原题链接 1843. 可疑银行账户 二、题目描述 表: Accounts ---------------------- | Column Name | Type | ---------------------- | acco…

软件系统交付阶段必备文档,验收体系配套资料,软件系统各阶段各步骤相关配套资料,各类软件建设方案(word,ppt)

软件文档交付清单是指在软件开发项目完成后,开发团队需要准备的一份详细清单,用于确保交付的软件产品符合客户需求并达到预期的质量标准。以下是软件文档交付清单中可能包含的一些关键要素 软件资料清单列表部分文档清单:工作安排任务书&…

Day07爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? class Solution {public int climbStairs(int n) {if (n 1) return 1;if (n 2) return 2;return climbStairs(n - 1) climbStairs(n - 2);} }用…

【51单片机】串口通信原理 + 使用

学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 串口硬件电路UART串口相关寄存器 编码单片机通过串口发送数据电脑通过串口发送数据控制LED灯 结束语 串口 串口是一种应用十分广泛…

c盘满了怎么清理垃圾而不误删?6招轻松清理C盘,快来试试

c盘满了怎么清理垃圾而不误删?相信平时工作生活中离不开电脑,随着使用电脑时间就了,C 盘的空间会不断被占据,进而致使系统运行变得迟缓,甚至出现卡顿现象。因此,定期清理 C 盘的是非常重要的。很多电脑小白…

Android 托管 Github Action 发布 Github Packages ,实现 Mvn 免费自动化托管

自从多年前 JCenter 关闭服务之后,GSY 项目版本就一直发布在 Jitpack 上,如今每个月也都有大概 10w 左右下载,但是近年来时不时就会出现历史版本丢失的问题,而且有时候还不是某个具体版本丢失,而是版本里的某几个依赖突…