当前位置: 首页 > news >正文

第二章:磁盘管理与文件管理

一、磁盘管理

1.windows和Linux磁盘管理的区别

windows资源管理方式

image.png

  • 系统一般安装在C盘

  • C盘下的"Windows"目录是操作系统的核心

  • C盘下的"Program Files"目录下安装软件

  • C盘下的"用户"目录是所有的用户,包括超级管理员也在其中

  • windows操作系统分为C盘、D盘、E盘等,每个磁盘下采用文档树的形式组织文件

Linux资源管理方式

linux操作系统采用一个文档树来组织所有的资源。 这棵树的根目录的名字叫做:/ / 是一个目录名字,是linux操作系统中所有文件的根。 / 目录下又有很多其他的子目录,比如:dev home lib .....

比较重要的几个目录概述:

  1. /bin目录:包含一些常用的二进制可执行文件,如cat、ls、mkdir、rm等。这些二进制文件在系统运行时始终可用,可以被任何用户运行。

  2. /etc目录:包含了系统的大多数配置文件,如网络配置、用户登录信息、软件包安装配置等。大多数应用程序在安装后都会在这个目录下创建自己的子目录,以便存储自己的配置文件。

  3. /home目录:包含Linux系统用户的家目录,每个用户的数据和个人文件都存放在这里。

  4. /lib目录:包含一些共享库文件,应用程序可以通过这些共享库文件调用系统的功能,如libc.so,是C语言函数库的共享库。

  5. /root目录:是系统管理者(超级用户)的家目录。

  6. /tmp目录:是系统中的一个临时目录,所有用户都可以在这里创建临时文件,文件系统会定期清空该目录,以防止文件滞留。

  7. /usr目录:包含系统启动后,所有用户能访问的应用程序和数据文件。

  8. /var 目录:包含可变数据的文件。包括日志、数据库、Web服务器、邮件队列等文件。它是一个经常被修改的目录,如果在其他目录有可变数据的话,它们都应当被链接到 /var 中。

2.pwd

在终端中输入该命令,可以查看当前所在位置,例如:

3.man和--help

man命令

man命令可以查看某个命令的具体用法,例如:man pwd。如果一个命令具体的用法你不知道的话,问那个男人就行了。

man命令怎么进行翻页?

空格

man命令怎么退出?

q

--help参数

--help,也可以查看一个命令的帮助,一次性列出。用法:touch --help

4.ls

ls

ls命令是list的意思:列出,列表等。 通过ls命令可以查看当前目录下的子目录和子文件。例如:

(不包含隐藏文件,注意:linux操作系统中,所有的隐藏文件都是 .开始的;文件名都是以 .开始的)

ls -a

a是all的意思,表示所有。 列出包含隐藏文件在内的所有的文件。(在Linux操作系统中隐藏文件的文件名通常以"."开始)

ls -l

-l 参数表示使用长格式输出:long format 输出结果中每一列的含义如下:

注意权限部分:

ls -l 可以简写为:ll

ls -al

ls -al等同于:ls -a + ls -l的功能。 可以简写为:ll -a

ll -a /home/

可以指定查看某个目录下的所有文件详情。

5.cd

cd命令:change directory
cd命令用法:

cd 路径名

cd .. 回到上级目录

cd ../.. 回到上级目录的上级目录

cd ~ 回到主目录

cd / 回到根目录

cd /home/powernode 切换到 /home/powernode目录下

cd abc 切换到当前目录下的abc目录中

- 这里的abc没有以 / 开始,表示这个路径是相对路径,相对路径指的是从当前所在目录作为起点开始找。
- 以 / 开始的路径被称为绝对路径。
- cd 命令后面既可以是相对路径,也可以是绝对路径。只要路径正确即可。

当前在home目录下,那就在home目录下找123

cd / 回到根目录

cd ~ 回到主目录

二、文件管理 

1.新建目录

mkdir abc (mkdir是新建目录的命令,abc是一个目录名)
mkdir -p a/b/c (-p参数表示,一次创建多重目录)
mkdir -p a/kk/ff (虽然a已经存在了,但是不会报错,直接在a目录下新建kk目录,kk目录下新建ff目录。)

⑴我在根目录下创建

⑵在root(主)目录下创建

⑶补充:根目录下的 root目录与home目录有什么区别

用途

  • root目录:是系统管理员root用户的家目录。root用户是系统中具有最高权限的用户,对系统拥有完全的控制权,可进行各种系统级的管理和维护操作。该目录用于存放root用户的个人配置文件、数据以及一些与系统管理相关的文件。

  • home目录:是普通用户的家目录所在的父目录。每个普通用户在home目录下都有一个以自己用户名命名的子目录,用于存放个人文件、配置文件、文档、图片、音乐等个人数据。例如,用户user1的家目录就是/home/user1

访问权限

  • root目录:通常只有root用户具有完全的读写执行权限。其他普通用户一般没有直接访问root目录的权限,若普通用户尝试访问,会收到权限拒绝的错误提示。
  • home目录:普通用户对自己在home目录下的个人子目录具有完全的读写执行权限,可自由创建、修改、删除其中的文件和目录。同时,根据系统的权限设置,其他用户可能具有对某些home子目录的读或执行权限,但一般不会有写权限,以保证用户个人数据的安全性和隐私性。

2.新建文件

touch 文件名,例如:touch Hello.java 表示在当前目录下新建一个文件Hello.java
touch a.txt b.txt c.txt 一次性在当前目录下,新建多个文件,文件名之间采用空格分隔。

3.删除文件

用法:rm 文件名

rm a.txt(删除当前目录下的a.txt文件)。这种方式会询问,是否删除,输入y表示删除,输入n表示不删除。

不想让系统询问你是否删除,怎么进行强行删除呢? -f 参数可以做到(f是force)

- rm -f a.txt(强行删除a.txt文件,不询问)

删除多个文件 

- rm -f b.txt c.txt (删除b.txt和c.txt文件)
- rm -f *.java(删除所有.java结尾的文件,模糊匹配的方式。)

4.删除目录

-r 是英文 recursive 的缩写,表示递归删除的意思

删除目录的时候,必须添加-r参数,这个-r表示删除一个目录,或者递归删除目录下的所有子目录以及子文件。
rm -r x(删除当前目录下的x目录,以及x目录下所有的子目录),但是这种方式需要用户自己输入y进行确认删除。
rm -rf x (强行删除x目录以及x目录下所有的子目录,并且不询问。包括子文件也全部删除。)

5.文件拷贝

cp a.txt aa.txt(复制当前目录下的a.txt文件,粘贴到当前目录下并且生成新文件aa.txt)

语法如下: 

- cp file1 file2
- file1就是被拷贝的文件
- file2就是粘贴之后的文件
- file1和file2可以添加路径。
- cp 被拷贝文件的路径 粘贴到哪里的路径

cp    Hello2.java     a/Hello3.java

6.目录拷贝

cp 目录名1 目录名2

- 目录名1 是拷贝源
- 目录名2 是拷贝到哪里

-rf (-r递归拷贝,-f强行拷贝)

cp  -rf  a  abc(将当前目录下的a目录拷贝到当前目录下的abc目录当中)

cp -rf /home/powernode/a           /home/powernode/x (将/home/powernode/a目录拷贝到/home/powernode/x目录下)

7.移动

mv    Hello.java      x(将当前目录下的Hello.java文件移动到x目录下)

mv      /home/bjpowernode/Hello2.java        /home/bjpowernode/x (将/home/bjpowernode/Hello2.java 移动到 /home/bjpowernode/x目录下)

mv x f(将x目录移动到f目录下)

8.文件搜索

在CentOS中,可以使用以下方式进行文件搜索:

⑴.find命令:

使用find命令可以在指定目录下搜索文件。可以使用不同的选项来指定搜索的文件类型、大小、修改时间等条件。例如:

在root目录下找名字为hello.java的文件

⑵.whereis命令:

使用whereis命令可以在系统中搜索指定的命令的位置。例如:

⑶.which命令:

使用which命令也可以在系统中搜索指定的命令的位置。例如:

9.文件的inode号

在Linux操作系统中,每一个文件都有自己的身份证号:inode号(index node:索引节点号)
每个文件都有自己的inode号,并且不会重复,在Linux操作系统中通过inode来区分两个文件。
查看文件的inode号:

三、软链接与硬链接

1.软链接

注意:软链接是一个特殊的文件,里面保存了目标文件的路径。

软链接,也称为符号链接(Symbolic Link),它类似于 Windows 系统中的快捷方式。软链接文件包含了指向其他文件或目录的路径信息,通过软链接可以快速访问到目标文件或目录,即使软链接和目标文件位于不同的文件系统或分区中。当访问软链接时,系统会根据其保存的路径信息自动定位到目标文件或目录。

软链接类似于windows操作系统中的快捷方式。

软链接的作用:方便操作。快捷。。。有些经常被操作的文件,藏的很深,每一次找很麻烦,怎么办,可以给这些经常操作的文件创建软链接。通过软链接快捷的操作目标文件。

怎么创建软链接呢(在linux当中怎么创建快捷方式呢)? 

软链接是一个文件

软链接和目标文件实际上是两个文件,在软链接中存储的是目标文件的路径。软链接关联的目标文件如果被删除,软链接这个快捷方式也就失效了。
可以通过查看inode号,来证明软链接是两个不同的文件:

2.硬链接

怎么创建硬链接?(把软链接创建过程中的 -s 去掉就是创建硬链接的语法。) 

通过测试得知:inode号一致,说明创建的硬链接和原文件是同一个文件。

通过操作硬链接,目标文件会改变吗?操作目标文件,硬链接会改变吗? 答案是:当然会。

 硬链接的特点: 

- 主要是用来做:重要文件备份。


- 目标文件删除之后,硬链接只要在,文件其实就没有被删除。或者说硬链接删除之后,目标文件还在。总结一句话:目标文件或者硬链接只要有一个存在,文件就没有被真正的删除。


- 硬链接机制和复制粘贴还不一样,复制粘贴之后的文件,修改其中之一,另一个不会变,但是硬链接就不一样了。

四、文件压缩与解压缩

tar是在linux系统当中完成压缩和解压缩的命令。
压缩后的文件又被称为**归档文件**。

1.tar命令详解

tar命令语法格式: tar 参数 要压缩的或解压的文件或目录
tar命令的常用参数: 

- z:指定是否使用gzip压缩方式压缩。(扩展名通常为:tar.gz。特点:速度最快)
- j:是否需要用 bzip2 压缩方式压缩。(扩展名通常为:tar.bz2。特点:体积最小)
- c:创建压缩(create)
- x:解压缩
- v:是否在压缩的过程中显示文件
- f:指定归档文件名(file)。f参数后面必须紧跟文件名,不能在f参数后面再加其他参数。
- t:查看 tarfile 里面的文件
- C:指定解压到的具体目录。注意是大写C。

注意:c、x、t,这三个参数不能共存,只能出现一个。

2.压缩

压缩一个文件

  • tar -zcvf    mytxt.tar.gz    log1.txt

  • tar -zcvf    压缩后的文件名  要压缩的文件

压缩多个文件

  • tar -zcvf   mytxt2.tar.gz   log1.txt    log2.txt   log3.txt

  • tar -zcvf   mytxt3.tar.gz    *.txt

压缩目录

  • tar -zcvf   mytxt4.tar.gz   test 【将test目录压缩为mytxt4.tar.gz】

3.查看归档文件

- tar -tf mytxt.tar.gz

4.解压

tar -zxvf mytxt.tar.gz 【解压到当前目录下】 
tar -zxvf      mytxt.tar.gz      -C     test【将mytxt.tar.gz压缩包解压到test目录】 

五、文件编辑vi & vim

1.vi与vim概述

vi 和 vim 都是在 Linux 和 Unix 中常用的基于字符终端的文本编辑器。


vi 是 Unix 早期提供的标准命令行下的文本编辑器,是一款非常强大、高效的编辑器,可以对文本进行快速修改和编辑,具有常见编辑器的基本功能。


vim(Vi Improved)是在vi基础上进行了改进和扩展的一个版本,它保留了vi的全部功能,并添加了许多新功能,如基本的 GUI 界面、语法高亮、多级撤销/重做、对齐、插件支持等等。可以说 vim 是强大的文本编辑器之一,被众多的开发者、管理员、写作人员和爱好者使用。


通过 vi 和 vim 命令,我们可以在终端中打开并编辑文本文件,进行各种修改和编辑,保存后退出,是 Linux 和 Unix 系统中非常基础、常用的一种文本编辑方式。
总之,vi 和 vim 均是一款 Linux 和 Unix 中常用的基于字符终端的文本编辑器,其中 vim 是在 vi 基础上进行了改进和扩展的版本。

在 CentOS 中,系统默认安装的是 vim 编辑器,但是为了兼容 vi 编辑器的使用习惯,CentOS 将 vim 的执行文件命名为 vi。因此,实际上在 CentOS 中使用 vi 和 vim 是等价的,都是使用 vim 编辑器进行文本编辑。

2.vi 编辑器使用

第一步:使用vi编辑器打开文件,语法:vi 文件的路径 

- vi Hello.java(打开当前路径下的Hello.java)
- vi /home/bjpowernode/Hello.java(打开/home/bjpowernode目录下的Hello.java文件。)

第二步:编辑文件(vi编辑器为用户准备了两个模式)

- 第一个模式:命令行模式。(此时键入的都是命令)


- 第二个模式:编辑模式。(此时键入的内容都会写入文件)


- 进入vi编辑器时是命令模式:键入i命令进入编辑模式


- 从编辑模式回到命令模式:按一下esc键

第三步:保存。在命令模式下,输入以下命令:

- :wq  这是一个命令,这个命令可以保存并退出。


- :q! 这是一个命令,这个命令可以强行退出vi编辑器,并且不保存。

注意:vi编辑器打开的文件如果不存在,则自动新建。

3.vi编辑器常用命令

dd:删除光标所在行
yy:复制光标所在行到缓冲区
p:粘贴缓冲区中的内容
gg:光标回到文件第一行
GG:光标回到文件最后一行
^ :光标移动至当前行的行首
$ :光标移动至当前行的行尾
/关键字:按斜杠/键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按 n 键往后查找到想要的关键字为止
o命令:在下一行插入。
x命令:命令行模式下,x命令会删除单个字符。
a命令:在光标后面插入。

4.nano编辑器

nano编辑器相对于vi编辑器来说出现的较晚,1999年诞生。vi编辑器时1976年诞生。nano编辑器更加简单一些。
以下是nano常用的快捷键,这些快捷键多数是无法在windows环境下使用的,也就是说在xshell中无法使用,因为和windows很多快捷键是冲突的,在linux环境中可以用:

1. 打开文件:nano Test.java
2. 保存文件:ctrl + o
3. 退出nano:ctrl + x
4. 选中多个字符:shift + 左方向/右方向
5. 剪切:ctrl + k
6. 粘贴:ctrl + u
7. 搜索:ctrl + w
8. 替换:ctrl + \
9. 复制选中的:alt + 6
10. 撤销:alt + u
11. 重做:alt + e

http://www.xdnf.cn/news/454483.html

相关文章:

  • 编程技能:字符串函数04,直接使用 strcpy,解决报错
  • 【Lua】java 调用redis执行 lua脚本
  • 影响力最小化
  • React学习———React.memo、useMemo和useCallback
  • LeetCode100.7 接雨水
  • 【python爬虫】python+selenium实现Google Play Store应用信息爬虫+apk下载
  • 内存泄漏系列专题分析之十四:高通相机CamX ION/dmabuf内存管理机制ImageBuffer之GrallocBuffer原理
  • 代码随想录算法训练营Day58
  • 01-three.js vite基础示例
  • 机器视觉助力轨道缺陷检测
  • Python常用魔术方法
  • 分布式2(限流算法、分布式一致性算法、Zookeeper )
  • 解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs-强化学习算法AlphaGo
  • sqlalchemy库详细使用
  • 【C++】17. 多态
  • AI智能体应用平台-智能体定制-企业级agent开发平台哪个更好?
  • 【嵌入式开发-按键扫描】
  • 从构想到交付:专业级软开发流程详解
  • c++中的函数(默认参数,占位参数,重载)
  • Arduino使用红外收发模块
  • MySQL基础之开窗函数
  • 嵌入式(c语言篇)Day9
  • 基于nacos2.5.1的java微服务项目开发环境配置简介
  • Spyglass:跨时钟域同步(同步单元)
  • Gin 框架指南(代码+通俗解析版)
  • 2025前四月新能源汽车出口增长52.6%,外贸ERP数字化助力汽企持续跃升
  • 给 DBGridEh 增加勾选用的检查框 CheckBox
  • 通用软件项目技术报告 - 导读I
  • C++ 并发编程(1)再学习,为什么子线程不调用join方法或者detach方法,程序会崩溃? 仿函数的线程启动问题?为什么线程参数默认传参方式是值拷贝?
  • 阿里的库存秒杀实现与Inventory Hint技术解析