linux启动流程

参考:http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html

  1. 加载内核,首先读入/boot 目录下的内核文件。
  2. 启动初始化进程/sbin/init,它的作用是初始化系统环境。由于init是第一个运行的程序,它的进程编号(pid)就是1。其他所有进程都从它衍生,都是它的子进程。
  3. 确定运行级别。Linux预置七种运行级别(0-6)。
    一般来说,0是关机,1是单用户模式(也就是维护模式),6是重启。不同级别对应不同的开机启动程序,它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
    init进程首先读取文件 /etc/inittab,它是运行级别的设置文件。
    每个运行级别在/etc目录下面,都有一个对应的子目录/etc/rcN.d,N表示运行级别,指定要加载的程序。
  4. 加载开机启动程序。/etc/rcN.d目录里列出的程序,都设为链接文件,指向另外一个目录 /etc/init.d,包含程序的位置
  5. 用户登录。
    1. 从/etc/passwd中寻找输入的账号,并读取UID与GID(/etc/group存储了对应组名的关系)
    2. 从/etc/shadow中找UID对应的口令
    3. 进入shell
  6. 进入login shell,并进行shell的配置:
    首先读入/etc/profile,这是对所有用户都有效的配置;
    然后依次寻找下面三个文件之一,读取一个就忽略其他的列,这是针对当前用户的配置。
      ~/.bash_profile
      ~/.bash_login
      ~/.profile

/etc/profile

此文件包括:

  1. 全局或局部环境变量。便于用户及其进程和应用访问它。
  2. PATH信息。包含可执行文件,库文件及一般文本文件的目录位置,便于用户快速访问。
  3. 终端设置。使系统获知用户终端的一般特性。
  4. 安全命令。包括文件创建模式或敏感区域的双登录提示。
  5. 日期信息或放弃操作信息。是一个文本文件,保存用户登录时即将发生事件的记录或放弃登录的信息文件。

~/.profile

用户的环境变量设置

stty

stty命令用于显示和修改终端行设置。

命令格式为:stty SETTING CHAR

SETTING可以是如下

  • eof:输入结束,文件结束,默认为Ctrl+D。比如:用cat>file来创建文件时,按Ctrl+D来结束输入。
  • erase:向后删除字符,擦除最后一个输入字符,默认为Ctrl+?。注意默认情况下退格键Backspace不是删除字符。
  • intr:中断当前程序,默认为Ctrl+C。
  • kill:删除整条命令,删除整行,默认为Ctrl+U。
  • quit:退出当前程序,默认为Ctrl+\或Ctrl+|。
  • start:启动屏幕输出,默认为Ctrl+Q。
  • stop:停止屏幕输出,默认为Ctrl+S。有时候终端突然僵死了,可能是不小心按了Ctrl+S的缘故,因为我们习惯性的按Ctrl+S来保存文件。
  • susp:terminalstop当前程序,默认为Ctrl+Z。这样当前进程就会变成后台进程了。
  • werase:删除最后一个单词,默认为Ctrl+W。
  • stty命令还有一些其他用法,如:
  • stty-echo关闭回显。比如在脚本中用于输入密码时。
  • sttyecho打开回显。

环境和Shell变量

shell变量:定制用户本身的工作环境。

本地变量:在当前shell中定义,并且在当前shell中有意义。

环境变量:环境变量用于所有用户进程(经常称为子进程) 。登录进程称为父进程。 s h e l l中执行的用户进程均称为子进程。
设置时,需要用export命令导出为环境变量。

自定义bash环境

自定配置的文件是:~/.bash_profile 和 ~/.bashrc。这里的~只的是家目录。一般会在.bash_profile中设定可以一体适用的命令、搜索路径及环境变量,而把其他大部分的设定放在.bashrc中,比如别名等。

Linux启动与登陆环境的更多相关文章

  1. u-boot 移植 --->6、引导Linux启动测试

    在引导Linux开机之前需要先清楚Linux启动的必要或者说是先决条件,这里就是提到了u-boot的作用了引用百度云---主要用于嵌入式系统的引导加载,其实在我调试下来总结一下就是初始化硬件这里的硬件 ...

  2. Linux下查看进程(程序)启动时的环境变量

    背景: 因最近试安装Linux下的jira,有一个中文插件安装后,一旦设置开机启动后,它是英文,而在终端再重新启动一次后呢,似乎插件生效,它又恢复为正常中文界面,我首先想这这涉及到一个环境变量的问题, ...

  3. linux将指令加入开机启动或加入环境变量

    以mongodb运行指令为例,/usr/local/webserver/mongodb/bin/mongo 1,linux将指令加入环境变量PATH 简单说PATH就是一组路径的字符串变量,当你输入的 ...

  4. linux下搭建lamp环境以及安装swoole扩展

    linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5 ...

  5. Linux 启动过程详解

    目录 1. Linux启动过程 2. 启动过程概述 3. 引导加载阶段 4. 内核阶段 4.1 内核加载阶段 4.2 内核启动阶段 5. 早期的用户空间 6. 初始化过程 6.1 SysV init ...

  6. 转-Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

    http://blog.chinaunix.net/space.php?uid=10167808&do=blog&id=26042   1)BIOS自检2)启动Grub/Lilo3)加 ...

  7. Linux 启动顺序

    Linux 启动顺序:1. BIOS自检2. 运行系统内核并检测硬件3. 运行系统的第一个进程init4. init读取系统引导配置文件/etc/inittab中的信息进行初始化            ...

  8. linux启动基本流程

    linux启动序列 1.CPU初始化    CPU自身初始化.从某个固定位置(0xfffffff0)取指令并运行,该指令为跳转指令.跳转到BIOS代码的首部. 2.装载BIOS    BIOS被固化在 ...

  9. Linux启动之旅

    引言 某出租房内,某台电脑的电源键被按下,于是开启了一段Linux启动之旅... BIOS 系统启动,首先进入BIOS. ● BIOS 为 Base Input/Output System(基本输入输 ...

随机推荐

  1. 随便翻翻qcon 2014

    随便翻了翻QCon 2014的ppt,土人看看最新的成果: 基本感受: 1. 高大上公司比如阿里,腾讯啥的已经挺过第一轮,已经重构重构再重构了,整个架构不能说成熟,但是可以说可用了 2. 创业公司或者 ...

  2. 高可用Hadoop平台-Flume NG实战图解篇

    1.概述 今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容: Flume NG简述 单点Flume NG搭建.运行 高可用Flume N ...

  3. IIS 中文文件名下载会出现403访问被拒绝

    IIS 中文文件名下载会出现403访问被拒绝 服务器在安全加固后,出现了IIS 中文文件名下载会出现403访问被拒绝 换成英文的就好了

  4. Git相关文章

    1.Git教程 2.Git常用命令整理 3.EGit(Git Eclipse Plugin)使用

  5. HTML中图片添加

    图片添加后保存的是添加路径 例: <div class="form-group"> <label class="col-sm-3 control-lab ...

  6. {POJ}{3988}{Software Industry Revolution}{DP好题}

    题意:给定一个字符串d,要求用另一字符串s去匹配,其中s中的?可以为任何字符,*可以为任意个字符,求最小的匹配权值 思路:这题和CSDN英雄会的“反相互”类似,由于其中某些字符的不确定性,利用动态规划 ...

  7. C6000代码层面优化(一)

    2014年8月7日,看了一片很长见识的博文,关于DSP如何优化的,有一个问题没有搞通,“百度”一下关键字,居然搜查了一模一样的博文N片,现在也搞不懂这篇博文的原创作者是谁了.反正我感觉直接转摘过去,要 ...

  8. codeforces 742D Arpa's weak amphitheater and Mehrdad's valuable Hoses ——(01背包变形)

    题意:给你若干个集合,每个集合内的物品要么选任意一个,要么所有都选,求最后在背包能容纳的范围下最大的价值. 分析:对于每个并查集,从上到下滚动维护即可,其实就是一个01背包= =. 代码如下: #in ...

  9. Altium Designer15 卡在登陆界面解决办法:

    Altium Designer15 卡在登陆界面解决办法: 在我的电脑系统盘中找到下面目录(注:如果看不到,需要取消隐藏文件选项.) C:\Documents and Settings\Adminis ...

  10. man ascii

    Linux 2.6 - man page for ascii (linux section 7) - Unix & Linux Commands Linux 2.6 - man page fo ...