Linux 文件操作基本命令

article/2025/9/7 22:16:38

在Linux文件操作中,最常用的基本命令包括:打开或者创建文件,写入文件,读取文件

下面将依次介绍这几种操作的常用方法。

1.打开/创建文件

首先说明在VI编辑模式中,若要使用该API,需包含相应的头文件,这些头文件不需要用户死记硬背,只需用户通过man指令查询即可,例如常用的malloc函数,用户可通过指令man malloc 即可查询该函数的基本用法。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16

从man指令执行结果可以看到该函数的原型,包括所使用的头文件为#include<stdlib.h>,在DESCRIPTION栏中可以看到该函数的具体各个参数的含义及用法。下面就用man指令来查询文件操作常用函数的用法。

文件的打开/创建函数为open函数,下面我们来查询下该函数的具体用法(在此注意,open函数查询指令为man 2 open)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16

从SYNOPIS中可以找到该函数所需要的头文件,在DESCRIPTION中可以找到各个参数的相关含义及其用法。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16

 ​​​​在open函数中有以上两种原型,第二种相对于前一个多了一个mode_t mode参数,第一个参数const char *pathname为 文件名,指向文件路径,指明用户需要打开哪个文件。 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16第二个参数int flags 为权限参数,其中包括O_RDONLY(只读许可),O_WRONLY(只写许可),O_RDWR(可读可写)。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16 open的返回值,也称文件描述符,相当于索引,打开哪个文件就对应哪个索引,如果文件打开失败,则返回值为-1.

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>int main()
{int fd;fd=open("./file1",O_RDWR);printf("fd=%d\n",fd);
}

 在以上代码中,前三个头文件为open 所需,最后一个为标准输入输出所需。整型变量fd为文件描述符。运行结果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_19,color_FFFFFF,t_70,g_se,x_16

 再比较open函数第二种原型的用法。当我们打开的文件不存在的时候,需要创建相应的文件才能成功打开,此时我们的第二个参数就需要再添加一项创建的权限O_CREAT,同时第三个参数也需要给出mode值,其中0600代表可读可写权限,这里说明4为可读参数,2为可写参数,所以二者相加为6可读可写,其他位数字参数用户可自行查阅手册。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>int main()
{int fd;fd=open("./file1",O_RDWR);if(fd==-1){printf("open file1 failed\n");fd=open("./file1",O_RDWR|O_CREAT,0600);if(fd>0){printf("creat file1 successd\n");}}
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_18,color_FFFFFF,t_70,g_se,x_16

这里需要说明,若用户之前已经创建了文件file1,则需要先将其删除才能得到创建的结果。

2.写入文件 

写入文件用到的函数为write函数,函数原型如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16第一个参数fd为被写入文件的文件描述符,第二个参数const *buf为写入缓冲区,即写入的内容,第三个参数size_t count为写入文件的大小,常用strlen来判断buf中的大小。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16其函数基本用法描述为:将buf内容里面的count个字节写入文件描述符为fd的文件当中 。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16

若写入成功,其返回值为写入文件的字节大小,若不成功则返回值为-1。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include <unistd.h>
#include<string.h>
int main()
{int fd;char *buf="file write";fd=open("./file1",O_RDWR);if(fd==-1){printf("open file1 failed\n");fd=open("./file1",O_RDWR|O_CREAT,0600);if(fd>0){printf("creat file1 successd\n");}}printf("open file1 successed , fd=%d\n",fd);//ssize_t write(int fd, const void *buf, size_t count);write(fd,buf,strlen(buf));close(fd);return 0;
}

其中close为关闭文件操作。在该程序运行之后,用户可打开自己所创建的file文件,查看是否将用户定义的buf里面的内容写入进去。

3.读取文件

读取文件的函数为read,其函数原型如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16第一个参数fd为文件描述符,第二个参数void *buf为读入缓冲区,存放用户读取的数据,第三个参数size_t count为读取数据的大小。 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16

返回值为读取到的字节大小。

该函数用法描述为:在fd指向的文件读取count个字节的数据放到buf里面。

注意:

当我们要将用户刚刚写入的内容读取出来时,要注意光标位置。当写入完成以后,光标会移动到写入的最后一个字符的末尾,而在读取时也会从末尾开始,这样末尾后面为空,读取内容也会为空,解决此问题应在写入完成以后,重新将光标移动到第一个字符前面,用lseek函数。

文件光标移动操作:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16 第一个参数fd为文件描述符,第二个参数off_t offset 为偏移量,第三个参数int whence为光标固定位置(SEEK_SET文件头,SEEK_END末尾,SEEK_CUR当前)。

该函数作用描述为:将文件读写指针相对whence移动了offset个字节。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZOG5ZWm5a2m57yW56iL77yB,size_20,color_FFFFFF,t_70,g_se,x_16该函数的返回值时光标针对文件头的偏移值,如果移动失败,返回值为-1。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include<stdlib.h>
#include <unistd.h>
#include<string.h>
int main()
{int fd;char *buf="this is a txt";fd=open("./file1",O_RDWR);if(fd==-1){printf("open file1 failed\n");fd=open("./file1",O_RDWR|O_CREAT,0600);if(fd>0){printf("creat file1 successd\n");}}printf("open file1 successed , fd=%d\n",fd);//ssize_t write(int fd, const void *buf, size_t count);int n_write=write(fd,buf,strlen(buf));if(n_write!=-1){printf("write %d byte to file\n",n_write);}//off_t lseek(int fd, off_t offset, int whence);lseek(fd,0,SEEK_SET);char *readBuf;readBuf=(char *)malloc(sizeof(char)*n_write+1);// ssize_t read(int fd, void *buf, size_t count);int n_read=read(fd,readBuf,n_write);printf("n_read is :%d,context is :%s\n",n_read,readBuf);close(fd);return 0;
}


http://chatgpt.dhexx.cn/article/y55YeUSK.shtml

相关文章

Linux基本操作命令 实验

一、实验目的&#xff1a; 1. 熟悉Linux基本命令。 2. 熟悉Linux操作系统。 二、实验环境&#xff1a; 一台装有Linux的机器。 三、实验内容&#xff1a; 1.文件操作命令的使用。 用vi编辑器新建一个testl文件 输入this is testl~&#xff01; 查看文件与目录ls 进入…

linux的基本操作命令

1.使用timedatectl查看时间状态 列出所有已知时区 修改时区为列出时区的某一个 首先打开linux系统&#xff0c;进入管理员模式&#xff0c;输入timedatectl [rootroot ~]# timedatectl Local time: Sun 2022-03-20 17:26:05 CSTUniversal time: Sun 2022-03-20 09:26:05 …

Linux实验一:熟悉Linux基本命令

【实验目的】 ‏(1)熟悉常用的文件和目录类命令。 ‏(2)熟悉常用的进程管理类命令。 ‎ ‏【实验要求】 ‎ 本实验的主要任务是在Linux终端窗口中练习已经学过的各种命令&#xff0c;熟练掌握常用命令的用法。清大家按照以下步骤完成本次实验。 ‏(1)以普通用户登录系统&…

linux配置网口的ip地址,Linux基本操作和基础命令(Linux修改IP地址以及修改网卡地址)...

Linux基本操作和基础命令(Linux修改IP地址以及修改网卡地址) 今天博主和大家聊一聊 Linux的基本操作&#xff0c;不喜勿喷&#xff0c;如有建议欢迎补充&#xff0c;讨论。 一.Linux网络 1.网卡的命名规则 CENTOS7采用dmidecode采集命名方案&#xff0c;以此来得到主板信息&…

Linux基本命令及编程环境实验

目录 一、Linux基本命令详细汇总 1、目录及文件相关命令 2、系统信息查询 3、文件操作&#xff08;统计、过滤、搜索、权限&#xff09; 4、其他命令 二、Linux终端上vi命令编程 1、进入vi命令模式 2、vi编辑模式 3、最后行模式 4、vi 编辑C源程序并编译运行 最后 一…

linux基本命令大全

基本命令 关机&#xff1a;shutdown -h halt init 0 poweroff 重启&#xff1a;shutdown -r reboot init 6 pwd&#xff1a;查看工作目录 ls&#xff1a;查看指定目录的内容 -l&#xff1a;列表显示 -a&#xff1a;显示所有&#xff0c;包括隐藏文件 -h&#xff1a;人性化的显示…

linux用户基本操作

用户的管理 1.创建一个新用户user1 ,设置其主目录为/home/use1 useradd user1 -d /home/user12.查看/etc/passwd文件的最后一行&#xff0c;看看如何记录 vim /etc/passwd3.查看文件/etc/shadow文件的最后一行 vim /etc/shadow4.给用户设置密码 passwd user1 123456//密码…

linux课程--实验一 Linux 基本命令操作1

一、实验目的&#xff1a; (1)掌握Linux各类命令的使用方法。 (2)熟悉Linux字符界面操作环境。 二、实验准备 (1)了解Linux命令行的基本概念。 (2)自己建立目录结构以及目录下的文件。 三、实验过程&#xff08;内容包括&#xff1a;&#xff08;1&#xff09;练习linux命…

操作系统实验一 Linux基本操作|实验二 进程管理

由于当时没存代码&#xff0c;只有实验文档代码截图&#xff0c;文末也可直接获取实验文档。 操作系统实验 目录 实验一 Linux基本操作实验二进程管理 实验一 Linux基本操作 1实验目的 1.熟悉在Linux操作系统下的基本操作&#xff0c;对Linux操作系统有一个感性认识。 2.学…

Linux系统介绍及熟悉Linux基础操作

一、什么是Liunx Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹&#xff08;Linus Benedict Torvalds&#xff09;于1991年10月5日首次发布&#xff0c;它主要受到Minix和Unix思想的启发&am…

操作系统——实验一(Linux基本操作)

操作系统——实验一(Linux基本操作) &#xff08;1&#xff09;练习Linux的基本安装和配置&#xff1b; &#xff08;2&#xff09;以root用户身份登陆&#xff0c;并使用“ls”,“cat”“cd”等常用命令来实现基本的文件操作并观察Linux文件系统的特点&#xff1b; &#xff…

Linux系统基础操作命令

目录 一、基本使用 1.编辑Linux命令行的辅助操作 2.常用的基础命令 1.切换用户&#xff08;su&#xff09; 2.pwd 查看当前工作目录 3.cd 切换工作目录 4.cp 复制 5.mkdir 创建目录 6.touch 创建文件 7.创建链接文件ln&#xff08;软链接、硬链接&#xff09; 8.alia…

Linux的基本操作

Linux的基本操作 文章目录 Linux的基本操作cd命令ls命令pwd命令touch命令cat命令mkdir命令rm命令cp命令mv命令man命令less命令head命令tail 命令date命令grep命令ps命令netstat命令 cd命令 语法&#xff1a;cd 目录名 功能&#xff1a;改变当前所在目录&#xff0c;将当前工作…

Linux基本操作之vi编辑器

Linux基本操作之vi编辑器 一、Vi编辑器的启动和退出启动退出 二、Vi编辑器的工作模式编辑模式插入模式命令模式 三、Vi编辑器的基本命令文件相关命令字符串搜索、替换和删除文本的复制、删除和移动 四、C/C编辑器gcc的使用1.编写代码2.使用命令编译和运行 一、Vi编辑器的启动和…

LINUX的基本操作学习总结

前言 从2020年11月定下了以后所打算从事的方向开始&#xff0c;就开始学习LINUX基础和LINUX环境编程&#xff0c;故谨以此文来记录LINUX的基础操作 声明&#xff1a;因个人能力有限&#xff0c;本文仅是个人的学习记录笔记&#xff0c;有错误之处还望指出 目录 1.LINUX的基础…

Linux基本操作之重定向文件

文章目录 RedirectionAppending to a fileRedirecting the Input通配符“*”和“?”文件名约定操作 Redirection 上一节 cat 命令的功能是将文件或标准输入组合输出到标准输出。这个命令常用来显示文件内容&#xff0c;或者将几个文件连接起来显示&#xff0c;或者从标准输入…

实验一 Linux基本操作

实验一 Linux基本操作 1&#xff0e; 实验要求 &#xff08;1&#xff09;掌握启动和退出Linux 操作系统方法&#xff1b; &#xff08;2&#xff09;了解与熟悉Linux 操作系统常用的Shell命令使用&#xff1b; &#xff08;3&#xff09;掌握Linux 操作系统下C程序的编辑、编译…

Linux介绍及基本操作

嵌入式之路&#xff0c;贵在日常点滴 ---阿杰在线送代码 目录 一、Linux简介 二、Linux介绍 三、Linux特点 四、常用命令 命令口终端 窗口分屏率 ​编辑配置串口大小 字体大小 ​编辑清屏 VI的使用 建立文件 模式 ​编辑编译文件 ​编辑运行编译文件 常用指令 …

Linux基本操作命令

Linux基本操作命令 我们介绍一些linux常用命令&#xff1a; 一、查看及文件目录的命令&#xff1a;pwd、cd、ls、du 二、创建目录和文件&#xff1a;mkdir、touch、ln 三、复制、删除、移动目录和文件&#xff1a;cp、rm、mv 四、查找目录和文件&#xff1a;which、find 下面…

Linux常用操作命令大全

目录 一、目录及文件操作 1.1创建目录 1.2删除目录或文件 1.3重命名目录或文件名称 1.5目录及文件列表查看 1.6复制目录或文件 1.7剪切目录或文件 1.8搜索目录或文件 1.9创建文件 1.10查看及修改文件内容信息 1.11查看文件内容信息&#xff08;仅支持查看&#xff0…