展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > Linux命令行怎么用?shell外壳程序原理一看就懂

Linux命令行怎么用?shell外壳程序原理一看就懂

外壳程序(Shell)是命令行解释器,将用户命令翻译成系统调用交由内核执行并返回结果。Linux系统分为超级用户和普通用户,权限级别不同。普通用户需通过sudo指令临时获取超级用户权限,但必须在/etc/sudoers白名单中有相应配置。

本文目录

    1 Xshell 运行原理

    1.1 命令行的组成

    Linux命令行怎么用?shell外壳程序原理一看就懂

    命令行本身由三部分构成:用户名、主机名和工作目录。这就像你每次打开终端时,系统先把你是谁、在哪台机器、当前在哪个目录告诉你。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    "#" 是个提示符,它左边是操作系统的地盘,右边是用户的地盘。提示符有两种:"$" 代表普通用户,"#" 代表超级用户。看到不同的符号,心里就有数了——权限不同。

    1.2 外壳程序

    说出来你可能不信,你输入的命令并不是直接交给操作系统处理的。真正干活的是一个叫 “外壳程序” 的东西,它负责读取命令、识别命令,然后才去跟操作系统打交道。简单说,外壳程序打印出命令行,咱们在命令行里输入指令,它再往下传。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    操作系统外面通常包着一层软件层,这就是外壳程序。它最直观的表现就是给你一个命令行界面,你输入“ls”这样的命令——本质上就是一堆字符串。外壳程序拿到后,翻译给操作系统内核去执行,然后把结果再翻译回来,让你看到文件列表。这个外壳程序也叫命令行解释器,Linux 下统称为 shell。

    命令行解释器的作用其实就两个:

    • 把用户的命令翻译给内核(kernel)处理
    • 把内核的处理结果翻译给用户

    光说理论可能有点干,咱们举个贴近生活的例子。

    假设有个闷骚又害羞的程序员小王(用户),shell 就像媒婆,操作系统内核就是村头让你心动的小花。小王看上了小花,但不好意思直接表白,于是让家人找媒婆去提亲。所有事情小王都只跟媒婆沟通,由媒婆转达给小花。这就是第一个功能:翻译,让用户能操作。

    小花多次拒绝小王,小王不死心,还希望媒婆再争取。但这次媒婆在小花家窗外看到小帅和小花一家人其乐融融吃饭,连门都没进就告诉小王没戏了——变相拒绝。这就是第二个功能:如果用户输入的指令太离谱,命令行解释器直接拦住,不让它交给操作系统,从而保护操作系统。

    小王还不死心,让媒婆再帮一次。因为小王他爸是村长,媒婆不好驳面子,但知道这事成不了,又不想砸招牌。怎么办呢?找了个实习生去干。实习生做成了,是媒婆慧眼识珠;没做成,也没影响她。这就是第三个功能:外壳程序在系统上以进程方式运行,进行命令行解释时不能挂——一旦挂了就只能重新登录。所以新命令到来时,外壳程序通常创建一个子进程去执行命令,子进程挂了也不影响父进程。

    在 Ubuntu 系统下,对应的命令行解释器叫 bash。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    那 bash 和 shell 是什么关系呢?相当于王婆和媒婆的关系——shell 是所有外壳程序的统称,而 bash 是其中一个具体实现。

    说到这儿提一句,Windows 的图形化界面也是一种外壳程序。你每次鼠标点击,都会被窗口管理器转换成系统级别的任务交给操作系统去执行。安卓手机底层也是 Linux,内核是 Linux,但外面包裹的那层安卓界面,就是 Linux 的 shell。

    2 Linux中的用户

    2.1 两种用户

    Linux 的权限是针对用户设置的。那 Linux 里有哪些用户呢?

    简单说两类:超级用户(root) 和 普通用户。

    • 超级用户:在 Linux 下啥都能干,不受任何限制。
    • 普通用户:在 Linux 下只能干有限的事,处处受管控。
    • 超级用户的命令提示符是 “#”,普通用户的命令提示符是 “$”。

    root 用户的权限极高,普通用户则权限低、受管控。

    2.2 创建普通用户

    先学学怎么创建一个普通用户。

    指令:adduser 和 passwd

    创建普通用户语法:adduser [选项] 用户名

    Linux命令行怎么用?shell外壳程序原理一看就懂

    设置密码语法:passwd 用户名。有些系统创建用户后直接让你输密码,不需要单独执行这条指令。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    接着输入两次新密码即可。注意:Linux 下输入密码不回显!你敲键盘时屏幕上啥也不显示,这是正常现象,不是系统坏了。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    删除用户语法:userdel -r 用户名。删除用户这里不演示了,但必须提醒:一定要加上 -r,否则系统会出问题!

    怎么查看创建的用户呢?Linux 中创建的用户都放在 /home 目录下,切换到该目录看看就知道了。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    2.3 用户切换

    2.3.1 普通→超级

    先讲普通用户怎么切换到超级用户。

    直接使用 su 命令即可。回车后系统要求输入密码。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    这里要输入的是谁的密码?普通用户的还是超级用户的?

    肯定输入的是 root 的密码。你是从普通用户切换到 root,如果输入普通用户的密码就能变成 root,那岂不是人人都能当 root 了?所以,想切换成 root,你必须知道管理员的密码。

    同样,密码输入不回显。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    用 su 切换后,当前工作目录不改变。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    另外还有一种做法:su -。操作方法和 su 一模一样,区别在于:

    Linux命令行怎么用?shell外壳程序原理一看就懂

    区别就是:su 只是身份切换,不会让 root 重新登录,所以当前工作目录不变;而 su - 会以 root 身份重新登录一次,导致当前路径发生变化(通常切换到 /root)。

    2.3.2 超级→普通

    超级用户变成普通用户也用 su 命令。

    语法:su 用户名 或 su - 用户名

    Linux命令行怎么用?shell外壳程序原理一看就懂

    超级用户变普通用户不需要输密码。为什么?因为 root 是最高权限,普通用户的密码根本挡不住 root,root 想干嘛就干嘛。

    加不加 - 的区别同上,不再赘述。

    3 指令的短暂提权

    3.1 为什么要提权

    假设你现在是普通用户,但需要以超级管理员的身份执行一条权限比较高的命令——比如安装软件。安装软件的本质是将指令写入特定目录(如 /usr/bin),而这个目录通常属于 root,普通用户没有写入权限。那怎么办?这时候就需要临时提升权限。

    顺便说一句,Linux 中安装的程序其实只安装了一份,但允许所有人同时使用。比如普通用户能用 ls,root 用户也能用 ls(当然也有少数指令如 adduser 禁止普通用户使用)。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    权限被拒绝——这就是普通用户试图执行高权限操作时的典型结果。

    3.2 sudo 指令

    短暂提权用到的指令是 sudo。

    • 语法: sudo 要执行的命令
    • 功能: 对当前指令进行短暂提权

    比如,我们以 root 的身份创建一个文件:

    Linux命令行怎么用?shell外壳程序原理一看就懂

    文件创建成功:

    Linux命令行怎么用?shell外壳程序原理一看就就懂

    虽然现在还不会看文件的具体属性,但文件属于 root 还是能看出来的。

    sudo 第一次使用需要输入密码,之后会有十到十五分钟的免密期。从 sudo whoami 的输出也能看出,用户身份变成了 root。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    3.3 人人都能提权吗

    上面普通用户用 sudo 就能变成 root(输入的是普通用户的密码,不是 root 的),那岂不是人人都是 root 了?那 root 还区分普通用户干什么?

    其实正常情况下,普通用户输入 sudo 会报错:

    Linux命令行怎么用?shell外壳程序原理一看就懂

    什么原因?Linux 系统提供了一个类似 白名单 的机制,只有白名单上的用户才能用 sudo 提权。白名单就是无条件信任,和黑名单无条件拒绝相对应。

    默认情况下,Linux 不允许普通用户执行 sudo。要执行,必须将当前用户添加到白名单。白名单路径:/etc/sudoers。

    Linux命令行怎么用?shell外壳程序原理一看就懂

    可以看到这个文件属于 root,只有超级用户才有资格修改。

    想让普通用户执行 sudo,必须用超级管理员的身份修改 sudoers 配置文件。修改方式如下:

    Linux命令行怎么用?shell外壳程序原理一看就懂

    注:推荐用 vim 编辑器打开。

    可能有小伙伴会问:那我把自己的用户加到 sudoers 文件里,不就能随便提权了吗?

    道理是这么个道理,但在实际公司环境中,假设一个小组 10 人共用一台机器,只有一个人是管理员。你想把自己的用户加入 sudoers,必须线下真人去找管理员同意才行。现在我们能自己修改 sudoers,是因为我们既是用户又是管理员。只要线下去找管理员,说明人家是真正认可你的,所以不用担心人人都是 root 的问题——即便白名单里的 root,那也是值得信任的。

    总结

    从 shell 外壳程序的工作原理,到 Linux 用户权限的划分,再到 sudo 提权的机制,整个过程环环相扣。理解这些底层逻辑,才能真正用好 Linux 的命令行。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。