一,shell命令以及运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
- 将使用者的命令翻译给核心(kernel)处理。
- 同时,将核心的处理结果翻译给使用者
shell统称也就是下面的具体的bush
shell 对比于****windows GUI(图形界面),我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的
操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)
那如何理解shell(外壳程序)功能呢?
1. 方便用户完成操作。
我们如果想打开一个文件,而文件存在磁盘中,不可嫩我们专卖去学习一下机器码,所以我们同过简单指令告诉shell我的请求,让她和内核进行沟通,打开文件。
2. 处理内核返回的消息。
如果用户发送明显的错误请求,shell会直接返回错误信息,不会向内核发送请求,这样也就保护内核。
如果多个用户向shell发送多条请求,shell会为每个用户创建一个子进程,再向内核发出请求。
二 ,Linux用户权限
*Linux下有两种用户:超级用户(root***)、普通用户。 **
超级用户:可以再linux系统下做任何事情,不受限制。
普通用户:在linux下做有限的事情。
(注意:超级用户的命令提示符是“#”,普通用户的命令提示符是“$”)
1. su —— 用户切换
命令:su - [用户名]
功能:切换用户。
- su
路径(超级管理员)切换root下的
注意: 一定不要和普通用户密码不同。
- su - [用户名] 当我们在root身份下,使用该指令可以访问任意创建的用户。
- 我们在普通用户下,登陆root,那我们如何回到用户,可不只su - [用户名]。
Ctrl + d 即可
(注意: 我们在普通用户中,运用su - 变成root,其本质是创建一个子进程,而我们回退到原来的普通用户建议使用strl + d,因为su -[用户名]会创建一个新的子进程,没必要叠加这么多的进程)
三,权限管理
权限 = 用户 + 事物的属性(文件属性)
就好比如:我是一名普通的学生,可以随意进出我的宿舍,但我缺无法随意进入校长的办公室。
事物的属性: 比如:面包具有被吃的属性,汽车具有被开的属性,桌子具有被办公的属性。
1. 理解
我们出来权限就可以通过这两方面进行修改,比如:总统桌在那里,我没有使用的权限是用户受限,桌子没有失掉他的属性;
但如果是总统,而桌子因为长年累月已经不平了,那么就失去了其作为办公的属性。
2. 用户
拥有者(owner)
所属组(group)
其他 (other)
3. 文件类型
- : 普通文件,比如: 文本,动静态库,可执行程序(.exe),源程序
d: 目录文件
c: 字符设备文件:键盘与显示器
b: 块设备文件(block):磁盘
p: 管道文件(pipe):通信
l : 链接文件(link):软链接
(注:在linux下一切皆文件)
4. 文件基本权限
5. 设置文件权限方法
1. chmod —— 修改文件访问权限
语法:chmod [参数] 权限 文件名
**常用选项: **
-R -> 递归修改目录文件的权限 说明:只有文件的拥有者和root才可以改变文件的权限
**方法一: **
用户表示符 +/-= 权限字符
+: 增加权限
-: 取消权限
=: 向权限范围赋予权限代号所表示的权限
**用户符号: **
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
比如:
chmod u+rw abc.txt ...支持多文件修改
chmod o-rx abc.txt
注意:
** 方法二: **
三位8进制数字进行表示
用法: chmod xxx [文件名]
2. chown —— 修改文件拥有者
语法: chown [参数] 用户名 文件名(支持多文件修改)
own位与group位都进行修改: chown [新own] : [新group] 文件名(支持多文件)
(1. root与普通用户。以root身份修改(我是老大,拿来,给予不用商量)
在root身份下,直接用 chown [新用户] [目标文件] —— 拿回来也不用商量
(2. 普通用户之间。普通用户修改(文件给别人,和拿回来都得客客气气地,需要得到允许(需要输入密码))
方法:
** 法一**: sodo chown [新用户名] [目标文件] —— 现在学的还使用不了sodo
法二: 用root老大身份切换。先su (不用带- 会保留在普通用户的路径)提升权限,然后对普通用户文件拥有者进行修改。
3. chgrp —— 修改文件所属组
语法:chown [参数] 用户名 文件名
chgrp可以类比于chown,同样地有这样特性:
(1. root老大还是可以直接换所属组。
(2. 普通用户之间得需要用sodo进行权限提升,说人话是得“经过同意后”,才能进行文件所属组的修改。
4. umask —— 文件掩码
功能: 查看,修改文件掩码
文件掩码里面的权限是文件,目录创建时不能拥有的权限。
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
文件默认掩码:0666
目录默认掩码:0777
实例:
umask //查看掩码
umask
6. 对于目录而言的权限
1. r :
功能:在目录外,可以查看目录内容;(注:但如果没有打开权限(x),无法查看详细信息。)
2. x:
功能:打开目录的权限
面试题: Linux中打开目录的权限是什么?
答案:是 X ——执行权限
3. w :
功能:目录的创建,删除文件或者新目录
思考:但我们会发现会有这样使用场景,允许他人写入文件,但不允许删除其他人的权限,而w权限既能写入,又能删除;
在组内还好,可以查到是谁恶意删除他人文件,但other删除他人文件我们却无能为力,怎么办?
4. t ——粘滞位(目录文件限定)
功能:作为一个仅目录文件使用的一权限符号,一般对other使用。
与X同一位置
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
7. file****指令
功能说明:辨识文件类型。
语法:fifile [选项] 文件或目录...
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容
结语
本小节就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区评论;如果给小伙伴带来一些收获请留下你的小赞,你的点赞和关注将会成为博主创作的动力。
版权归原作者 花果山~~程序猿 所有, 如有侵权,请联系我们删除。