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

news2024/11/17 11:37:14

欢迎来到博主的专栏——从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.coloradmin.cn/o/1642936.html

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

相关文章

java下乡扶贫志愿者招募管理系统springboot-vue

计算机技术在现代管理中的应用&#xff0c;使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题&#xff0c;提高效率。 技术栈 前端&#xff1a;vue.jsElementUI 开发工具&#xff1a;IDEA 或者eclipse都支持 编程语言: java 框架&#xff1…

SQL 基础 | AVG 函数的用法

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

猿人学第七题-动态字体-随风漂移

前言&#xff1a;该题主要是考对fontTools.ttLib.TTFont的操作&#xff0c;另外就是对字典互相映射的操作 一、woff文件存储 from fontTools.ttLib import TTFont #pip install fontTools def save_woff(response):woff response[woff]woff_file base64.b64decode(woff.enc…

第11章 软件工程

这里写目录标题 1.软件过程1.1能力成熟度模型(CMM)1.2能力成熟度模型集成(CMMI)1.3瀑布模型(线性顺序)1.4增量模型1.5演化模型1.5.1原型模型1.5.2螺旋模型 1.6喷泉模型1.7统一过程(UP)模型 2.敏捷方法3.系统设计4.系统测试4.1单元测试(模块测试)4.2集成测试4.3黑盒测试(功能测试…

噪声嵌入提升语言模型微调性能

在自然语言处理&#xff08;NLP&#xff09;的快速发展中&#xff0c;大模型&#xff08;LLMs&#xff09;的微调技术一直是研究的热点。最近&#xff0c;一篇名为《NEFTUNE: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING》的论文提出了一种新颖的方法&#xff0c;通过在训…

每日一题2:获取DataFrame的大小

在Python中&#xff0c;pandas库是一个非常流行的数据处理库&#xff0c;它提供了DataFrame这一数据结构来高效地处理表格化的数据。如果想查看一个DataFrame的行数和列数&#xff0c;可以使用.shape来实现。 一、基本用法 当你有一个名为df的DataFrame时&#xff0c;只需调用…

rust使用Atomic创建全局变量和使用

Mutex用起来简单&#xff0c;但是无法并发读&#xff0c;RwLock可以并发读&#xff0c;但是使用场景较为受限且性能不够&#xff0c;那么有没有一种全能性选手呢&#xff1f; 欢迎我们的Atomic闪亮登场。 从 Rust1.34 版本后&#xff0c;就正式支持原子类型。原子指的是一系列…

USP技术提升大语言模型的零样本学习能力

大语言模型&#xff08;LLMs&#xff09;在零样本和少样本学习能力上取得了显著进展&#xff0c;这通常通过上下文学习&#xff08;in-context learning, ICL&#xff09;和提示&#xff08;prompting&#xff09;来实现。然而&#xff0c;零样本性能通常较弱&#xff0c;因为缺…

c#Excel:2.写入Excel表 3.读取Excel表

--写入Excel表-- 该例首先从数据库aq中读取学生信息表staq(参考数据库章节)&#xff0c;然后将学生信息表中的数据写入Excel表格中 &#xff08;1&#xff09;在OfficeOperator类库项目的ExcelOperator类中定义索引器&#xff0c;用于获取Excel表格中的单元格&#xff0c;代码…

QT:QT窗口(一)

文章目录 菜单栏创建菜单栏在菜单栏中添加菜单创建菜单项添加分割线 工具栏创建工具栏设置停靠位置创建工具栏的同时指定停靠位置使用QToolBar类提供的setAllowedAreas函数来设置停靠位置 设置浮动属性设置移动属性 状态栏状态栏的创建在状态栏中显示实时消息在状态栏中显示永久…

Meta Llama 3 使用 Hugging Face 和 PyTorch 优化 CPU 推理

原文地址&#xff1a;meta-llama-3-optimized-cpu-inference-with-hugging-face-and-pytorch 了解在 CPU 上部署 Meta* Llama 3 时如何减少模型延迟 2024 年 4 月 19 日 万众期待的 Meta 第三代 Llama 发布了&#xff0c;我想确保你知道如何以最佳方式部署这个最先进的&…

深入学习Redis(1):Redis内存模型

Redis的五个对象类型 字符串&#xff0c;哈希&#xff0c;列表&#xff0c;集合&#xff0c;有序集合 本节有关redis的内存模型 1.估算redis的内存使用情况 目前内存的价格比较的高&#xff0c;如果对于redis的内存使用情况能够进行计算&#xff0c;就可以选用合适的设备进…

Docker高频使用命令

一、Docker常用命令总结 1.镜像命令管理 指令描述ls列出镜像build构建镜像来自Dockerfilehoistory查看历史镜像inspect显示一个或多个镜像的详细信息pull从镜像仓库拉取镜像push推送一个镜像仓库rm移除一个或多个镜像prune一处未使用的镜像&#xff0c;没有被标记或被任何容器…

上位机图像处理和嵌入式模块部署(树莓派4b和qt应用全屏占有)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 我们都知道&#xff0c;嵌入式应用一般都是为了某一个特定应用而存在的。也就是说&#xff0c;和pc不同&#xff0c;这个嵌入式板子一般都是为了解…

Java之LinkedHashMap

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。…

【数学建模】矩阵微分方程

一、说明 我相信你们中的许多人都熟悉微分方程&#xff0c;或者至少知道它们。微分方程是数学中最重要的概念之一&#xff0c;也许最著名的微分方程是布莱克-斯科尔斯方程&#xff0c;它控制着任何股票价格。 ​​ 股票价格的布莱克-斯科尔斯模型 微分方程可以由数学中的许多…

正在载入qrc文件 指定的qrc文件无法找到。您想更新这个文件的位置么?

打开Qt的ui文件&#xff0c;弹出提示框 如果需要用到qrc文件&#xff0c;选择Yes&#xff0c;再选择qrc文件所在的位置&#xff1b;如果不需要qrc文件&#xff0c;可以选择No&#xff0c;然后用普通文本编辑器打开&#xff0c;将“ <resources> <include location&q…

去哪儿网机票服务请求体bella值逆向

作者声明&#xff1a;文章仅供学习交流与参考&#xff01;严禁用于任何商业与非法用途&#xff01;否则由此产生的一切后果均与作者无关&#xff01;如有侵权&#xff0c;请联系作者本人进行删除&#xff01; 一、加密定位 直接全局搜索bella&#xff0c;在可疑的地方下断&…

2024/5/5 英语每日一段

Meanwhile, in a twist, Tesla this month settled a high-profile case in Northern California that claimed Autopilot played a role in the fatal crash of an Apple engineer, Walter Huang. The company’s decision to settle with Huang’s family—along with a ruli…

数据结构学习/复习7--栈的实现/括号匹配/队列的实现/两个队列实现栈

一、栈 1.概念及性质 2.栈的实现(top0版) 注意事项&#xff1a;top也可初始为-1,代码需要调整 二、栈练习 1.括号匹配 三、队列 1.概念及性质 2.队列的实现 四、队列练习 1.两个队列实现栈