第二章:磁盘管理与文件管理
一、磁盘管理
1.windows和Linux磁盘管理的区别
windows资源管理方式
-
系统一般安装在C盘
-
C盘下的"Windows"目录是操作系统的核心
-
C盘下的"Program Files"目录下安装软件
-
C盘下的"用户"目录是所有的用户,包括超级管理员也在其中
-
windows操作系统分为C盘、D盘、E盘等,每个磁盘下采用文档树的形式组织文件
Linux资源管理方式
linux操作系统采用一个文档树来组织所有的资源。 这棵树的根目录的名字叫做:/ / 是一个目录名字,是linux操作系统中所有文件的根。 / 目录下又有很多其他的子目录,比如:dev home lib .....
比较重要的几个目录概述:
-
/bin目录:包含一些常用的二进制可执行文件,如cat、ls、mkdir、rm等。这些二进制文件在系统运行时始终可用,可以被任何用户运行。
-
/etc目录:包含了系统的大多数配置文件,如网络配置、用户登录信息、软件包安装配置等。大多数应用程序在安装后都会在这个目录下创建自己的子目录,以便存储自己的配置文件。
-
/home目录:包含Linux系统用户的家目录,每个用户的数据和个人文件都存放在这里。
-
/lib目录:包含一些共享库文件,应用程序可以通过这些共享库文件调用系统的功能,如libc.so,是C语言函数库的共享库。
-
/root目录:是系统管理者(超级用户)的家目录。
-
/tmp目录:是系统中的一个临时目录,所有用户都可以在这里创建临时文件,文件系统会定期清空该目录,以防止文件滞留。
-
/usr目录:包含系统启动后,所有用户能访问的应用程序和数据文件。
-
/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