Linux的文件操作,重拳出击( ̄︶ ̄)

Linux的文件操作

学习Linux的文件操作,一般需要知道一个文件如果你想要操作他,必须知道你对这个文件有什么操作的权限或者修改你自己对文件操作的权限。必须要知道文件有三种权限

r:可读

w:可写

x:可执行

在打开Linux时登录打开命令行界面输入查看当前目录下的文件命令ls

或者ls -l

ls:显示当前路径下的所有文件

ls -l:显示当前目录下所有文件及其文件的用户属性及其每个组可使用的权限

注意这里可能无法使用ll,因为这个命令需要在配置文件中修改添加一个属性值ls -l=ll

在这里插入图片描述

在权限显示的地方可以看到分成了三组,是因为Linux中对权限要求非常严谨,分为三个用户载体。

前三个为所有者相当于是文件的创建者,拥有对文件的最高权限。

中间的三个是所属组相当于是文件所有者所在的组,组成成员对文件的访问权限由这组权限决定。

后三个为其他用户,不属于文件所属组。

既然文件有权限划分,如果需要修改文件或者执行文件时,没有相应的权限时,就需要修改文件权限了。

修改文件操作权限

一、修改所属组
  1. 修改文件权限有几种方法可以选用。这个文件如果没有权限去执行就将他修改到有权限执行的地方,所以第一个方法也叫修改文件所属组
chgrp [-R] 属组名  文件名
  • -R : 该参数表示recursion(递归)意味着将其文件所在的目录的所有文件的所属组都会修改
二、修改文件所有者
  1. 也可以针对文件进行修改,直接将当前用户改为文件的所有者。
chown [-R] 所有者 文件名
chown [-R] 所有者:所属组 文件名

接下来我们将一个文件的所属组和所有者修改一下并显示最终结果。

在这里插入图片描述

三、修改文件的权限
  1. 直接针对文件的修改,修改文件权限,也就是修改rwx这三个字母
  • 修改数字(对777有印象的老铁应该熟悉)

r:4

w:2

x:1

每种身份的权限修改是需要累加的比如在上面的rw-r--r--代表的数字就是(4+2)(4)(4)=>644

修改权限的指令也是类似,语法如下:

chmod [-R] xyz 文件or目录

-R : 该参数表示recursion(递归)意味着将其文件所在的目录的所有文件都会修改。

比如将他修改为771

在这里插入图片描述

  • 修改字母

前面我们清楚了在权限中有三个主导用户

user:主用户

group:组

other:其他用户

在使用字母修改就会用u,g,o来代表这三种身份的权限,此外这里会多出一个全局身份a(ALL)这也方便了对三种身份的统一修改,而读,写,可执行,是使用r,w,x三个字符来表示。

用户u(user)g(group)o(other)a(All)
执行方法+(加)-(减)=(设定)
字母r(读)w(写)x(可执行)

最基础的直接设定(可以只针对一个用户进行权限修改如u=rw,u-r,u+r

在这里插入图片描述

一次性拿掉所有的一个或者多个相关权限

在这里插入图片描述

对于文件权限这部分就到这里,相信老铁们肯定已经掌握了!

文件管理与目录操作

认识基本文件目录,在window中也可以实践一番,可以打开我们电脑的cmd

在这里插入图片描述

这个相当于就是我们的根目录

目录中存在两种目录①绝对路径 ②相对路径,这两种分别代表了不同路径的写法。在写绝对路径时,必须要从根目录开始写。而相对路径则只需要使用.来代表当前路径即可,在Linux中也可以使用..来表示上级路径,使用~表示用户的主目录

使用相对路径和绝对路径切换到一个相同的目录:

在这里插入图片描述

当然linux也是这样,接下来可以接触一些对文件或者目录进行操作的Linux命令

ls(List Files)

列出所有的目录及其该目录下存在的文件名

ls [-adl]

a:列出所有文件,包括隐藏文件

d:只列出目录本身,不包含目录中的文件

l:列出文件的属性和权限(三种用户权限)

在上面的有提到过,这里我们就不加赘述。

cd(Change Directory)

切换目录 后面可接目录名称或者符号

这里执行的前提条件是需要知道当前的目录,比如我当前的目录就是/home/vboxuser这个作为原始目录进行绝对路径的写法。(不知道当前路径的可以使用pwd命令进行查看!其实这也是我们需要学习的一个常用Linux命令)

在这里插入图片描述

老铁们,可以自己动手尝试一下。

pwd(print Working Directory)

显示当前所在目录行

pwd [-P]

P:显示出确实的路径,而非使用链接路径

使用区别在同一个文件夹中的一个文件打印出两种不同的格式。

mkdir(make directory)

创建一个Linux目录,可以一次创建一个,也可以一次创建多个目录

mkdir [-mp] 目录名 新建目录名 ……

m:是一种强力的配置文件权限

p:如果需要建立递归目录,需要加上,可以嵌套创建你想要的文件夹

在上面的演示中其实需要使用到这个命令才能得到我上图的操作,当然老铁们也可以直接选择去操作Linux中的文件,同样可以接触到更多有意思的Linux命令。

在这里插入图片描述

嵌套创建目录

在这里插入图片描述

直接配置文件的权限

在这里插入图片描述

创建单个文件只需要在mkdir后面加你想要的文件名即可,而多个文件只需要进行空格处理即可。也可以针对一个或者多个文件夹进行创建文件,可以同时在多个文件夹中创建。

rmdir(remove directory)

这个命令只限于删除空的目录,虽然可以增加参数来使得其删除非空目录,实际上删除非空目录或者文件有一个额外的命令。

rmdir [-p] 目录名

p:一次可以删除多级空目录,和有内容的目录

在这里插入图片描述

看上图可以看出在只使用单个rmdir时只能删除目录尽头的空目录,而加上-p以后可以直接删除所写的所有空目录。

cp(copy)

拷贝文件和目录

cp [-afilLpPrsuv] 文件源  目的路径
cp [options] 文件1 文件2 文件3 …… 目的路径
  1. -a:归档模式,保留文件的属性,递归复制目录,相当于-pdr
  2. -f:强制覆盖目标文件,即使目标文件已经存在。
  3. -i:交互模式,在覆盖目标文件前提示用户确认。
  4. -l:创建硬链接而非复制文件。
  5. -L:跟随源文件的符号链接。
  6. -n:不覆盖已存在的文件。
  7. -p:保留文件的属性(如时间戳、权限等)。
  8. -P:保留文件的结构。
  9. -r:递归复制,用于复制目录和其内容。
  10. -s:创建符号链接而非复制文件。
  11. -u:仅当源文件比目标文件新时才复制。
  12. -v:显示复制过程中的详细信息。

可以根据需要选择参数。

在这里插入图片描述

!在这里插入图片描述

rm(remove)

删除文件或者目录

rm [-fir] 文件or目录
  1. -f:force(武力)强制忽略不存在的文件夹,不会出现警告
  2. -i:互动模式,当你需要删除一个文件时询问是否执行删除操作
  3. -r:递归删除目录,需要谨慎使用,懂得都懂

在这里插入图片描述

如果需要删除文件的话,可以直接删除,而对于目录需要使用 -r进行删除。

mv(move)

移动文件夹或者目录,也可用于修改名称

mv [-bfiu] 源文件 目地文件
mv [options] 文件1 文件2 文件3 …… 目的文件

-b:在覆盖原文件之前为这个文件创建一个备份

-f:与rm一样都是强制的意思,如果目标文件已经存在,不会询问直接覆盖

-i:在每次执行时询问是否执行该操作

-u:只有当源文件比目标文件创建的时间晚时才移动或者重命名

在这里插入图片描述

修改文件名称

在这里插入图片描述

以上就是一些基本的对文件目录的操作,涉及了增删改查和一些基本的操作,比如复制,移动,相信各位老铁肯定能精通使用这些命令。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【cmu15445c++入门】(10)C++锁mutex

一、锁 lock和unlock 二、 代码 // This program shows a small example of the usage of std::mutex. The // std::mutex class provides the mutex synchronization primitive. // std::mutex 类提供互斥同步原语。// Includes std::cout (printing) for demo purposes. #i…

超详细的MyCat安装部署

MyCat概述 介绍 Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用 mycat,对于开发人员来说根本感觉不到mycat的存在。 开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里…

预测性维修系统的功能分析和建设建议

随着工业领域的不断发展,设备状态监测、健康管理和智能诊断变得愈发重要。预测性维修系统通过先进的技术和可靠性评估,帮助企业判断设备状态,识别故障早期征兆,并生成故障预判,从而提出检维修建议。在这一背景下&#…

【前端素材】推荐优质后台管理系统Be admin平台模板(附源码)

一、需求分析 后台管理系统(或称作管理后台、管理系统、后台管理平台)是一种专门用于管理网站、应用程序或系统后台运营的软件系统。它通常由一系列功能模块组成,为管理员提供了管理、监控和控制网站或应用程序的各个方面的工具和界面。以下…

前端面试篇-JS篇2

37、事件模型(事件代理)(重要) 是指从事件发生开始,到所有处理函数执行完,所经历的过程。大概包括: 3个阶段 1)捕获阶段: 首先 Window 捕获事件,之后往目标传递,在到达目标节点之前的过程,就是捕获阶段(Capture Phase) 2)目标阶段: 真正触发点击的元素,事件会触发…

天哪!还有这些逆天的fofa​语句?(二)

接上文 天哪!还有这些逆天的fofa语句? 再分享几条,个人觉得比较有意思的fofa语句。 情侣飞行器 之前写过文章的,有兴趣的师傅可以试着翻翻以前的文章去破解密码 fofa语句:"static/js/index.d2dcdf5b.js"…

88. 合并两个有序数组——javascript实现

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组…

Spring Bean 相关注解

目录 Autowired Component,Repository,Service, Controller RestController Scope Configuration Autowired 自动导入对象到类中,被注入进的类同样要被 Spring 容器管理比如:Service 类注入到 Controller 类中。 Service public class UserService …

vite搭配vue2创建工程

一、安装vite npm init vite2.8.0 vite默认支持的是vue3, 这里选择框架和版本vanilla, 方便以后自己安装vue2. 二、修改package.json 默认生成的pacakage.json文件 {"name": "vite-project","private": true,"v…

lv20 QT入门与基础控件 1

1 QT简介 QT是挪威Trolltech开发的多平台C图形用户界面应用程序框架 典型应用 2 工程搭建 2.1 新建ui工程 不要写中文路径 2.1 不勾选UI(主讲) 3 QT信号与槽机制 语法:Connect(A, SIGNLA(aaa()), B, SLOT(bbb()))…

操作系统--零拷贝

一、直接内存访问(DMA)技术 什么是 DMA 技术?简单理解就是,在进行 I/O 设备和内存的数据传输的时候,数据搬运的工作全部交给 DMA 控制器,而 CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就…

【数据结构】栈OJ题《用栈实现队列》(题库+解析+代码)

1. 前言 通过前面栈的实现和详解大家对队列应该有一定熟悉了,现在上强度开始做题吧 栈详解:http://t.csdnimg.cn/9Fsbs 本体的做题思路也可以参考上一篇文章,就是有一点点不同。 用队列实现栈:http://t.csdnimg.cn/V2qjW 2. …

图形系统开发实战课程:进阶篇(上)——7.图形交互操作: 视点控制与动画

图形开发学院|GraphAnyWhere 课程名称:图形系统开发实战课程:进阶篇(上)课程章节:“图形交互操作: 视点控制与动画”原文地址:https://www.graphanywhere.com/graph/advanced/2-7.html 第七章 图形交互操作: 视点控制与…

MAUI 需要先部署项目,然后才能进行调试。请在配置服务器中启动部署。

刚刚创建完MAUI项目,选中windows,运行的时候提示这个 解决方案 选择菜单【项目】-> 【概述】 打开界面如下 然后点击【发布】,再点击【添加发布配置文件】,再点【下一步】 然后就可以运行了

rabbitmq知识梳理

一.WorkQueues模型 Work queues,任务模型。简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息。 当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多&#xff0c…

个人健康|个人健康管理小程序|基于微信小程序的个人健康管理系统设计与实现(源码+数据库+文档)

个人健康管理小程序目录 目录 基于微信小程序的个人健康管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)用户信息管理 (2)运动教程管理 (3)公告…

10.vue学习笔记(组件数据传递-props回调函数子传父+透传Attributes+插槽slot)

文章目录 1.组件数据传递2.透传Attributes(了解)禁用Attributes继承 3.插槽slot3.1.插槽作用域3.2.默认内容3.3.具名插槽3.4.插槽中的数据传递3.5.具名插槽传递数据 1.组件数据传递 我们之前讲解过了组件之间的数据传递,props 和 自定义事件…

排序(9.17)

1.排序的概念及其运用 1.1排序的概念 排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记…

【HarmonyOS】鸿蒙开发之Stage模型-应用配置文件——第4.2章

Stage模型-应用配置文件 AppScope -> app.json5:应用的全局配置信息entry:OpenHarmony工程模块,编译构建生成一个HAP包 build:用于存放OpenHarmony编译生成的hap包src -> main -> ets:用于存放ArkTS源码src …

linux卸载mysql8重装5

目录 背景操作卸载重装配置启动 背景 在linux(阿里云ECS)安装部署Hive时初始化Hive元数据库,遇到报错前一天两三小时没解决,问题定位为mysql,次日打算重装 操作 卸载 停止 MySQL 服务 systemctl stop mysql yum卸载…