深度解析:Linux 的 Shell 启动顺序及全过程 (linux的shell启动过程.)

Shell是一种命令行解释器,它被用来执行命令或脚本。启动Shell是Linux系统中的重要过程之一。本文将深入探讨Linux的Shell启动顺序和全过程。

Shell的种类

Linux系统使用几种不同的shell,每种shell都有自己的特点和优点。

Bash shell是Linux系统中更流行的shell,它是Bourne shell的增强版,也就是说,它兼容大多数Bourne shell命令。

Zsh shell是另一种常用的shell,它比Bash更加强大,支持更多的特性和命令。

Csh shell是一种C语言风格的shell,它使用与C语言相似的语法。在很多方面,它都比Bash更加易于使用。

Shell启动的顺序

启动Linux系统时,Shell是如何被启动的呢?实际上,启动Shell的过程是非常复杂的,它涉及到很多不同的步骤和进程。下面是一种典型的Shell启动顺序:

1. BIOS自检。每次开机时,计算机会首先进行基本输入输出系统(BIOS)的自检。这个过程通常不需要用户干预,而是由计算机硬件自动完成。

2. 启动引导程序。BIOS完成自检后,它将启动引导程序。引导程序是一段代码,它会在启动过程中加载操作系统内核。

3. 加载操作系统内核。引导程序会通过引导标志来找到操作系统内核,并将其加载到内存中。

4. 启动init进程。当内核加载完毕后,它会启动init进程。init是Linux启动过程中的之一个用户空间进程。它是其他所有用户进程的祖先进程,也是Linux系统中所有进程的管理者。

5. 加载init脚本文件。init进程会读取在目录/etc/rc.d中的init脚本文件。这些脚本文件包含了初始化和启动系统所需的服务和进程。

6. 启动Shell。在初始化过程中,init进程将启动一个Shell,通常是Bash shell。Shell是用户通过命令行界面与操作系统交互的工具。Shell的启动标志着操作系统的启动过程已经完成,用户现在可以使用系统了。

Shell启动的全过程

Shell启动过程中包含了很多不同的组件和进程。下面是一份详尽的Shell启动全过程:

1. 引导程序被加载。当计算机开机以后,引导程序会被自动加载。

2. VFS文件系统被挂载。VFS文件系统是Linux系统中的虚拟文件系统,它可以对多种不同的文件系统进行管理。Shell启动时,VFS文件系统被挂载到内存中。

3. 加载init进程。内核会读取并加载init进程到内存中,并将它的根目录设置为根文件系统的根节点。

4. 挂载根文件系统。在加载init进程之后,内核会读取并挂载根文件系统到根目录中。

5. 查找init文件。内核通过查找预先设置的位置来寻找init文件。这通常是在根文件系统中的/in/init。

6. 加载系统启动脚本。当找到了/in/init文件后,系统会读取并执行预先设置的系统启动脚本。

7. 加载Shell。在启动脚本中,操作系统会创建并执行Shell。通常是Bash shell。

8. 用户输入命令。一旦Shell完成启动,用户就可以开始输入命令了,Shell会执行这些命令,用户可以通过它与操作系统进行交互。

Shell启动的补充说明

在上面的全过程中,有一些过程需要进一步说明。

之一步:BIOS自检

BIOS自检是在电脑开机之前进行的自检和设置。这个过程可以检测硬件和设备的完整性。如果BIOS自检未能完成,则可能是硬件故障或其他问题。此时,电脑可能无法启动。

第二步:启动引导程序

启动引导程序是操作系统启动的操作,例如Linux。它是一个独立的程序,它能够自动检测磁盘或其他介质,并检查有哪些操作系统可以被启动。

第四步:启动init进程

init进程是Linux启动中的关键进程。它是所有其他进程的管理者。当操作系统启动时,它将首先启动init进程,并开始初始化所有操作系统的资源。

第六步:启动Shell

Shell是用户与操作系统进行交互的命令行界面。在Linux系统中,Bash shell是最常用的Shell。当操作系统完成初始化和所有系统进程以后,它会开始加载Shell进程,以便用户可以与操作系统进行交互。

结论

在本文中,我们深入探究了Linux的Shell启动顺序和全过程。了解这个过程能够帮助我们更好地了解Linux系统的工作方式,从而更好地理解操作系统的架构和原理。希望这篇文章能够为您提供帮助,并且您会对Linux系统的启动过程有更深入的了解。

相关问题拓展阅读:

关于linux 用shell启动软件

登录流程会加载很多文件,根据不同的linux发布版本你想找的东西也不一定在哪。你只是想能比备源较方便的用你的python脚本吧。仿派态

可以在终端echo $PATH,就会显示linux自己搜索的目录,直接输入命令就可以自动搜索这些目录下的东西。你是想用脚本打开软件?建议在脚本里面使用绝对路径打开想要的软件,如果是在你的工作目录下,使用相对路径,但是更好不要改环境变量。

如果你是想在linux下直接使用脚本,就把python的路径添加到环境变量中,比如你的python在/usr/python目录下,那么就用:

PATH=$PATH:/usr/python 注意不能有空格,” : “一定要有,:的后面接你的python目录,然后在羡仔python的脚本之一行写 #!/usr/python,声明使用的脚本位置。这样如果你的py脚本如果执行权限,就是有x位,那么应该是可以直接执行的。或者可以python abc.py

如果每次开机都想这样,可以把PATH=$PATH:/usr/python命令写到你的家目录下面的.bashrc里。如果是改登录文件是/etc/profile(根据不同的发布版本可能不同,并且需要root权限),所以就添到~/.bashrc里就好了

linux shell 随系统启动

aix,没有rc.local.

/etc/inittab 在这里加就慎核行。

或者你针对级别。圆扒比如 3级

/宽腔掘etc/rc.d/rc3.d/rc 这个文件加也行

3种方法:

1. abc.shell脚本放到/etc/尺信rc.d/init.d/目录下,再在/etc/rc.d/rc.d/目录中用ln -s命令建立以S开头的符号链接文件,指向/etc/rc.d/init.d/目录下要启动的脚本。

2. 直接在/etc/rc.d/rc.local脚本中添加一行调用abc.shell。

3. 使用chkconfig命令。chkconfig是一个服务管理工具,利用chkconfig可以增加或删除所要管理的服务,在任意运行晌困毁级别上设置服务的启动状态。chkconfig的使用方式如下:

# chkconfig –list 将目前的各项服务状态列出来

# chkconfig 增加或删除一个所要管理的服务,该service必须在/etc/init.d/ 中。

# chkconfig –level 设定某个服务在某个运行级别宴备下的启动状态为启动on或是关闭off。

如果雀友拍你不是小白 那就创建一个文件到/etc/rc.d/rcN.d/ 目录下,N为启动级别 按照其他文件格式写S99abc。 这样告山在启动该级别的时顷羡候,会最后运行abc。

在/etc/rc.local文件中增加一行运行此脚本

use command: whereis rc.local

关于linux的shell启动过程.的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 深度解析:Linux 的 Shell 启动顺序及全过程 (linux的shell启动过程.)