[TOC]
从unix中繁衍出了许多,现在大家耳熟能详的Linux发行版本:
WeiyiGeek.Unix家谱图
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间,以MINIX为模版)芬兰大学生 auther:Linus Torvalds,在BBS上发布了一则消息,他以bash/GCC等工具写了一个核心程序,这个程序可以在inter的386机器上面运作;
Linux是一个开源的软件,这意味着我们可以可以任意的研究使用、散布、改良的自由;
主要特性:
Linux存在着许多不同的Linux版本,但它们都使用了Linux内核,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统
The Linux Kernel Archives(官网):https://www.kernel.org/
Linux内核版本: (注意:Linux版本指定的核心版本,而不是Linux distribution版本[他们拥有自己的版本号])
Linux发型版本(Linux distribution): Q:什么是Linux发行版? 答:可以完全安装的Linux发布套件,由Kernel + Software + tools组成的这个可以完全安装的东东就叫Linux distribution;
Linux的发行版本可以大体分为两类
Linux发行版年表(大图链接:http://huaban.com/pins/363388579/)
常见Linux发行版:
黑客或安全人员常使用的Linux系统:
Linux应用领域:
Linux中常常使用的应用软件: 由于GNU计划与Linux的GPL授权模式,让很多优秀的软件都在Linux上面发展,且这些在Linux上面的服务器软件几乎都是自由软件,开源软件的比例变化:netcraft.com
Liunx是一个终端(Terminal)也称终端字符设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。
Linux与Windows比较:
Linux特性:(重要的核心思想:一切皆文件) 1.严格区分大小写 2.系统一切内容皆是文件包括硬件设备也是 3.不靠扩展名来区分文件类型 4.Windows下的程序不能直接在LInux上面运行,需要移植重新编译; 5.字符界面的优势:
Linux安装我们常常采用虚拟机进行安装学习,当然您有服务器的搭建学习环境会更好;
两种选择方式: VMware官方网站:http://www.vmware.com #推荐 virtualbox官方网站:https://www.virtualbox.org/
软件包选择(一般推荐最小安装):
系统安完成后过程日志:
/root/install.log :存储了安装在系统中的软件包及其版本值息
/root/install.log.syslog : 存储了安装过程中留下的事件记录
/root/anaconda-ks.cfg : 网络批量安装使用以Kickstart配置文件的格式记录安装过程;
概念:硬盘分区是使用分区编辑器(partiton editor),在磁盘上划几个逻辑分区,碟片一旦划分成数个分区(partition),不同分类的目录和文件可以存储进不同的分区. 分区规则,Win与Linux都必须遵循:
WeiyiGeek.分区规则
硬盘主分区:
Q:什么是磁盘格式化? 答:不是为了清空数据的,只是附带清空数据和硬盘打隔断;格式化是为了写入文件系统(FAT16,FAT32、NTFS、EXT2、EXT3、EXT4等),
常使用的文件系统:
问:为什么CENTOS 7.0开始选择XFS作为默认的文件系统?XFS相比ext有什么优点? 答:XFS在很多方面确实做的比Ext4好,综下所述XFS 取代Ext4 已经成为必然。
分区专业术语:
挂载与盘符相似: 常见的分区方法:
#必须分区
- / 根分区
- /swap swap分区:
#内存在4个G以内swap分为内存的两倍(建议不超过2G),内存大于4个G,swap分区可以分的和内存一样大
- /boot 启动分区:建议500MB~1GB
#建议分区:将home与data单独进行分区,重要业务数据可采用专门硬盘存放;
- /home
补充知识: [2020年4月22日 10:47:59]
Q:什么是SWAP分区?它有什么作用?
答:与Windows系统中的虚拟内存类似,Swap是在磁盘中分配出来的一块空间,物理内存被占满时使用
。假如VPS也不会自动创建交换分区,此时我们唯一的选择就是手动创建交换文件。
按照以下步骤在Linux系统中添加1GB的Swap空间:
Linux创建Swap分区操作流程
# 1.创建一个将用于Swap空间的文件
sudo fallocate -l 1G /swapfile
#2.如果你在执行上述命令时遇到了错误fallocate failed: Operation not supported,那么请使用以下命令重新创建Swap文件:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576 #注意不同发型版本的Mib / MB 单位
#3.只有root用户才能写入和读取Swap文件,执行以下命令设置正确的权限类型:
sudo chmod 600 /swapfile
#4.使用mkswap命令将文件设置为Linux交换区:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=a4eab465-75d1-4830-b870-c222c7e2e87b
#5.启用并激活交换文件:
sudo swapon /swapfile
#6.要使Swap永久生效,我们需要修改/etc/fstab文件:
# 使用vi打开/etc/fstab
vi /etc/fstab
#7.将输入法切换为英文,按i键进入编辑模式,在文件最后附加以下内容
/swapfile swap swap defaults 0 0
# 按Esc键退出编辑模式,输入以下命令保存并退出
:wq
#8.现在我们的Swap空间已经创建成功。接下来验证是否处于活动状态,可以使用swapon或free命令,如下所示:
sudo swapon --show
# 输出结果
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 507.4M -1
sudo free -h
# 输出结果
total used free shared buff/cache available
Mem: 488M 158M 83M 2.3M 246M 217M
Swap: 1.0G 506M 517M
#9.调整swappiness
#Swappiness是一个Linux内核属性,用于定义Swap空间的使用频率,值在0~100之间。较低的值将使内核尽可能避免交换,较高的值将使内核更积极地使用Swap空间。你可以通过以下命令来查看当前的swappiness值:
cat /proc/sys/vm/swappiness
# 输出结果
60
#10.如上所述,桌面系统的swappiness值默认为60,但对于生产服务器,较低的值可能更合适。例如,我们将swappiness值设置为10:
sudo sysctl vm.swappiness=10
#11.要使这个参数在系统重启后保持不变,我们需要修改/etc/sysctl.conf文件:
# 使用vi打开/etc/sysctl.conf
vi /etc/sysctl.conf
# 将输入法切换为英文,按i键进入编辑模式,在文件最后附加以下内容
vm.swappiness=10
# 按Esc键退出编辑模式,输入以下命令保存并退出
:wq
#12.删除Swap文件
#如果你需要停用并删除Swap文件,请执行以下命令来停用Swap:
sudo swapoff -v /swapfile
#然后,删除/etc/fstab文件中的/swapfile swap swap defaults 0 0内容:
#最后,删除磁盘上的swapfile文件:
sudo rm /swapfile
Q:如何理解“万物皆文件”的说法? 答:Linux 和其它类 UNIX 系统的一个重要特征就是:万物皆文件(Everything is a file),Linux 的文件系统上有很多非常规的特殊文件(常规文件这里指的是存放在硬盘上的普通文件),特殊文件可能位于伪文件系统或虚拟文件系统中,而这些特殊文件实际上是代表硬件设备、系统信息和其它乱七八糟的东西, 比如随机数生成器。
还有尽管这些并不是文件,但它们在文件系统中却是可访问的-文件系统是一个通用的“命名空间”,在里面所有的东西都是可访问的,想要访问一个随机数生成器或者直接从设备上读取数据? 你只需要在文件系统中找到它们即可,而不需要其它形式的寻址操作。
当然,“万物皆文件”的说法也不是绝对的,比如说系统上正在运行的进程就不是文件系统的一部分;设计了这么一套逻辑,主要还是秉承着 UNIX 哲学一贯主张的 KISS 原则(Keep it simple, stupid),将所有的设备都隐藏起来,给用户统一的外在接口,操作起来简洁方便。
说明实际上,更准确的说法是“万物皆字节流”(Everything is a stream of bytes),/dev/random 并不是一个文件,但它无疑是字节流。
Linux文件系统目录为“倒”的树形结构,所有的目录都是从”/”衍生而来,也称为Linux目录树
Linux文件系统目录结构:
WeiyiGeek.系统目录结构
Linx系统目录名的简要说明:
/root 系统管理员主目录
/home 用户主目录
/bin 二进制可执行命令:存放Linux系统常用命令如cat,chmod(修改权限), chown
/sbin 系统管理命令,存放的是系统管理员使用的命令或程序只有超级用户才能执行如fdisk, fsck, ifconfig, init, mkfs
/boot Linux的内核及引导系统程序所需要的文件目录:系统启动引导加载vmlinuz 、 grub
/etc 系统管理和服务应用配置文件:其中/etc/rc.d为启动配置文件和脚本
/opt 用户安装应用程序:有些软件包也会被安装在这里也就是自定义软件包(以前的系统常安装在/usr/local目录)
/usr 可共享的只读数据:系统存放程序的目录Linux的绝大多数服务和文件都存放在这个目录下
/var 应用于服务的数据文件:一般常用来存放各种服务的日志文件
/lib 标准程序设计库,应用程序编译使用的库文件存放目录
/dev 设备文件存储目录:比如声卡、磁盘
/tmp 公用的临时文件存储路径
/mnt 系统提供这个目录让用户挂载其他的文件系统
/lost+found 这个目录默认是空的,在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,当系统非正常关机的时候这个目录下会保留一些文件(可以并修复已经损坏的文件系统)
/proc 操作系统运行时进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统
/sys 目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯,并且同样不占硬盘容量
/srv service的缩写是一些网路服务启动之后,这些服务所需要取用的资料目录(分发行版本)
目录缩写解释 缩写 | 全称 | 说明 — | — | — | /bin | BINaries | 二进制可执行命令 /dev | DEVices | 特殊设备文件 /etc | ETCetera | 系统管理和配置文件 /etc/fstab | FileSystem TABle | 文件/etc/fstab包含了静态文件系统信息,定义了存储设备和分区整合到整个系统的方式。mount 命令会读取这个文件,确定设备和分区的挂载选项。 /lib | LIBraries | 库文件 /mnt | MouNT | 系统提供这个目录是让用户临时挂载其他的文件系统。 /opt | OPTion | 第三方软件放置的目录。如果你想自行安装额外的软件(非原本的 distribution 提供的),那么也能够将你的软件安装到这里来。 /proc | PROCesses | 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 /sbin | Super BINaries, Superuser BINaries | 系统管理命令,这里存放的是系统管理员使用的管理程序 /srv | SeRVices | 是一些网络服务启动后,这些服务所需要取用的数据目录。常见的服务例如 WWW,FTP 等。 /sys | SYStem | 虚拟文件系统,主要记录与内核相关的信息,包括目前已加载的内核模块与内核检测到的硬件设备信息,同样不占硬盘容量。 /tmp | TeMPorary | 公用的临时文件存储点 tty | teletypewriter | “电传打字机”,在类Unix里,键盘显示器,都是虚拟的teletypewriter /usr | Unix System/Software/Shared Resources | “Unix 操作系统软件资源” 所放置的目录,不是用户数据。 FHS 建议所有的软件开发者应该将他们的数据合理的放置到这个目录下的子目录,而不是自行新建该软件自己独立的目录。 /var | VARiable | 某些大文件的溢出区,比方说各种服务的日志文件
WeiyiGeek.系统目录名的简要
FHS(Filesystem Hierarchy Standard )机构诞生: http://www.pathname.com/fhs/ 描述:该机构是linux爱好者自发的组成的一个团体,主要是是对linux做一些基本的要求,不至于是操作者换一台主机就成了linux的‘文盲’。 产生原因:由于linux是开放源代码,各大公司和团体根据linux的核心代码做各自的操作、编程,造成在根下的目录的不同,及不能共用配置及文件在哪里,从而导致混乱不方便用户的使用。
FHS依据文件系统使用的频繁与否与是否允许使用者随意更动而将目录定义成为四种交互作用的形态
:
~ | 可分享的(shareable) | 不可分享的(unshareable) |
---|---|---|
不变的(static) | /usr (软件放置处) | /usr (软件放置处) |
不变的(static) | /opt (第三方协力软件) | /boot (开机与核心档) |
可变动的(variable) | /var/mail (使用者邮件信箱) | /var/mail (使用者邮件信箱) |
可变动的(variable) | /var/spool/news (新闻组) | /var/lock (程序相关) |
四中类型:
1) /usr 的意义与内容
其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据啦 FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录
目录 | 应放置文件内容 |
---|---|
/usr/bin/ | 绝大部分的用户可使用指令都放在这里,他与/bin的不同之处(是否与开机过程有关) |
/usr/sbin/ | 非系统正常运作所需要的系统指令。最常见的就是某些网络服务器软件的服务指令(daemon) |
/usr/src/ | 一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。 |
/usr/include/ | c/c++等程序语言的档头(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档。 |
/usr/lib/ | 各应用软件的函式库文件、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script)。要注意的是,如果你使用的是X86_64的Linux系统,那可能会有/usr/lib64/目录产生 |
/usr/local/ | 系统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的distribution提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装于/usr/local/目录下,可与原先的旧版软件有分别啦。 你可以自行到/usr/local去看看,该目录下也是具有bin, etc, include, lib…的次目录 |
/usr/share/ | 放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件嘛。在此目录下常见的还有这些次目录:/usr/share/man:联机帮助文件 |
/usr/share/doc | 软件杂项的文件说明 |
/usr/share/zoneinfo | 与时区有关的时区文件 |
/usr/X11R6/ | X版本为第11版,且该版的第6次释出之意,为X Window System重要数据所放置的目录。 |
补充:/usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录,一般是通过源码包安装的软件,如果没有特别指定安装目录的话–prefix=,一般是安装在这个目录中。
2) /var 的意义与内容
如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录; 主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等;
目录 | 应放置文件内容 |
---|---|
/var/cache/ | 应用程序本身运作过程中会产生的一些暂存档 |
/var/lib/ | 程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。 举例来说MySQL的数据库放置到/var/lib/mysql/,而rpm的数据库则放到/var/lib/rpm去 |
/var/lock/ | 某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。 举例来说,刻录机正在刻录一块光盘,你想一下,会不会有两个人同时在使用一个刻录机烧片? 如果两个人同时刻录,那片子写入的是谁的数据?所以当第一个人在刻录时该刻录机就会被上锁, 第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用 |
/var/log/ | 登录文件放置的目录以及服务日志目录,里面比较重要的文件如/var/log/messages(系统主日志), /var/log/wtmp(记录登入者的信息),/var/log/secure(认证/安全),/var/log/dmesg(系统启动相关)等。 |
/var/mail/ | 放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中,通常这两个目录是互为链接文件。 |
/var/run/ | 某些程序或者是服务启动后,会将他们的PID放置在这个目录下 |
/var/spool/ | 打印机、邮件、代理服务器等假脱机目录,通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据。 这些数据被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中, 但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中, 等到被送出后就被删除。如果是工作排程数据(crontab),就会被放置到/var/spool/cron/目录中。 |
3)/dev 的意义与内容
/dev 是包含表示设备的特殊文件,硬件设备文件名(一切皆文件),将这些设备作为文件系统的一部分显示有这些好处。文件系统提供了一个一致的“命名空间”,所有应用程序都可以使用它来处理和访问设备。 常见的磁盘格式:
$lsblk #显示系统中磁盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
/dev/sda #表示你的第一块硬盘;
/dev/sda1 #表示你的第一块硬盘的第一个分区。
#特殊设备
#例如,默认情况下 Linux 命令产生的输出消息(错误消息和其它标准输出)到标准输出设备(默认是终端),如果你想要运行命令但却不关心其输出,你可以将其(输出)重定向到 /dev/null
/dev/null #丢弃所有写入它的数据库(类似于一个黑洞)
$ifconfig > /dev/null
#通过填充 0 来擦除硬盘上的内容,你不需要使用特殊的工具,使用 /dev/zero 即可实现
/dev/zero #产生0,它会提供无限的空字符(NULL,NUL,0X00)
$dd if=/dev/zero of=/dev/sda1 #将擦除你的第一个分区的所有数据,只有当你想销毁数据的时候才运行它
WeiyiGeek.磁盘硬件设备
/dev/random与/dev/urandom设备的区别:
/dev/random
: 设备,存储着当前系统运行的环境实时数据,它可以看着系统某个时候的唯一数据可以用作随机元数据,我看可以通过文件读取的方式读得里面的数据`/dev/urandom
: 设备,设备数据与random里面一样,只是他是非阻塞的随机数发生器,读取操作不会产生阻塞的情况;补充:上面我们在特殊文件(/dev/zero 和 /dev/sda1)间使用 dd 命令,我们也可以使用 dd 命令来读写普通文件。相同的命令既可以直接操作设备,也可以处理普通文件,这就是“万物皆文件”的好处!
4) /proc 的意义与内容 存放系统运行一些硬件信息以及硬件使用情况:
/proc/cpuinfo —— 显示 可以在终端上打印你的 CPU 信息。
/proc/uptime —— 显示 Linux 内核的运行时间(即当前系统的运行时间)
/proc/version —— 显示 Linux 内核的版本号
WeiyiGeek.cpu
Linux使用标准的目录结构,安装程序的同时已经创建了文件系统和完整的目录组成形式,并指定了每个目录的作用和其中的文件类型。 Linux最新的发行版默认都采用ext4格式作为默认文件系统,Linux上面的文件类型主要包含下面几类:
LINUX有四种基本文件系统类型,普通文件、目录文件、连接文件和特殊文件,可用file命令来识别; 普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来察看内容,用mv来改名 目录文件:包括文件名、子目录名及其指针。它是LINUX储存文件名的唯一地方,可用ls列出目录文件 连接文件:是指向同一索引节点的那些目录条目。用ls来查看是,连接文件的标志用l开头,而文件面后以”->”指向所连接的文件 特殊文件:一些设备如磁盘、终端、打印机等都在文件系统中表示出来,则一类文件就是特殊文件,常放在/dev目录内例如,软驱A称为/dev/fd0,LINUX无C:的概念,而是用/dev/had来自第一硬盘。
学过Windows运维或者web开发的一定知道路径(path)分,在Linux中访问上面的这些文件可以用绝对路径(absolute)与相对路径(relative)。
linux系统的启动过程:
其中以上第10步的”Systemd查找默认目标(target),然后启动该target的所有单元“中的target指的是如下启动加载单元: INIT 3 启动级别使系统通过命令行登录
目录 | 用途 |
---|---|
graphcial.target | 系统支持多用户、图形和基于文件的登陆 |
multi-user.target | 系统仅支持多用户、基于文本的登陆 |
rescue.tar | sulogin提示,表示基于功能初始化已完成 |
emergency.target | sulogin提示,表示initramfs回转完成,且系统root以只读形式挂载于 / |
Centos 6.0 系统服务启动流程顺序排序:
ls /etc/rc.d/rc3.d/ | grep ^S
:防火墙在网络服务之前启动; WeiyiGeek.防火墙启动顺序
补充: 系统内核参数文件 :/boot /grub/grub.conf
Q:什么是TLDP? 答:Linux文档项目,即线性文献项目官网:http://www.tldp.org/
Q:EL6,EL7代表什么? 答:EL是Red Hat Enterprise Linux(EL)的缩写。
Q:通用查看系统发行版的方式
cat /etc/issue
Ubuntu 16.04.5 LTS \n \l
Q:那哪些目录不可与根目录分开呢? 答:有底下这些:这五个目录千万不可与根目录分开在不同的分区。请背下来啊。
Q:常常采用什么软件连接到Linux中? 答:远程Linux管理常用软件:xSHELL,Putty,secure,Mobaxtem(推荐)
Q:glibc和libc到底有什么区别关系 ? A:libc的名字来源于历史,指C开发包的函数库,包括头文件和基本C库libc.a,最初的libc由发明C语言,后来随着C移植到不同平台,libc也有了多个版本,可能是为了兼容吧,很多头文件和libc.a的文件名都没有变(很好的传统)。 glibc和libc都是Linux下的C函数库,libc是Linux下的ANSI C的函数库;glibc是Linux下的GUN C的函数库;而现在用的最广功能最强的当然是GNU LibC,简称glibc各发行版Linux用的就是glibc。
Glibc是gnu发布的libc库,也即c运行库;glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc,glibc除了封装linux操作系统所提供的系统服务外,它本 身也提供了许多其它一些必要功能服务的实现,主要的如下:
Linux查看glibc安装版本:
$ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
64bit:strings /lib64/libc.so.6 |grep GLIBC
32bit:strings /lib/libc.so.6 |grep GLIBC
#libc的动态库版本叫做是libc.so,通常是/usr/lib/libc.so,glibc的libc.so其实不是.so文件,而是一个ld Script,但gnu ld 会正确处理的。
(1) /etc/inittab
我们通过前面学习的Linux运行等级可以知道默认的6种运行等级,但是在inittab配置文件中可以配置自定义运行等级;针对于CentOS6及以下适用,对于内核版本在使用systemd时配置该文件就没有任何效果
。
复习runlevel定义本行适用的运行等级.一般如下
0 |Halt,关闭系统.
1 |单用户,在grub启动时加上为kernel加上参single即可进入此运行等级(安全处理方法后面会讲到)
2 |无网络多用户模式.
3 |有网络多用户模式.
4 |有网络多用户模式.
5 |X模式
6 |reboot重启系统
S/s |同运行等级1
a,b,c |自定义等级,通常不使用.
CentOS 7 : inittab在使用systemd时不再使用。
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
$systemctl get-default
multi-user.target
#设置默认运行等级
$systemctl set-default TARGET.target
语法格式解析:
id:runlevels:action:process [argument]
#id为标志字段,一般为2至4个字符.
#runlevel定义本行适用的运行等级.
#action定义采取的行动.
# respawn |只要进程一停止,该进程就重新启动.
# wait |进程只运行一次,init将一直等待它结束,再执行其它命令.
# once |进程只运行一次.
# boot |系统引导进程中,进程运行,init将忽略运行等级这段.
# bootwait |系统引导过程中,进程运行,init将等待进程结束.
# off |不采取任何行动,功能相当于将这行用#注释掉.
# ondemand |只要init调用a,b,c中的任何一种运行等级时,进程便运行.
# initdefault|系统设置默认运行级别.process字段被忽略.
# sysinit |只要系统引导,该进程便运行,优先于boot与bootwait.
# powerwait |当init接收到SIGPWR信号时进程开始运行,一般为电源故障时运行.
# powerfail |与powerwait相同,但init不会等待进程完成.
# powerokwait|当电源故障修复时运行.
# ctrialdel |当init收到SIGNT信号时(按下ctrl+alt+del)时,进程运行.
# kbrequest |当init收到键盘处理KeyboardSignal信号时,进程运行.
#process 定义需要执行的程序以及参数
基础示例:
#设置默认运行等级.init 首先读取这一行来确定运行级别.
id:3:initdefault:
# 在1-5运行等级中按下ctrl+alt+del时便重新启动系统.
cad:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
#如果在用grub或lilo启动时,如果为kernel加上single参数时,会直接进入单用户模式,而无需密码.造成一定安全隐患.加上这一行即可解决问题.
su:S016:once:/sbin/sulogin
#设置tty控制台数量,一般为tty[1-6],X窗口系统一般运行在tty7
1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600