从0开始linux(1)——文件操作

欢迎来到博主的专栏——从0开始linux
博主ID:代码小豪
博主使用的linux发行版是:CentOS 7.6
不同版本下的操作可能存在差异

文章目录

    • 命令
    • 文件操作命令
      • 文件树和文件路径
        • 文件树
        • 绝对路径
        • 相对路径
    • 文件属性
    • tree指令
    • 删除文件
    • 复制文件

大家还记得在小学第一次上微机课的时候吗?老师在教学生使用windows系统的第一步通常都是创建文件夹。熟悉weindows系统的文件管理。那么想要了解linux,也可以从这一步开始。

命令

命令就是用户输入linux将执行的操作的指令,比如在windows系统当中,用户想要进入某个文件夹,那么就双击这个文件夹完成操作。

所有的命令的格式基本可以遵从下面的规则:

command [-options] 参数

(1)command是命令的名称,例如cd是转换工作目录。
(2)[~]当中的内容是选项,如果想要加入这个选项,需要在开头加上一个‘-’字符,比如-s。(并非所有命令都如此,只是这篇博客当中的命令都符合这个特性)
(3)并非所有的命令都有参数的。
(4)命令,选项、参数之间要有空格隔开,无论使用几个空格,都会视为1格、
(5)按下回车键,该命令开始执行。
(6)命令是区分大小写的,比如cd是命令,而CD不是

先来实操一下,比使用命令列出当前工作目录下的所有文件和文件信息。

ls -a -l#选项可以多选
ls -la#选项可以复用
ls -al#选项的顺序不重要
ls                          -al#中间的空格可以很多,只视为一个

选项是可以复用的,比如ls命令,其选项-a是列出所有文件,-l是列出文件信息(并非所有,隐藏文件不显示)。两个选项可以结合在一起,使用-al或者-la。

文件操作命令

(由于博客没有更新到用户这一概念,因此操作都是使用管理员root的权限下操作的,目的是为了让学习者快速使用命令进行文件操作,不过建议大家在使用linux的时候尽量用普通用户登录,除非要使用root权限)

mkdir [directoryname]

创建一个目录。在linux当中文件分为3中类型,分别是目录、普通文件和链接文件。linux当中的目录可以理解为windows当中的文件夹,其作用主要是进行文件的分类。

我们试着创建一个目录dir1,在命令行中输入

mkdir dir1

此时linux会在当前工作路径中生成一个dir1目录。由于我们没有图形用户界面,所以看不到当前工作路径存在什么文件

ls

ls是list file的缩写。其作用是列出当前工作目录下的文件。我们在命令行中输入ls,就可以看到创建的dir1目录了。
在这里插入图片描述

文件树和文件路径

windows系统的使用者应该对文件路径非常熟悉吧。用户在磁盘上寻找文件时,经过的文件夹的路线就叫做路径。
在这里插入图片描述
如上图,当前的工作文件的路径为:C:\Users\Administrator

那么在linux当中,我们可以使用pwd来显示当前工作路径

pwd

在这里插入图片描述
我们当前所处的路径为/root。这个root目录就是管理员root的家目录。linux的家目录就是每个用户登录时,最先进入的目录,这个目录存放用户的数据和文件。(类似于windows系统的c\Users<用户名>)

我们在这个家目录当中进入刚刚创建目录dir1。

cd <filename>

在这里插入图片描述
通过pwd命令,可以发现我们当前工作路径为/root/dir1。在路径中,目录之间会有一个\隔开。这个\称为路径分隔符。但是最开头的/却是一个例外,它不是一个符号,而是一个目录,称为根目录。在linux系统当中,所有的文件都是存在于根目录下的。不信的同学可以输入命令"cd /"进入根目录。

文件树

学习过数据结构的同学应该不会对“根”感到陌生,在linux系统下,所有的目录和文件都是从根目录开始的。那是所有文件的根节点。然后在根据目录一个个的分支下来,这就是一个多叉树的数据结构。因此,我们也称这种文件配置方式为:文件树。

在这里插入图片描述
(网上找的qwq)。

linux的文件结构是一个多叉树,文件树有以下规律:
(1)空目录和普通文件是树的叶子结点
( 2)父节点可以有很多子节点,但是子节点只有一个父节点
(3)从根目录到任意文件的路径是唯一的

绝对路径

在文件树这个数据结构当中,每一个文件或者目录都是这个树的节点,出根目录外,其余节点都只存在一个父节点,因此从根目录开始,到文件树中任意文件,都有且只有一个路线,因此将这种从根目录开始到指定文件的路径,称为绝对路径

在这里插入图片描述

相对路径

我们在空目录dir1当中展示所有的文件。

ls -a

在这里插入图片描述
可以看到,即使是新建的空目录dir1当中,也存在两个特殊文件,一个是‘.’一个是’..'。
'.‘代表当前目录,也可以用’./'表示
‘..’代表上一级目录,也可以‘../’来表示。

比如现在想要回到上一级目录root,我们使用cd ../,创建一个dir2且进入dir2。
在这里插入图片描述
我们当前身处dir2目录当中,绝对路径是/root/dir2。如果我们想要进入dir1目录该怎么办呢?首先,我们回到上一级目录root当中,那么指令为cd ../。现在回到了root目录,接下来就是进入dir1目录,输入指令cd dir1

这样做是不是太麻烦了,我们就结合起来一起写

cd ../dir1

这个../dir1就是dir1与dir2之间的相对路径。
在这里插入图片描述

相对路径:相对于目前文件的文件名写法,例如dir1相对于dir2的相对路径为../dir1。只要开头不是根目录/的路径,就是相对路径。

如果要写相对路径是不是很麻烦啊,我们要熟悉整个linux的文件结构,这个肯定是非常难以做到的。所以我们可以先看看上级目录或者上上级目录存在什么文件,再去编写相对路径。

ls ../#查看上级目录
ls ../../#查看上上级目录

在这里插入图片描述

文件属性

ls -al可以查看当前目录下的所有文件信息。这里博主使用某个目录举例
在这里插入图片描述

拿empty文件为例
在这里插入图片描述
我们可以看到empty文件前面有各种各样的字符信息,这些字符信息就是文件属性。我们先来了解一下这些字段分别显示什么意思。

在这里插入图片描述
关于用户和用户组博主会专门开一个博客讲解,这里先卖个关子。

我们先开看第一个字段,即在这里插入图片描述
这个代表了这个文件的类型和权限。这个字段有十个字符组成。每一个字符都代表着不同的权限。
(1)第一个字符代表文件类型。比如[d]为目录文件,[-]为普通文件,[l]为链接文件等。
(2)剩余字符,每三个为一组,均为[rwx]三个参数的组合,其中[r]代表可读,[w]代表可写,[x]代表可执行。假如这个文件不具备可读权限,那么就会显示[-]。
(3)第一组表示的是文件拥有者的权限,如empty文件,文件拥有者root拥有可读可写可执行三个权限。
(4)第二组表示处于root用户组的成员的权限,只有可读和可执行的权限。
(5)第三组表示其他账号的权限。(非拥有者,也非用户组的账号)。也只有可读和可执行
在这里插入图片描述

tree指令

tree指令是需要下载的,我们在linux当中输入:

yum install -y tree

即可完成下载和安装

前面提到了,linux的文件结构是一个多叉树,tree指令可以以多叉树的结构显示目录下的全部文件。

常用方法分为以下几种
(1)用绝对路径显示该路径下的全部文件。

tree [绝对路径]

比如:
在这里插入图片描述
显示root目录下的test目录的所有文件。

(2)用相对路径显示该路径的全部文件。

tree [相对路径]

比如显示当前目录下的全部文件,我们可以用‘.’来展示当前路径下的所有文件。
在这里插入图片描述
使用tree指令可以让我们快速了解某个目录下的文件结构,非常好用。

删除文件

rmdir:删除一个空目录

前面我们不是新建了一个空目录dir1吗?现在我们来试着删除一下dir1吧。

首先来到dir1的目录下。(如果你是跟着博主操作的,那么它应该在root目录下)

在这里插入图片描述

但是这个指令只能删除空目录,如果删除的目录中存在其他文件,那么这个指令则无法生效。比如博主的test文件是存在其他文件的。

在这里插入图片描述

如果想要删除有文件的目录或者普通文件,我们需要用到rm指令,rm指令存在以下常用选项

rm [file]
选项:
-f----直接删除文件,不需要询问
-r----递归删除文件(删除指定目录下的所有文件)

如果我们使用不带选项的rm指令,那么它只能删除空目录和普通文件,比如我们创建一个文本文件。
在这里插入图片描述
当你删除文件时,linux会询问你是否删除这个文件,输入y选择是,输入n则取消这个操作。

所以rm -f可以让l操作系统不再询问你。

现在我们在root目录下创建一个目录dir1,然后再目录当中再创建一个目录dir2。由于此时dir1不再是空目录,因此我们不能用rm [filename]来删除dir1.
在这里插入图片描述
此时我们就需要用到rm -r命令。
在这里插入图片描述
每删除一个文件,linux系统就询问你一次,这是非常麻烦啊。所以我们可以结合‘-f’和‘-r’指令,直接删除掉这个目录和该目录的其他文件。
在这里插入图片描述

根目录是不是也是一个目录啊,所以这里我们就学到linux当中最经典的指令。

rm -rf /#将系统当中的所有文件都删除

这个指令也是最出名的删库跑路指令(出了事别说是小豪教的哈哈)。

如果你使用的时自己租的云服务器,那么你可以尝试,因为我们可以在云服务器的官网上重装系统,所以问题不大,但是使用虚拟机或者个人pc安装linux操作系统的同学们就慎用了。

这个指令只有root才有这个权限,普通用户是没有的(不然就乱套了),所以大家学习linux的时候尽量使用普通用户进行操作。

复制文件

复制文件我们通常用到cp命令。

cp的用法非常多,这里讲讲最常见的几种选项

cp [option] src(源文件) dest(目标文件)
-i—若目标文件已存在,在覆盖时会询问是否进行覆盖
-r—递归复制,将源文件的所有文件复制到目标文件当中
-f—不询问操作

由于没讲解文件的连接属性和修改文件属性的操作,因此只说明这三个选项

比如将test文件复制到root目录下,并命名为test2.
在这里插入图片描述
不难发现,test中的内容全都复制到了test2当中。

到这里我们已经学会了简单的文件操作了,趁命令还记在脑子里。快打开自己的linux系统开始练练手吧。

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

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

相关文章

C语言-链表实现贪吃蛇控制台游戏

使用C语言和链表实现贪吃蛇游戏 一、引言 贪吃蛇游戏是一个经典的游戏&#xff0c;它的玩法简单而富有挑战性。在这个博客中&#xff0c;我将分享如何使用C语言和链表数据结构来自主实现贪吃蛇游戏。我会详细介绍游戏的设计思路、编码过程、遇到的问题及解决方案&#xff0c;…

将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 1

以下摘录一些章节片段&#xff1a; 1. 概论 自动驾驶系统的认知中有一些模糊的地方&#xff0c;比如自动驾驶系统如何定义的问题&#xff0c;自动驾驶的研发为什么会有那么多的子模块&#xff0c;怎么才算自动驾驶落地等等。本章想先给读者一个概括介绍&#xff0c;了解自动驾…

Rust 生命周期浅谈

1. 简述 Rust 中的每一个引用都有其 生命周期&#xff08;lifetime&#xff09;&#xff0c;也就是引用保持有效的作用域。大部分时候生命周期是隐含并可以推断的&#xff0c;正如大部分时候类型也是可以推断的一样。类似于当因为有多种可能类型的时候必须注明类型&#xff0c;…

JAVA语言开发的智慧城管系统源码:技术架构Vue+后端框架Spring boot+数据库MySQL

通过综合应用计算机技术、网络技术、现代通信技术等多种信息技术&#xff0c;充分融合RS遥感技术、GPS全球定位技术、GIS地理信息系统&#xff0c;开始建设一个动态可视的、实时更新的、精细量化的城市管理系统。智慧城管将采用云平台架构方式进行建设&#xff0c;基于现有数字…

【idea-sprongboot项目】SSH连接云服务器进行远程开发

继上一篇博客【阿里云服务器】ubuntu 22.04.1安装docker以及部署java环境-CSDN博客 目录 五、远程开发方式 1&#xff09;SSH进行远程开发 步骤 配置文件同步 window电脑远程操控 正式通过window电脑远程操控 运行在linux服务器上的远程程序 调试在linux服务器上的远程程…

恶补《操作系统》5_2——王道学习笔记

5.2_1 I-O核心子系统 1、用户层软件 假脱机系统 2、设备独立性软件&#xff08;设备无关性软件&#xff09; IO调度、设备保护、设备分配与回收、缓冲区管理 3、设备驱动程序&#xff08;比如打印机驱动&#xff09; 4、中断处理程序 5、硬件 5.2_2 假脱机技术&#xff…

PHP医疗不良事件上报系统源码 AEMS开发工具vscode+ laravel8 医院安全(不良)事件报告系统源码 可提供演示

PHP医疗不良事件上报系统源码 AEMS开发工具vscode laravel8 医院安全&#xff08;不良&#xff09;事件报告系统源码 可提供演示 医院安全不良事件报告系统&#xff08;AEMS&#xff09;&#xff1b;分为外部报告系统和内部报告系统两类。内部报告系统主要以个人为报告单位&…

智慧文旅开启沉浸式文化体验,科技让旅行更生动:借助智慧技术,打造沉浸式文化体验场景,让旅行者在旅行中深度感受文化的魅力

一、引言 随着科技的飞速发展&#xff0c;传统旅游行业正经历着前所未有的变革。智慧文旅&#xff0c;作为一种新兴的旅游模式&#xff0c;正以其独特的魅力&#xff0c;吸引着越来越多的旅行者。智慧文旅不仅改变了人们的旅行方式&#xff0c;更在深度上丰富了人们的文化体验…

linux上如何排查JVM内存过高?

怎么排查JVM内存过高&#xff1f; 前言&#xff1a; 想必工作一两年以后的同学都会逐渐面临到&#xff0c;jvm等问题&#xff0c;但是可能苦于无法熟练的使用一些工具&#xff1b;本文将介绍几个比较常用分析工具的使用方法&#xff0c;带着大家一步步定位分析问题。 1、top 查…

代码随想录算法训练营DAY54|C++动态规划Part15|647.回文子串、516最长回文子序列、

文章目录 647.回文子串思路CPP代码双指针 516最长回文子序列思路CPP代码 动态规划总结篇 647.回文子串 力扣题目链接 文章链接&#xff1a;647.回文子串 视频链接&#xff1a;动态规划&#xff0c;字符串性质决定了DP数组的定义 | LeetCode&#xff1a;647.回文子串 其实子串问…

【C++第八课 - string的底层实现】

目录 基础知识string构造函数和析构函数的坑构造函数析构函数 迭代器、范围for运算符重载operator [] const增删查改push_backreserveappendinserteraseswapfindsubstr拷贝构造 流插入和流提取<<流插入>>流提取clear 深浅拷贝传统写法现代写法 赋值传统写法现代写法…

## 01深度学习介绍与安装PyTorch

文章目录 深度学习的发展历史和基本概念早期历史兴起与发展基本概念 如何安装和设置PyTorch环境系统要求安装步骤验证安装 结语 深度学习的发展历史和基本概念 深度学习&#xff0c;一种通过使用具有多层结构的神经网络来学习数据的复杂模型的机器学习技术&#xff0c;近年来已…

[Java EE] 多线程(七): 锁策略

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (90平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

奇偶校验码

目录 前言 校验原理简介 奇偶校验码 前言 在前两个文章的学习中,我们已经知道了数字字符这些简单的数据应该怎么在计算机内部进行表示,其实本质上是0101的二进制代码,但是这些数据在计算机内部进行计算存取和传送的过程中,由于计算机原器件可能会发生故障,也有可能因为某些…

python:set(集合)

set(集合) 去重处理&#xff0c;内容无序 列表使用&#xff1a;[] 元组使用&#xff1a;() 字符串使用&#xff1a;"" 集合使用&#xff1a;{} 基本语法; # 定义字面量集合&#xff1a;{元素&#xff0c;元素&#xff0c;元素&#xff0c;.......} 定义集合变…

【C语言】项目实践-贪吃蛇小游戏(Windows环境的控制台下)

一.游戏要实现基本的功能&#xff1a; • 贪吃蛇地图绘制 • 蛇吃食物的功能 &#xff08;上、下、左、右方向键控制蛇的动作&#xff09; • 蛇撞墙死亡 • 蛇撞自身死亡 • 计算得分 • 蛇身加速、减速 • 暂停游戏 二.技术要点 C语言函数、枚举、结构体、动态内存管…

用队列实现栈——leetcode刷题

题目的要求是用两个队列实现栈&#xff0c;首先我们要考虑队列的特点&#xff1a;先入先出&#xff0c;栈的特点&#xff1a;后入先出&#xff0c;所以我们的目标就是如何让先入栈的成员后出栈&#xff0c;后入栈的成员先出栈。 因为有两个队列&#xff0c;于是我们可以这样想&…

支付宝支付流程

第一步前端&#xff1a;点击去结算&#xff0c;前端将商品的信息传递给后端&#xff0c;后端返回一个商品的订单号给到前端&#xff0c;前端将商品的订单号进行存储。 对应的前端代码&#xff1a;然后再跳转到支付页面 // 第一步 点击去结算 然后生成一个订单号 // 将选中的商…

SQL 基础 | AVG 函数的用法

在SQL中&#xff0c;AVG()是一个聚合函数&#xff0c;用来计算某个列中所有值的平均值。 它通常与GROUP BY子句一起使用&#xff0c;以便对分组后的数据进行平均值计算。 AVG()函数在需要了解数据集中某个数值列的中心趋势时非常有用。 以下是AVG()函数的一些常见用法&#xff…

DETR类型检测网络实验2---优化测试

补全reference_point Anchor-DETR提出用预定义的参考点生成query_pos; DBA-DETR提出预定义参考信息由(x,y)增至(x,y,w,h) 那么在3D检测任务中是否可以把预定义参考信息补全为(x,y,z,l,w,h,sint,cost),而query_pos都是使用xy两个维度(因为是bev网络). (这种方法在Sparse-DETR中…
最新文章