Linux 学习笔记 文件、目录操作与用户群组权限

本文介绍了Linux命令行的基本概念,包括命令行提示符的组成、简单的命令如sudo、date和ls的使用。此外,讨论了命令的快捷键、参数以及文件和目录的管理,如文件大小的查看、目录的创建和移动。同时,文章强调了用户权限、群组管理以及如何修改文件权限的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、命令行提示符

1.1 命令行基础

bearpi:当前用户名,在@前是用户名

ubuntu:用户所在的域名,在@后面,这是我自定义的,默认应该是主机名

~ 波浪线为目前所在目录,~代表家目录(home directory)

后面紧跟的 $ 为当前所具有的权限,$ 代表普通用户 # 代表 root 管理员

1.2 一些简单的命令

1.2.1 sudo su 命令

可以暂时获得 root 权限,可见后边的 $ 变成了 #

1.2.2 date 命令

顾名思义,这个命令是获得当前系统时间

1.2.3 ls 命令

ls 是 list 的缩写,是列出、列举的意思,在 linux 中,ls 命令是列出当前目录的文件或文件夹。

下面列举出了用户家目录的文件夹,从左到右分别是 桌面、文档、下载、音乐等文件夹

1.3 寻找命令的快捷键

在寻找任何命令或者文件都可以摁 tab 键显示提示,下面在终端输入 da 之后摁两下 tab 键即给出提示:

在 cd 后摁两下 tab 键 可以给出可选的文件名 

 

1.4 命令的参数

 参数是在命令后的一些补充项,命令和参数用空格隔开即可

  • 参数可以有多个,都用空格隔开
  • 参数可以包括数字、字母等,并且区分大小写
  • 参数没有固定的格式,但要遵守一般的规范

1.4.1 短参数

段参数是指,只有一个字母的参数,是参数的缩写方式,由一个 - 短杆作为前缀

下图执行了 ls -a 这个短参数命令 ,其作用是显示隐藏的文件或文件夹

 ls -l 短参数命令,作用是列出详细的信息

 

 段参数可以加好几个,也可以合并一起用:

1.4.2 长参数

长参数使用两个 -- 作为参数开头,在 ls 命令中,-a 和 --all 的功能完全一致

二、linux 的文件与目录

在 linux 中,一!切!皆!文!件!即使是通过驱动挂载的外设也是文件

linux 的不像 windows 一样有 C盘、D盘等。linux 只有一个根目录 / (斜杠)

linux 中没有比根目录再高一阶的目录了,没有目录包括根目录。

2.1 根目录的结构

执行 ls / 可显示根目录下的结构,在这里有一些是我自行添加的,新装的 ubuntu 系统并没有。

其中有几个重要的文件夹:

bin是英语 binary 的缩写,表示二进制文件
boot和引导启动程序密切相关的文件
dev外设,他的子目录,每一个对应一个外设
etc包括系统的配置文件
home表示 “家”,用户的私人目录,类似于 windows 中我的文档
lib表示库,包括被调用的库文件,也就是 windows 中的 .dll 文件
media媒体文件夹,可移动的外设,光盘、U盘等,就可以通过此目录访问
mnt英语 mount 的缩写,表示挂载,挂载一些外设即可通过此目录访问
 opt目录 应用程序目录,第三方软件或者插件

 其中所有根目录结构基本如下,home 目录的每一个文件夹即代表一个用户,当前图中表示有两个目录,oscar 和 john。但是 root 用户文件夹则在根目录而不在此文件夹中。

执行 ls /home 查看home目录下结构,可见系统中只有 bearpi 一个用户文件夹

 

2.2 witch 命令

witch 命令可以查看命令程序所在的目录,执行 which pwd 显示 pwd 命令在 bin 下。

 

2.3 ls 命令常用参数

-t按修改、创建时间正序
-a显示所有目录,包括隐藏的,以 . 开头的文件是隐藏文件
-A将不包括 . 和 .. 也就是本目录和上一级目录
-l列出详细信息
-h

以 Kb、Mb、Gb 列出信息

-a -A 区别:

 ls -l 命令详解,其中下面这些陌生的东西会在后边讲解

 

 推荐使用 ls -lh 这样文件大小比较直观 

 

2.4 cd 命令 跳转目录

cd (change directory) 切换目录,最常用的命令。

cd ../ 跳转到上一级目录

cd /home 跳转到 /home 目录

2.5 du 命令 查看目录大小

ls -l 命令其实并不会深入统计子目录的文件大小,du 命令会递归统计文件夹所有大小

2.6 touch 命令 创建一个空白文件

touch test 在当前目录创建一个名为 test 的文件,如果执行 touch / test 则是在根目录创建

如果执行 touch test1 test2 则会创建两个文件

touch 命令是触摸这个文件的意思,如果对一个已经存在的文件使用 test 命令,则会更新修改时间,没有则会自动创建

2.7 mkdir 命令  创建一个目录 

mkdir 是 make 和 directory 的缩写,表示创建一个文件夹

2.8 cp 命令 拷贝文件与文件夹

2.8.1 拷贝文件

使用 cp test dir1 即可将 test 文件拷贝到 dir1 文件夹中

2.8.2 拷贝目录

只需要在后边加上 -r 参数,意思是为递归的 (recursive),即可递归拷贝过去

比如:cp dir1 dir2 -r 即可将 dir1 拷贝到 dir2 目录下

2.9 mv 命令 移动/重命名文件与文件夹

2.9.1 移动文件或文件夹

 使用方法与 cp 命令一样,只是换成了 mv,不再赘述

也可以配合通配符使用:如 mv *.txt dir1 即可将所有的 txt 文件移动到 dir1 下

2.9.2 重命名文件或文件夹

除了移动文件,mv 命令还可以用于重命名文件。

在 linux 系统中,没有单独重命名文件的命令,因为 mv 命令可以移动文件,如果我们把一个文件移动到当前文件夹,并且取一个新名字,不就是等同于重命名了吗?

下图中,我们执行了 mv dir1 dir2 把 dir1 文件夹重命名为 dir2。

2.10 rm 命令 删除文件或目录

rm test 命令即可删除本目录的 test 文件

其中可以添加参数 -r 递归删除;-f 不询问,强制删除;-i 挨个文件提示

来分析一下大名鼎鼎的 rm -rf/*

-r 递归删除,-f 不询问,/* 即代表删除根目录下所有的文件。执行后会删除整个系统

注意,请不要将 windows 的盘挂载到 linux 中还执行这条命令,挂载盘也在根目录下。

2.11 硬链接

 硬链接类似于 windows 的快捷方式,在 linux 下有两种链接方式:

  • physical link:物理链接或硬链接
  • ymbolic link:符号链接或软连接

其中,硬链接只能连接文件,软连接可以连接文件夹。

2.11.1 inode 标识

每个文件的文件内容均被分配到一个标识号码,就是 inode。因此,如果要在 linux 实现类似于快捷方式的东西,只需要将这个 “快捷方式文件”,指向这个唯一的 inode 即可。

2.11.2 ln 命令创建硬连接

ln file1 file2 命令即可为file1 文件创建了 名为 file2 的硬链接

下图中使用了 stat file1/file2 来查看文件的 inode 值,可见在创建硬连接后,这两者值是相同的。

此时,我们删除file1 或者 file2 任意一个文件都不会 inode 指向的这一块数据产生影响,只有当两者都删除,linux 才会将这块数据删除。

三、用户权限和群组

一图说明 root,群组和用户的关系

3.1 sudo 在普通用户下获得 root 权限

sudo 是命令 substitute user do 的缩写,substitute 是代替的意思 u 则是 user 的缩写。合在一起就是替用来执行... 的意思。

普通的用法就是 sudo 后接希望 root 权限执行的命令。下图中 使用 root 权限执行了 date

 sudo su 命令可以让当前终端暂时获得 root 权限。在下图中,我在一个中断窗口使用 sudo su 获得root 权限,可见使用后 $ 变成了 #,但是我打开一个新窗口则还是普通权限的 $。

3.2 创建用户

创建用户有两个命令:useradd 和 adduser

  • 使用 useradd 时,如果后面不添加任何参数选项,例如:sudo useradd test 创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。
  • 使用adduser 则默认添加了这三者,并且要求输入初始密码。

下面我们只演示 adduser 的用法,输入 adduser abc 即可创建一个名为 abc 的用户,在注销后即可用这个账号从新登录。

3.2 passwd 命令 修改密码

passwd abc 即可修改 abc 用户的密码,下面我们用 root 权限来执行试试:

3.3 userdel 命令 删除用户命令

userdel abc 可以删除我们刚刚创建的 abc 用户。不过这种办法并不会删除 home 目录下 abc 的目录。

加入  -r 参数 或者 --remove 可以将 home 目录下也一起删除

3.4 groupadd 命令 添加群组

groupadd group1 命令创建一个名为 group1 的群组

3.5 usermod 命令 修改用户账户

usermod -g group1 abc 将 abc 添加到 group1 组,可见使用 ls -l /home 命令查看 abc 群组,已经是 group1 组了。

使用 usermod -G group1 group2 group3 abc 大写 -G 参数即可将 abc 添加到多个群组。

但是 -G 参数会先删除当前群组再添加,此时可以使用 -G -a 两个参数,a是 append 的意思。

3.6 groupdel 命令 删除群组

使用 groupdel group1 命令即可删除 group1 群组,但是要需要此群组下没有任何用户,如果有先使用 usermod -G 命令将其移动到别的组。

3.7 文件权限的原理

使用 ls -l 命令,左边第一组即说明这个文件的权限。

 

属性:d 英语 directory 的缩写表示这是一个文件夹。在第二行第一个则是 - 表示这是一个连接,说明这是一个文件或者软/硬连接。

所有组:r 表示读 (read),w 表示写 (write),x 表示可执行 (execute)。rwx 表示当前用户可读可写可执行。如果是 - 则说明没有这个权限。

群组用户:说明了当前群组的对该文件的权限

其他用户:顾名思义,说明了其他用户对该文件的权限

比如第二行 -rw-rw-r-- 表示这是一个文件或者软/硬连接,所有者权限可读可写不可执行,群组权限相同,其他用户只可读。

3.8 修改文件权限 chmod 命令

 linux 对每种权限都分配了一个数字。

比如我们要分配读、写、不可执行的权限,那么就将 4+2=6,6即代表这种权限。

由上一章 3.7,linux 共有三组权限:所有组、群组用户组、其他用户组,那么我们用三个数组就可以配置这些权限。

由此可知,最高的权限自然是 777,任何用户可读可写可执行。最低的权限是 000 任何用户都不能对这个文件做什么。

下面来执行一下 chmod 000 file2 可见在执行后文件权限都变成了 ---------- 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值