【Linux】-- Shell命令运行原理和权限详解(一)

简介: 【Linux】-- Shell命令运行原理和权限详解

一、Shell命令运行原理

1.Shell      

       Linux作为一个操作系统,称为"kernel",一般用户不能直接使用kernel,而通过"kernel"的外壳程序"Shell"和kernel进行沟通。

       所以广义上Linux发行版=Linux内核+外壳程序,狭义上Linux发行版=Linux内核。

Shell作为外壳程序,包裹在Linux内核外层,是一个应用程序,通过一系列的Linux命令对操作系统 发出相关治疗提供人际界面。它连接了用户和Linux内核,让用户更加高效、安全、低成本地使用Linux内核,这就是Shell的本质。bash是Shell的一种。

Shell命令的执行过程:

Shell有两个作用:

(1)传递请求指令,让操作系统执行命令

(2)保护内核

2.为什么Linux不让用户直接使用kernel

对比windows GUI,用户操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成用户操作(比如进入D盘的操作,用户通常通过双击D盘盘符而进入D盘)。

shell 对于Linux,有相同的作用,主要是对用户的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

二、Linux权限概念

权限是明确一件事情是否允许被特定的人做。 Linux权限能够指定谁可以对文件或目录执行什么操作。Linux下有两种用户,即超级用户和普通用户。超级用户的命令提示符是"#",普通用户的命令提示符是"$"。

超级用户:可以在Linux系统下作任何事情,不受限制。超级用户的命令提示符是"#"

普通用户:在Linux下做有限的事情。普通用户的命令提示符是"$"

两种用户可以互相切换:

也可以使用ctrl + d在普通用户下,切换为root用户。切换成root之后就能提升用户身份,可以执行对应命令。

三、Linux权限管理

1.文件访问的用户分类

用户分为3类:

(1)文件拥有者User---u

(2)文件所属组Group---g

(3)其他Others---o

2.文件类型和访问权限

(1)文件类型

在Linux中,不以文件后缀作为区分文件类型的方式,而是以文件详细列表的第一位进行标识区分:

如上图文件类型有-和d,linux中的文件类型分为以下几类:

1. d:文件夹
2. -:普通文件(包括文本、各种静态库、可执行程序、源程序)
3. l:软链接(类似Windows的快捷方式)
4. b:块设备文件(例如硬盘、光驱等)
5. p:管道文件
6. c:字符设备文件(例如屏幕等串口设备)
7. s:套接口文件

(2)访问权限

linux对文件有3种访问权限:

r:read,对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

w:write,对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

x:execute,对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

3.权限的表示方法

权限既可以用字符表示也可以用八进制表示

(1)字符表示法

linux表示 说明
r-- 只读
-w- 仅可写
--x 仅可执行
rw- 可读可写
-wx 可写和可执行
r-x 可读可执行
rwx 可读可写可执行
--- 无权限

对于每一个文件来说,都有3种用户,且每种用户都有3种权限:

(2)八进制表示法

权限符号(读写执行) 八进制 二进制
r-- 4 100
-w- 2 010
--x 1 001
rw- 6 110
-wx 5 101
r-x 3 011
rwx 7 111
--- 0 000

4.权限的设置

root不受任何权限限制,权限只限制普通用户。

(1)chmod修改文件访问权限

只有文件的拥有者和root可以设置文件的访问权限:

chmod 【参数】 权限 文件名

选项:

R -> 递归修改目录文件的权限

①用户符号+/-/=权限字符

1. +:向权限范围增加权限代号所表示的权限
2. -:向权限范围取消权限代号所表示的权限
3. =:向权限范围赋予权限代号所表示的权限
4. 用户符号:
5. u:拥有者
6. g:拥有者同组用
7. o:其它用户
8. a:所有用户

例如修改IP.log的访问权限,给user增加可执行权限:

②三位八进制数字

如将IP.log的权限改为拥有者不可读不可写可执行(1),所数组不可读不可写可执行(1),其他人不可读不可写不可执行(0):

虽然delia用户对IP.log不可读,但是root可以读IP.log,这是因为root不受任何权限限制:

如果需要cd进入某个目录,就需要有x权限,如果没有x权限,尽管可以ls查看文件名,但是cd不进去


相关文章
|
9月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
9月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
835 9
|
9月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
860 2
|
11月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1240 1
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
397 4
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
662 3
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
402 60
|
9月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。