目录
1.shell命令以及运行原理
1.1原理上初步理解shell外壳
1.1.1为什么要有shell外壳
1.1.2shell外壳是什么
1.1.3怎么办(shell外壳的基本运行原理)
2.Linux下的用户
3.Linux权限管理
3.1.文件访问者的分类(人)
3.2文件权限的分类
3.3如何查看文件的权限
3.4如何修改权限
3.4.1 chmod
3.4.1.2Linux下文件权限的修改(八进制)
4 .权限验证
4.1Linux下的权限匹配机制
4.2修改文件的拥有者(chown)
4.3修改文件或目录的所属组(chgrp)
5.文件类型
5.1Linux下的文件后缀
5.2文件类型
5.3 file指令:
6.目录权限
7.权限掩码
8.umask
9.粘滞位
1.shell命令以及运行原理
Linux 严格意义上说的是一个操作系统,我们称之为 “ 核心( kernel ) “ ,但我们一般用户,不能直接使用 kernel 。 而是通过kernel 的 “ 外壳 ” 程序,也就是所谓的 shell ,来与 kernel 沟通。如何理解?为什么不能直接使用 kernel ? 从技术角度,Shell 的最简单定义:命令行解释器( command Interpreter )主要包含将使用者的命令翻译给核心( kernel )处理。同时,将核心的处理结果翻译给使用者。
对比 windows GUI ,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D 盘的操作,我们通常是双击 D 盘盘符 . 或者运行起来一个应用程序)。shell 对于 Linux ,有相同的作用,主要是对我们的指令进行解析,解析指令给 Linux 内核。反馈结果在通过内核运行出结果,通过shell 解析给用户。
帮助理解:如果说你是一个闷骚且害羞的程序员,那 shell 就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM 小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提 亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash 。
1.1原理上初步理解shell外壳
1.1.1为什么要有shell外壳
1.1.2shell外壳是什么
1.1.3怎么办(shell外壳的基本运行原理)
我们会发现,我们的命令行结束器并不叫:shell 而是 bash、sh
这是为什么?
举个列子:假如shell是媒婆,那么bash就是 李婆,sh是王婆
shell是命令行解释器,bash,sh就是明确的哪一款命令行解释器
每次你进行xshell登录的时候,OS都要给你这个用户的当前登录,重新启动配备一个bash(人手一个王婆)
2.Linux下的用户
3.Linux权限管理
3.1.文件访问者的分类(人)
权限本质上是限制人 ,就是能和不能的问题。
对应的操作对象,需要有满足人的需求的属性。
如:爱奇艺能满足我看电影的需求,用VIP和普通用户对我进行了限制,我不是VIP就看不了VIP电影。所以我只会去爱奇艺看电影,而不会去爱奇艺上刷题。
没有对应的属性,就不用专门设置权限来限制用户。
就好比,爱奇艺不会专门发公告说普通用户不能在爱奇艺上刷题
3.2文件权限的分类
3.3如何查看文件的权限
3.4如何修改权限
在Linux下:拥有者 user 简称 u
所属组 group 简称 g
其他 other 简称 o
3.4.1 chmod
语法: chmod [参数] 权限 文件名
功能: 设置文件的访问权限
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限 chmod格式 ① 用户表示符+/-=权限字符 +:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限=:向权限范围赋予权限代号所表示的权限用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
这里我们发现如果要对一个文件进行权限的大幅度修改时一个个写就比较麻烦。
所以,引入一个 a就代表所有人,不用再写u g o 了 。
3.4.1.2Linux下文件权限的修改(八进制)
4 .权限验证
那么我们对这些权限进行验证一下 ,我们看看如果没有这些权限我们无法完成什么操作。
上面验证了读权限(r)和写权限(w),没有是会发生什么情况。
接下来让我们验证一下可执行(x)权限。
可执行权限是否代表着,这文件就一定能被执行吗?
很明显不是的。
4.1Linux下的权限匹配机制
4.2修改文件的拥有者(chown)
格式: chown [参数] 用户名 文件名
功能:修改文件的拥有者
实例:
# chown user1 f1
# chown -R user1 filegroup1
4.3修改文件或目录的所属组(chgrp)
功能:修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
这个指令和上面的一样,进行操作的时候也需要超级权限
5.文件类型
5.1Linux下的文件后缀
window下文件类型用后缀表示,如 .txt .png
文件类型表示了文件属于哪一个类别,可以被那些软件操作
第一位表示:文件类型
LInux下不通过后缀来标识文件类型(不代表LInux下不用后缀)
但是,Linux不用文件后缀,不代表这这个文件后缀就无用。
在Linux文件之上的很多:软件,编译器。。。依旧需要文件后缀来识别文件。
那么我们该以怎么样的态度对待文件后缀呢?
我们依旧应该使用文件需要:即使文件后缀Linux不用,但是人要看,软件也要看 。
5.2文件类型
d :文件夹:文本,源代码,图片,视频,可执行- :普通文件l :软链接(类似 Windows 的快捷方式)b :块设备文件(例如硬盘、光驱等)p :管道文件c :字符设备文件(例如屏幕等串口设备)s :套接口文件
就是,Linux环境下有一切皆文件的概念,所以,Linux把很多其他东西都认为是文件
5.3 file指令:
功能说明:辨识文件类型。
语法:file [选项] 文件或目录...
常用选项 :-c 详细显示指令执行过程,便于排错或分析程序执行的情形。-z 尝试去解读压缩文件的内容。
6.目录权限
可执行权限 : 如果目录没有可执行权限 , 则无法 cd 到目录中 .可读权限 : 如果目录没有可读权限 , 则无法用 ls 等命令查看目录中的文件内容 .可写权限 : 如果目录没有可写权限 , 则无法在目录中创建文件 , 也无法在目录中删除文件 .可以利用控制变量法去实验(指令行太长了,我就不贴上来了)
7.权限掩码
新建文件夹默认权限 =0666 (一般文件不需要可执行)新建目录默认权限 =0777(目录文件确实需要可执行)
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是 mask ,则实际创建的出来的文件权限是 : mask & ~umask
8.umask
功能 : 查看或修改文件掩码。
格式:umask 权限值
说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022 ,普通用户默认为0002 。
9.粘滞位
我们需要明白:对于一个文件能否被删除并不取决于文件的本身!!
取决于该用户对于文件所在目录是否拥有写权限。
如果我们需要对一个在一个特定的目录下,实现文件的共享呢?
为了实现这个多个用户之间的数据共享,所以我们就需要将other的特定目录权限rwx全部放开。
这时候确实实现了文件之间数据的共享。但是,将全部权限放开了之后,那么任何人都可以来删除我的文件。(所以此时我们就需要一个全新的权限)
为了解决这个不科学的问题, Linux引入了粘滞位的概念。
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:
一、超级管理员删除二、该目录的所有者删除三、该文件的所有者删除