【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个字符是什么意思呢?我们往下看

目录
相关文章
|
3天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
19 3
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
16 2
|
11天前
|
缓存 监控 Linux
|
14天前
|
Linux Shell 数据安全/隐私保护
|
3天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
18 3
|
5天前
|
算法 Unix Linux
深入理解Linux内核调度器:原理与优化
本文探讨了Linux操作系统的心脏——内核调度器(Scheduler)的工作原理,以及如何通过参数调整和代码优化来提高系统性能。不同于常规摘要仅概述内容,本摘要旨在激发读者对Linux内核调度机制深层次运作的兴趣,并简要介绍文章将覆盖的关键话题,如调度算法、实时性增强及节能策略等。
|
6天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
31 6
|
7天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
21 7
|
9天前
|
监控 Linux
Linux常用命令-2
本文继续介绍Linux常用命令,涵盖目录操作、文件操作、系统信息和进程管理等类别。具体包括mkdir、rmdir、cp、mv、rm、touch、whereis、whatis、dmesg、free、date、cal、ps、kill、killall和top等命令的使用方法和常用参数。
38 7
|
4天前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
14 1