第2章 文件管理大师:一文详解CentOS下的文件操作技巧

玩转VMware:手把手教你安装CentOS,开启虚拟世界的大门一章中,您已经成功地在VMware Workstation上搭建了自己的CentOS环境。接下来,我们将一起探索在这个新环境中如何管理文件------从简单的文件创建、删除到复杂的权限管理,每一项操作都是您熟练掌握Linux系统的关键。那么,让我们继续前行,开始今天的旅程吧!

任务描述

1、创建/删除目录(文件夹)

2、目录切换

3、列出目录项

4、新建/删除文件

5、列举文件

6、查看文件内容

7、查找文件

8、复制文件

9、文件重命令/移动文件

10、比较文件

11、合并文件

12、改变文件读取权限

13、文件重定向和追加

14、软链接和符号链接

15、文件打包

16、文件解压

知识回顾

【文件属性】Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 在 Linux 中我们可以使用 ll 或者 ls --l 命令来显示一个文件的属性以及文件所属的用户和组。

实例中,其中"下载"的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。 在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

当为 d 则是目录

当为 - 则是文件;

若是 l 则表示为链接文档(link file);

若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,r 代表可读(read)、w 代表可写(write)、x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

每个文件的属性由左边第一部分的 10 个字符来确定(如下图):

从左至右用 0-9 这些数字来表示。

第 0 位确定文件类型

第 1-3 位确定属主(该文件的拥有者)拥有该文件的权限。

第 4-6 位确定属组(拥有者的同组用户)拥有该文件的权限。

第 7-9 位确定其他用户拥有该文件的权限。

第 1、4、7 位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限。

第 2、5、8 位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限。

第 3、6、9 位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。

任务准备

  1. 前提条件是Linux操作系统已经正常运行。
  2. 桌面右键打开终端或远程SSH连接操作Linux服务器。
  3. 学会帮助命令,在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档; linux系统内置的帮助文档很详细,通常能解决我们的问题,我们需要掌握如何正确的去使用它们。
  • 在只记得部分命令关键字的场合,我们可通过man -k来搜索;
  • 需要知道某个命令的简要说明,可以使用whatis;而更详细的介绍,则可用info命令;
  • 查看命令在哪个位置,我们需要使用which;
  • 而对于命令的具体参数及使用方法,我们需要用到强大的man;

任务实施

1、创建文件夹budaos

csharp 复制代码
[root@localhost /]# mkdir budaos

2、删除文件夹budaos

csharp 复制代码
[root@localhost /]# rmdir budaos

切换到mnt目录3、目录切换

csharp 复制代码
[root@localhost /]# cd mnt

Ls(list)4、列出usr目录项及文件

csharp 复制代码
[root@localhost /]# ls /usr

5、新建/删除test.txt文件

csharp 复制代码
[root@localhost /]# touch test.txt

6、查看文件

学会使用view,cat,more,less,head,tail查看文件

csharp 复制代码
[root@localhost /]#cat /etc/yum.conf
[root@localhost /]#view /etc/yum.conf
[root@localhost /]#more /etc/yum.conf
[root@localhost /]#less /etc/yum.conf
[root@localhost /]#head -n 8 /etc/yum.conf
[root@localhost /]#tail -n 9 /etc/yum.conf

7、查找文件

csharp 复制代码
[root@localhost /]# find -name yum.conf

8、复制文件:复制/etc/yum.conf至/mnt

csharp 复制代码
[root@localhost /]# cp -Rf /etc/yum.conf /mnt

9、文件重命名和移动

csharp 复制代码
[root@localhost /]# cd /mnt
[root@localhost /]# touch test.txt
[root@localhost /]# mv test.txt testbak.txt
[root@localhost /]#mv /mnt/testbak.txt /opt

10、比较文件

新建test.txt写入内容I am a teacher! 再创建文件test1.txt写入内容I am a student!

csharp 复制代码
[root@localhost /]# vi test.txt
[root@localhost /]# vi test1.txt
[root@localhost /]# diff test.txt test1.txt

11、合并文件并覆盖原文件

csharp 复制代码
[root@localhost /]# cat test.txt  test1.txt  > test2.txt

12、合并并追加文件

csharp 复制代码
[root@localhost /]# cat test.txt  test1.txt  >>test2.txt

13、改变文件读取权限

chmod -R a+rw *

数字权限使用格式

在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4 +1 = 5 即

若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7 若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5

上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法格式为 :

chmod file...

其中a,b,c各为一个数字,分别代表User、Group、及Other的权限。相当于简化版的chmod u=权限,g=权限,o=权限 file...而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限

例如:

chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)

设置拥有者可读写,其他人不可读写执行

chmod 600 file (等价于 chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file )

csharp 复制代码
[root@localhost /]#chmod 644 mm.txt

14、文件重定向或追加

15、打包成gzip压缩包

csharp 复制代码
[root@localhost /]# tar -zcvf test.tar.gz test.txt   # 打包后,以 gzip 压缩

16、解压文件

其中:-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

csharp 复制代码
[root@localhost /]# tar -zxvf test.tar.gz  -C /mnt          # 将 tar 包解压缩

17、文件重定向或追加

gzip * # 将所有文件压缩成 .gz 文件

gzip -l * # 详细显示压缩文件的信息,并不解压

gzip -dv * # 解压上例中的所有压缩文件,并列出详细的信息

gzip -r test.tar # 压缩一个 tar 备份文件,此时压缩文件的扩展名为.tar.gz

gzip -rv test/ # 递归的压缩目录

gzip -dr test/ # 递归地解压目录

csharp 复制代码
[root@localhost mnt]# gzip *  #将mnt目录下所有的文件压缩成.gz文件

18、zip压缩文件

将 /mnt/ 这个目录下所有文件和文件夹打包为当前目录下的 mnt.zip

csharp 复制代码
[root@localhost /]# zip -q -r mnt.zip /mnt
python 复制代码
unzip mnt.zip              # 解压 zip 文件19、unzip解压
unzip -n mnt.zip -d /tmp/  # 在指定目录下解压缩
unzip -o mnt.zip -d /tmp/  # 在指定目录下解压缩,如果有相同文件存在则覆盖
unzip -v mnt.zip           # 查看压缩文件目录,但不解压
csharp 复制代码
[root@localhost /]# unzip mnt.zip

19、chown命令使用

将目录/mnt/及其下面的所有文件、子目录的文件主改成creatorblue

csharp 复制代码
[root@localhost /]# chown -R creatorblue /mnt

20、更改文件或文件夹权限

将 /mnt/ 这个目录下所有文件和文件夹设置为755权限

csharp 复制代码
[root@localhost /]# chmod -Rf  755 /mnt/*

小结:了解在CentOS环境下如何高效管理文件。从创建和删除目录到切换工作目录,从文件的建立与移除到文件内容的查看,涵盖了文件管理的基本操作。此外,还介绍了文件查找、复制、重命名、权限修改等高级技巧,并涉及文件的打包与解压方法。通过本文的学习,您将掌握Linux系统中文件操作的核心技能,提升日常工作的效率。

相关推荐
传而习乎1 分钟前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
我们的五年11 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记32 分钟前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教35 分钟前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特1 小时前
环境变量简介
linux
小陈phd1 小时前
Vscode LinuxC++环境配置
linux·c++·vscode
是阿建吖!1 小时前
【Linux】进程状态
linux·运维
明明跟你说过2 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
Komorebi.py3 小时前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh3 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法