文章目录
1.Shell存在的意义及作用
1.1对于Shell的认知过程
Linux是什么?
-
Linux是一套免费使用和自由传播的类Unix操作系统,它是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途。Linux的设计理念是
简单、高效、稳定和安全
。Linux系统可以运行在各种硬件平台上,包括个人电脑、服务器、移动设备等 -
Linux是一个操作系统,称之为“核心kernel“
一般用户不能直接使用kernel 而是通过kernel的**“外壳”程序**---- shell,来与kernel沟通。windows是图形化界面
如何理解?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)
.
Shell主要包含:
- 将使用者的命令翻译给核心(kernel)处理。
- 将核心的处理结果翻译给使用者。
windows系统呢?
对比windows GUI,操作windows 不是直接操作windows内核
,而是通过图形接口,点击,完成操作
比如进入D盘的操作,双击D盘盘符
shell对于Linux的作用
shell 对于Linux,有相同的作用,主要是对指令进行解析,解析指令给Linux内核。再通过内核运行出结果,通过shell解析给用户。
为什么不能直接使用kernel?
- 操作成本特别高
- 人会犯错,会带来不安全因素
bash是什么?
1.2Shell/图形化界面外壳程序的意义
- 用户和操作系统交互的中间软件层
- 一定程度起到保护操作系统的作用
[对于无理指令可以拒绝执行并报错 对于本来能执行的指令也可以关闭权限不再执行] - 外壳程序接收用户请求后 交给子进程执行
2.对Linux权限的理解
2.1对Linux权限的认知过程
对于Linux用户的认识和理解
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:拥有最高权限 不受权限约束 可以在linux系统下做任何事情,不受限制
普通用户:可以有多个 受权限约束 在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
用户之间的切换
命令:su [用户名]
功能:切换用户。[切换权限]
-
要从root用户切换到普通用户user,则使用
su user
。 -
要从普通用户user切换到root用户则使用
su root / su - / su
,此时系统会提示输入root用户的口令。成为root用户后 再次 su - 会输出最后一次登录时间
-
换成root后 输入ctrl + d可退到普通用户 如果有的话
-
从用户A换到用户B 要输入用户B的密码
对Linux权限的理解
- 用户对当前动作没有权限访问
- 当前事件压根就没有被访问/执行的必要: 用充电器打游戏: 充电器没有打游戏的属性 玩家当然没有对应的权限
- 权限是什么?
权限是某一件事情是否允许被当前用户执行
包括这个事情具不具有这个属性 和 用户具不具备这个能力
2.2对于Linux下ll指令显示的文件属性的认识
对于文件的后缀:
- 在系统层面没意义: Linux操作系统下,不以文件后缀来区分文件类型 通过上述图片的第一个字符区分
- 但是文件类型可以给用户看 .exe .out .cpp 用户一看就知道是什么
但是如果执行以下指令 会报错
mv test.c test.txt gcc test.txt
为什么报错?不是不易后缀区分吗???
gcc不是linux操作系统 他只是linux操作系统下的一个软件
对于用户的 三种身份的认识: 拥有者 所属组 其他人
领导想要查看小红的test.c文件 怎么办???
把领导的权限打开
领导属于"其他人" 那么B组的也能看到 怎么办???
把领导加入到A组 那么test.c可以被拥有者/所属组查看
如何表述一个文件的权限?
如何操作?chmod指令
没有权限会发生什么事情???
对于普通用户
对于root
- root执行
chmod a-rwx file.txt
除了不能执行 还可以读还可以写 - root还可以把不属于自己属于其他普通用户的文件权限改掉 此时普通用户无法执行对应操作 而 root却仍然可以进行相应操作
八进制法修改权限
把拥有者A的文件交给其他拥有者 也会引起拥有者A的权限改变
假定file.txt的当前拥有者为usrb
chown usra file.txt (当前用户为file.txt的拥有者usrb 不是root 则此操作不被允许)
改为root后:
chown usra file.txt //ok
chogrp usra file.txt //ok
file.txt原来的拥有者现在已经成为other那么他将失去对此文件的rwx权限
如何把交出去的文件再拿回来???
普通用户依然没法拿回来 两个办法:
- 输入root密码 改为root 拿回来
- 利用sudo chown usrb file.txt 输入usrb密码 拿回来
sudo: 以root权限级别来执行后续命令
- sudo chown usra file.txt sudo chgrp usra file.txt ===>>
sudo chown usra:usra file.txt
那岂不是人人都能执行root能执行的操作 root的存在还有什么意义?
不是所有用户都能执行sudo 用户想通过执行sudo提升权限的前提
是,该用户被root添加到了信任列表
如何修改other?
other不确定 other是相对的 在修改own/grp的同时 other也在改变
3.常见的权限问题
3.1目录权限
什么叫做权限只被认证一次?
- 假定file文件当前拥有者为a a又执行了chmod u-rwx file 则此时a失去了rwx权限 file文件是属于a的 只被认证一次 不管所属组的权限是什么
- 如果file文件拥有者不是a但是属于a的那一组 那么只看所属组权限 不看拥有者权限
进入一个目录需要什么权限?
需要x: 执行权限
读写rw限制了什么呢?
r: 显示信息入l -a
w: 创建文件 如touch mkdir
/删除文件
3.2umask
linux默认设置: 目录起始权限: 777-------------普通文件起始权限: 666
观察上图 我们发现和设置的不一样 目录是766 文件是644 怎么回事??
实际上这之间还存在一个叫做权限掩码的东西
umask的作用
查看/修改文件掩码 新建文件夹默认权限0666 新建目录默认权限0777
实际所创建的文件和目录,看到的权限往往不是上面这个值
创建文件或目录还要受到umask的影响。假设起始默认权限是mask,则实际创建的出来的文件权限是:
mask & ~umask
超级用户默认掩码值为0022,普通用户默认为0002[可以通过umask指令 自定义权限掩码 使得创建后的文件按照你自己的意愿设定权限]
拓展补充file指令: 辨识文件类型。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。