记录学习GNU/Linux(2)

本文介绍了Linux中修改文件属性与权限的命令,包括chgrp、chown和chmod,详细解释了数字和符号模式下权限的设置方法。还讨论了Linux的文件类型、绝对路径与相对路径的概念,以及一些常用的命令如cd、pwd、mkdir、rmdir、touch和ls的用法。
摘要由CSDN通过智能技术生成

目录

0. 前言

1. 修改文件属性与权限

1.1 修改所属用户组 —— chgrp

1.2 修改文件拥有者 —— chown

1.3 修改文件权限 —— chmod

2. Linux文件类型

3. 绝对路径与相对路径

4. 一些常用的命令

4.1 切换目录 —— cd

4.2 显示当前目录 —— pwd

4.3 新建目录(文件夹) —— mkdir

4.4 删除‘空’目录——rmdir

4.5 新建文件 —— touch

4.6 查看目录信息 —— ls

5. 结束语


0. 前言

今天还是接着前面继续记录我学习Linux的过程,虽然学的比较浅薄,但是通过相关资料查阅,我还是尽量补全了相关概念或者命令的使用,以备后面遇到不懂的地方,能及时找到答案,但说实话写这些东西就当加深记忆吧。就说这么多,要开始写啦!

1. 修改文件属性与权限

图1.1 文件权限组成

如图1.1所示,是文件或目录的权限属性,而当在Linux系统中管理文件和目录时,经常需要更改文件和目录的属性和权限。其中以下三个命令是Linux系统中非常重要的文件和目录管理命令,使用它们可以更好地控制文件和目录的属性和权限,提高系统的安全性和管理效率。

注意:在修改文件或目录的属性和权限时,请确保您有足够的权限执行这些操作。

1.1 修改所属用户组 —— chgrp

chgrp命令用于修改文件或目录所属的用户组。通常情况下,每个用户都属于一个或多个用户组。文件或目录的所属用户组是由创建该文件或目录的用户在创建时指定的。要使用chgrp命令修改文件或目录的所属用户组,需要使用该命令的以下语法:

chgrp [选项] 用户组名 文件名/目录名

例如,要将文件file.txt的所属用户组更改为group1,可以使用以下命令:

chgrp group1 file.txt

1.2 修改文件拥有者 —— chown

chown命令用于修改文件或目录的拥有者和所属用户组。通常情况下,每个文件或目录都由一个拥有者和一个所属用户组来管理。文件或目录的拥有者和所属用户组是由创建该文件或目录的用户在创建时指定的。要使用chown命令修改文件或目录的拥有者和所属用户组,需要使用该命令的以下语法:

chown [选项] 用户名:用户组名 文件名/目录名

例如,要将文件file.txt的拥有者更改为user1,所属用户组更改为group1,可以使用以下命令:

chown user1:group1 file.txt

其中冒号(:)用于分隔所有者和所在组。

1.3 修改文件权限 —— chmod

chmod命令用于修改文件或目录的权限。通常情况下,每个文件或目录都有一个访问权限控制列表,用于限制用户访问该文件或目录的权限。访问权限控制列表由三种权限组成,分别是读取权限(r)、写入权限(w)和执行权限(x),它们分别表示用户对文件或目录的读取、写入和执行权限。要使用chmod命令修改文件或目录的权限,需要使用该命令的以下语法:

chmod [选项] 权限模式 文件名/目录名

例如,要将文件file.txt的所有者设置为读、写和执行权限,所在组设置为读和执行权限,其他用户设置为执行权限,可以使用以下命令:

chmod 751 file.txt
图1.2 权限修改前
图1.3 权限修改后

那么这里的751是什么意思呢?

  • 1.3.1 数字类型模式

在Linux系统中,文件和目录的访问权限由三位数字表示,分别是针对文件所有者所在组其他用户的访问权限。每个数字都由三个位表示,每个位表示一个访问权限。读取权限对应的位用数字4(100b)表示,写入权限对应的位用数字2(010b)表示,执行权限对应的位用数字1(001b)表示,若不具有该权限则用数字0(000b)表示。因此,751这个三位数字的组合代表了不同用户对该文件或目录的访问权限。具体的权限组合可以参考下表:

权限数字表示说明
无权限0没有任何访问权限
执行权限x或1可以执行该文件或查看该目录的内容
写入权限w或2可以编辑、修改或删除该文件或目录中的文件
读取权限r或4可以读取该文件或目录的内容
执行和写入权限wx或3可以执行和修改该文件或查看该目录的内容
读取和执行权限rx或5可以读取和执行该文件或查看该目录的内容
读取和写入权限rw或6可以读取和编辑该文件或修改该目录中的文件
读取、写入和执行权限rwx或7可以读取、编辑、执行该文件或查看该目录的内容

因此,这里的751是chmod命令中的权限模式,它表示修改文件或目录的权限为以下方式:

  • 对于文件所有者,具有读取(4)、写入(2)和执行(1)权限,即4+2+1=7。

  • 对于所在组的用户,具有读取(4)和执行(1)权限,即4+1=5。

  • 对于其他用户,具有执行(1)权限。

  • 1.3.2 符号模式

在Linux系统中,还有另外一种设置权限的方式,称之为符号模式(Symbolic Mode)。符号模式通过使用符号表示权限,可以更加直观和方便地设置文件或目录的权限。符号模式中,使用加号(+)添加权限、减号(-)删除权限和等号(=)设置权限的方式来修改文件或目录的权限。

下面是符号模式下权限表示方法的表格:

符号含义
u文件所有者(user)
g所在组的用户(group)
o其他用户(others)
a所有用户(all)
+添加权限
-删除权限
=设置权限
r读取权限
w写入权限
x执行权限

通过组合使用这些符号,可以更加灵活地设置文件或目录的权限。例如,使用符号模式的方式将文件所有者的读、写和执行权限设置为可执行,所在组的用户的读取和执行权限设置为可执行,其他用户的执行权限设置为可执行,可以使用chmod u=rwx,g=rx,o=x或者chmod 751来设置。


当然采用符号模式设置权限不止于此,下面是一些使用符号模式设置权限的一般例子:

1) 将文件权限设置为所有用户都可以读取:

chmod a+r filename

2) 将文件权限设置为文件所有者和所在组的用户都可以读取和写入,其他用户没有任何权限:

chmod u=rw,g=rw,o= filename

3) 将文件权限设置为文件所有者和所在组的用户都可以读取、写入和执行,其他用户只能读取和执行:

chmod u=rwx,g=rwx,o=rx filename

4) 将目录权限设置为文件所有者和所在组的用户都可以读取、写入和执行,其他用户只能执行:

chmod u=rwx,g=rwx,o=x directoryname

ps : 符号模式下的权限设置是相对于原来的权限变化的,因此需要先了解原来的权限设置。如果不确定原来的权限设置,建议使用数字模式来设置权限。

2. Linux文件类型

下面是常见的Linux文件类型及其属性的表格描述:

文件类型属性描述
普通文件-存储文本或二进制数据
目录d存储其他文件和目录
链接文件l指向另一个文件或目录
设备文件c 或 b代表物理设备或者虚拟设备
管道文件p用于进程间通信
套接字文件s用于网络通信

文件类型可以通过 ls -l 命令来查看,其中第一列的第一个字符表示文件类型,其余九个字符表示文件权限信息。例如,一个普通文件的权限信息可能是 -rw-r--r--,其中第一个字符 - 表示文件类型为普通文件。

3. 绝对路径与相对路径

绝对路径和相对路径都是用于表示文件或目录在文件系统中的位置的方式,具体解释如下:

  • 绝对路径:从文件系统根目录(/)开始的完整路径。使用绝对路径,可以明确地指定文件或目录的位置。在Linux系统中,绝对路径以/开头。例如,/home/user1/file1 表示文件系统中的/home目录下的user1目录中的file1文件。

  • 相对路径:相对于当前工作目录的路径。使用相对路径,可以相对于当前目录来表示文件或目录的位置。在Linux系统中,当前工作目录可以使用pwd命令查看。例如,假设当前工作目录是/home/user1,那么file1文件的相对路径可以是./file1或者file1。

相对路径可以使用以下符号来表示:

  • .:表示当前目录,例如./file1表示当前目录下的file1文件;

  • ..:表示上级目录,例如../dir1表示上级目录中的dir1目录;

  • ~:表示当前用户的主(家)目录,例如~/file1表示当前用户的主目录下的file1文件。

ps : 使用相对路径时,不同用户可能会有不同的工作目录,因此相对路径的含义可能会不同。而绝对路径始终指向同一个文件或目录。

4. 一些常用的命令

4.1 切换目录 —— cd

在Linux中,cd是change directory的缩写,使用cd命令可以切换当前工作目录。cd命令有以下用法:

  • cd directory:将当前工作目录切换到指定目录;

  • cd ..:将当前工作目录切换到上级目录;

  • cd ~cd:将当前工作目录切换到当前用户的家目录。

例如,假设当前工作目录是/home/user1,那么以下命令可以切换工作目录:

  • cd /:切换到根目录;

  • cd /var/log:切换到/var/log目录;

  • cd ..:切换到/home目录;

  • cd ~/Documents:切换到当前用户的家目录下的Documents目录;

  • cd:切换到当前用户的家目录。

图4.1 切换目录

ps : 如果目标目录的权限不足或者不存在,cd命令将会失败并显示错误信息。另外,cd命令只会影响当前的shell会话,不会影响其他会话或进程。

4.2 显示当前目录 —— pwd

在Linux中,可以使用pwd命令来显示当前工作目录的完整路径。pwd命令是print working directory的缩写,它会输出当前工作目录的绝对路径。例如,假设当前工作目录是/home/user1/Documents,那么执行pwd命令后,会输出以下结果:

/home/user1/Documents

ps : pwd命令只会显示当前工作目录的路径,而不会列出目录中的文件或子目录。如果需要列出目录中的文件或子目录,可以使用ls命令。

此外,可以使用-P参数来显示符号链接解析后的真实路径。如果当前工作目录是一个符号链接(软链接或硬链接)指向的目录,则pwd默认会显示符号链接的路径。使用-P参数后,pwd会显示符号链接解析后的真实路径

4.3 新建目录(文件夹) —— mkdir

在Linux中,可以使用mkdir命令来新建目录。mkdir命令的基本语法如下:

mkdir [选项] 目录名

其中,目录名是要创建的目录的名称,选项是可选的,可以用来指定一些特殊的操作。常用的mkdir命令选项包括:

  • -p:递归地创建目录,如果父目录不存在则会自动创建;

  • -m:指定新建目录的权限,使用数字或符号表示;

  • -v:显示创建的目录的名称。

例如,要在当前工作目录下创建一个名为mydir的新目录,可以使用以下命令:

mkdir mydir

如果要创建一个多级目录,例如/home/user1/Documents/mydir,可以使用-p选项递归创建:

mkdir -p /home/user1/Documents/mydir

如果需要指定新建目录的权限,可以使用-m选项。例如,以下命令会创建一个新目录mydir,并将其权限设置为rwxr-xr-x

mkdir -m 755 mydir
图4.2 新建目录

ps : mkdir命令只能在当前用户有写权限的目录下创建新目录。如果目标目录不存在,但是其父目录存在且当前用户有对其父目录的写权限,则可以使用-p选项递归创建目录。

4.4 删除‘空’目录——rmdir

在Linux中,可以使用rmdir命令来删除空目录。rmdir命令的基本语法如下:

rmdir [选项] 目录名

其中,目录名是要删除的空目录的名称,选项是可选的,可以用来指定一些特殊的操作。常用的rmdir命令选项包括:

  • -p:递归地删除指定目录及其空父目录;

  • -v:显示删除的目录名称。

例如,要删除当前工作目录下名为mydir的空目录,可以使用以下命令:

rmdir mydir

如果要删除一个多级目录,例如/home/user1/Documents/mydir,可以使用-p选项递归删除:

rmdir -p /home/user1/Documents/mydir

ps : rmdir命令只能删除空目录,如果目录下有文件或其他子目录,rmdir命令将会报错。如果要删除非空目录,可以使用rm命令,并加上适当的选项。

4.5 新建文件 —— touch

在Linux中,可以使用touch命令来创建空文件或更新已有文件的时间戳。touch命令的基本语法如下:

touch [选项] 文件名

其中,文件名是要创建或更新的文件名称,选项是可选的,可以用来指定一些特殊的操作。常用的touch命令选项包括:

  • -a:仅更新文件的访问时间戳;

  • -c:如果文件不存在,则不创建文件;

  • -m:仅更新文件的修改时间戳;

  • -r:使用指定文件的时间戳更新目标文件的时间戳;

  • -t:使用指定时间戳更新目标文件的时间戳。

如果使用touch命令创建一个空文件,例如myfile.txt,可以执行以下命令:

touch myfile.txt

如果文件不存在,则touch命令会创建一个名为myfile.txt的空文件。如果文件已经存在,则touch命令会更新该文件的修改时间戳为当前时间。

如果要同时更新访问时间戳和修改时间戳,可以使用-a-m选项:

touch -am myfile.txt

如果要更新文件的时间戳为指定时间,可以使用-t选项。例如,以下命令将myfile.txt的时间戳设置为2022年4月30日12时30分:

touch -t 202204301230 myfile.txt

ps : touch命令只能在当前用户有写权限的目录下创建或更新文件。如果目标文件不存在,但是其父目录存在且当前用户有对其父目录的写权限,则可以使用-c选项来避免创建新文件,即该文件不存在也不会创建新的文件;若目标存在仅做修改时间戳操作

图4.4 使用'-c'选项来避免创建新文件

4.6 查看目录信息 —— ls

在Ubuntu中,"ls"是一个常用的命令,用于列出当前目录中的文件和目录。

以下是一些常见的"ls"命令的选项:

  • "-l":显示详细的文件信息,例如文件类型、权限、所有者、大小和最后修改时间等。

  • "-a":显示所有文件和目录,包括以"."开头的隐藏文件和目录。

  • "-h":以人类可读的方式显示文件大小。

  • "-t":按时间顺序列出文件,最新的文件先显示。

  • "-r":反向排序,最早的文件先显示。

图4.5 查看目录信息

示例命令:

ls -l  # 以详细形式列出当前目录的文件和目录
ls -a  # 列出当前目录中所有的文件和目录,包括隐藏文件和目录
ls -lh # 以人类可读的方式列出当前目录的文件和目录的详细信息
ls -lt # 按时间顺序列出当前目录的文件和目录
ls -lr # 按时间相反顺序列出当前目录的文件和目录

5. 结束语

算啦,不写了,就这样结束本次记录吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sokedev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值