【Linux】Linux权限,shell命令以及运行原理(上)

简介: 之前我们一直敲得命令和口口声声说的shell到底是什么呢?命令行提示符和输入的指令并且可以执行都是通过命令行解释器来实现的,那么命令行解释器就是我们常说的shell,具体我们看下面!

一、shell命令以及运行原理

我们用一个简单的例子来理解这个抽象的概念:


对shell的第一次感性认识:


在你很小的时候,对于外界的事物都充满好奇心,是妈妈一点一点来教你并且告诉你,让你从无知到了解。


1.因为我们不擅长与外界交流,所以当你需要和外界信息交互时,妈妈起到了桥梁的作用,解决了你和外界沟通的成本。


2.当外界有不良的、错误的信息或者行为靠近你时,妈妈会直接阻拦,不会向你传递,保护你的安全。


3.妈妈作为你和外界信息交互的唯一途径,当恶意行为来到时,妈妈不会自己上,而是叫你爸或者其他亲戚上,这就保护了妈妈的安全。


                                                                                               以上均为虚构,请勿上纲上线


那么linux内核就是孩子,shell外壳程序就是妈妈,而用户就是外界!

1. 那么回到正题:

shell作用一:设立了解决了用户和操作系统沟通的成本。

shell作用二:shell存在的意义,变相的保护了操作系统。


shell作用三:shell外壳是用户和linux操作系统交互的唯一途径,若因为用户的指令导致shell外壳挂掉,那么linux操作系统就不能被用户所使用。


所以shell会创建子进程,让它去执行用户的指令,而shell本身并不执行,所以创建的子进程失败也没事。


那你可能疑惑,这里为什么是linux内核呢?


其实我们谈到linux操作系统,宏观是linux内核+shell外壳,微观是linux内核。


怎么理解呢?类比windows:shell外壳和windows的图形化界面就是兄弟关系。win的图形化界面其实本质就是一种shell外壳程序。我们使用的centos 7 Linux操作系统的shell外壳是bash,bash和shell的关系就像:shell是妈妈,而bash是你妈(不好意思)。所以linux有这么多版本就是因为shell外壳程序有所不同,但也相差不大。


二、Linux权限

在了解权限之前,我们需要了解Linux是多用户操作系统,所以有很多用户,那么他们之间切换是如何进行的呢?

现在的用户是普通用户(Mjcode)

1.如果我们需要切换到root用户,且不想改变当前路径,就需要su

(切换root需要输入root的密码)

(路径没有改变,依旧是Mjcode的家目录)

2.切换root用户,改变路径:su -

3.root用户切换普通用户:su 普通用户

不需要输密码,直接切换)

所以root是超级管理员,普通用户是受权限约束的用户。


如果执行指定时,用root的身份去执行(对指令进行提权):


sudo 指令  (不需要切换用户)


1.什么是权限

通俗来说,权限是来限制身份的,而不是人。人有很多种身份,当你是学生时,你就有在学校的一些权限,你可以随便进入学校,去上课,去你的床位睡觉,并不是因为你是某某,而是因为你的身份。


那么,文件权限=(人)角色+文件属性


角色有拥有者(user),所属组(grouper),其他(other)


文件属性:r(读),w(写),x(可执行)


当然可执行是针对一些可执行文件,那么linux是怎么来区分文件类型呢?


linux文件类型与文件后缀名是没有关系的,因为系统识别文件类型不会根据后缀名来识别。


但是,我们自己仍然可以使用文件后缀来区分(给自己看的,好区分)。我们只说的是linux操作系统不拿后缀名区分,其实有些工具是用后缀名来区分文件类型的。

linux的文件类型:

d:目录文件

那后面的9个字符是什么意思呢?我们往下看

目录
相关文章
|
11天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
26 11
|
2月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
184 20
|
2月前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
115 8
|
2月前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
111 7
|
3月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
319 8
|
3月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1068 6
|
3月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
175 3
|
3月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
135 2
|
2月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
95 14
Linux 10 个“who”命令示例