Linux VIM,引导流程解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

Vim/Vi没有菜单,只有命令

注:熟记vi命令身怀绝技的朋友请路过,以防走火入魔。感觉见到VI命令就头疼难记的兄弟们,结合心法实际操练。(其中只包括插入、定位、删除、剪切、复制命令)

--------------------------------------------------------------------------------

行头尾上,用IAO 插入

标前后下,用i a o ;

--------------------------------------------------------------------------------

哥俩(gg)争到第一行 , 定位

大哥(G)无奈落尾行 ;

牛哥(nG)定位真够牛 ,

n变数字行间走 ;

美元(﹩)贬值到行尾,

零是(0)初始到行首 ;

--------------------------------------------------------------------------------

光标定位所在处 , 删除

爱克斯(x)删除要记住 ;

牛擦(nx)这人是裁缝,

精准剪掉标后符 ;

弟弟(dd)业内他最强,

定为哪行删哪行;

的哥(dG)本领也不赖,

从行到尾删的快;

大弟(D)一直张着嘴,

咬掉光标到行尾 ;

--------------------------------------------------------------------------------

复制有个小二歪(yy), 复制

以下几行用牛二歪(nyy);

--------------------------------------------------------------------------------

弟弟(dd)绝技属剪切 , 剪切

前加数字向下剁;

--------------------------------------------------------------------------------

大P小p只管粘 , 粘贴

行上行下不能颠。

clip_image002

clip_image004

clip_image006

clip_image008

clip_image010

clip_image012

clip_image014

clip_image016

clip_image018

先开启忽略大小写:set ic,再/string,当不需要搜索忽略大小写时:set noic,n是往后移动搜索结果,N是往前移动

clip_image020

应用实例

导入文件:r文件名 例如 r /etc/issue

导入命令执行的结果,如导入当前时间:r !date

在Vi中执行命令:!命令 :!ls /root

定义快捷键:map快捷键触发命令

范例: :map ^p I#<ESC> ^p必须是用ctrl+v+p敲 出来

取消快捷键是unmap ^p

:map ^B 0x

连续行注释 :n1,n2s/^/#/g 表示从n1到n2行增加#

:n1,n2s/^#//g 表示把n1到n2行首的#去掉

:n1,n2s/^/\/\//g 表示在n1到n2行首增加//

替换:ab sammail samlee@lampbrother.net 当在vi里面输入semmail时会变成后面的邮件地址

改变vim的配置文件 vi ~/.vimrc

系统引导流程

固件firmware(cmos/bios) → post加电自检

自举程序bootloader(GRUB) → 载入内核

载入内核kernel →驱动硬件

启动进程init

读取执行配置文件/etc/inittab

常用固件设置

安全设置

可引导介质列表

可引导介质搜索顺序

电源管理

启动细节显示

……

固件设置实例

clip_image022

Date查看的是软件的时钟,hwclock是硬件时钟,硬件和软件时钟不同步的话必须调到一致,

内核 hwclock –htcosys 设置硬件时钟同步系统时钟 hwclock –systohtc 设置系统时钟同步到硬件时钟,如果硬件和系统时钟都错了的话,使用hwclock –set –date=””来设置硬件时间,或者man date,可以看到date的用法,使用date 121511302010.38设置系统时间

clip_image024

Linux版本 比如2.2.16 第二个2,即第2为,如果为偶数代表是正式版,为奇数代表是测试版

Init的工作

Init启动后读取inittab文件,执行缺省运行级别,从而继续引导过程。在unix系统中,普通进程每次开机后PID都不一定是一样的,但init是第一个可以存在的进程,它的PID恒为1,但它也必须向一个更高级的功能负责:PPID为0的内核调度器(kernel scheduler),从而获得CPU时间。

clip_image026

Linux的运行级别

使用vi /etc/inittable查看

clip_image028

1模式类似windows的安全模式,1模式只有root可以登录,而且没有图形界面,如果linux无法正常启动,则可以选择进入1模式修复,2和3模式基本一样,都是字符界面,区别是2没有网络文件系统这个服务,NFS是用于实现windows和linux之间的文件共享,现在很少使用NFS了,推荐使用FTP,SSH服务,4是没有使用,但是可以自己定义一个运行级别,5是系统缺省的运行级别

Inittab文件剖析

运行级的切换:

1. 查看当前的运行级

clip_image030

N是指NOW,S是指进行过切换了的当前运行级别

2. 运行级的切换

#init[0123456Ss]或 #telinit[0123456Ss]

clip_image032

telinit是一个软链接,s表示切换到单用户模式

在inittab中,所有条目采取以下格式:

id:run-levels:action:process

id:标识符,一般为两位字母或数字

run-levels:指定运行级别,可以指定多个,为空表示所有级别都运行

actino:指定运行状态

process:指定要运行的脚本/命令

ctrlaltdel:按下ctrl+alt+del时执行process指定的命令

action常用取值:

initdefault:指定系统缺省启动的运行级别

sysinit:系统启动执行process中指定的命令

wait:执行process中指定的命令,并等其结束再运行其他命令

once:执行process中指定的命令,不等待其结束

ctrlaltdel:按下ctrl+alt+del时执行process指定的命令

powerfail:当出现电源错误时执行process指定的命令,不等待其结束

powerokwait:当电源恢复时执行process指定的命令

respawn:一旦process指定的命令中止,便重新运行该命令

id:3:initdefault:

指定系统默认运行级别为3,如果想系统启动后自动运行X WINDOWS,则将上面的3改为5

#system initialization

si::sysinit:/etc/rc.d/rc.sysinit

启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动,如系统环境变量设置,设置系统时钟,加载字体,检测加载文件系统,生成系统启动信息日子文件等。只要系统启动都会执行/etc/rc.d/rc.sysinit这个脚本,如果想执行某个操作,则可以在/etc/rc.d/rc.sysinit的末尾后面添加脚本代码,这样每次系统启动就会自动执行脚本了

clip_image034

/etc/rc.d/rc的作用是判断默认运行级别,调用相应的/etc/rc.d/rc num脚本,执行相应运行级别目录中的服务程序,完成相应运行级别的初始化设置

/etc/rc.d/init.d

该目录下包含各个运行级别的服务程序脚本,如何启动某个服务看下图

clip_image036

/etc/rc.d/rc[0123456].d

分别存放对应于运行级别的服务程序脚本的符合链接,链接到inint.d目录中的相应脚本

clip_image038

S表示start,表示在此运行级别要启动,K表示不启动 数字表示启动的顺序,数字越小越优先启动,最后一部分是脚本的名称

Firmware

|

Bootloader

|

Kernel

|

Init

|

/etc/inittab

|

Initdefault

|

/etc/rc.d/rc.sysinit

|

/etc/rc.d/rc

|

/etc/rc.d/rcN.d N=0-6

|

Username password

clip_image040

clip_image042

Linux有6种终端,按ctrl+alt+F1-F6可以在不同的终端切换,按ctrl+alt+F7是切换到图形终端,如果在虚拟机里面是切换不了的,因为键位设置有冲突,要在vmware里面更改键位设置才行

clip_image044

/etc/rc3.d实际上是rc.d/rc3.d的软链接,但是在unix下是实际存放在/etc/rc3.d下的



本文转自 rebelxuan 51CTO博客,原文链接:http://blog.51cto.com/nizhuan/724127

相关文章
|
21小时前
|
监控 安全 开发工具
鸿蒙HarmonyOS应用开发 | HarmonyOS Next-从应用开发到上架全流程解析
HarmonyOS Next是华为推出的最新版本鸿蒙操作系统,强调多设备协同和分布式技术,提供丰富的开发工具和API接口。本文详细解析了从应用开发到上架的全流程,包括环境搭建、应用设计与开发、多设备适配、测试调试、应用上架及推广等环节,并介绍了鸿蒙原生应用开发者激励计划,帮助开发者更好地融入鸿蒙生态。通过DevEco Studio集成开发环境和华为提供的多种支持工具,开发者可以轻松创建并发布高质量的鸿蒙应用,享受技术和市场推广的双重支持。
107 9
|
4天前
|
域名解析 弹性计算 安全
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
|
21天前
|
缓存 监控 Java
Java线程池提交任务流程底层源码与源码解析
【11月更文挑战第30天】嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的方式,带你一步步深入线程池的奥秘,从概述到功能点,再到背景和业务点,最后到底层原理和示例,让你对线程池有一个全新的认识。
50 12
|
22天前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
29 2
|
15天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
1月前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
70 4
|
1月前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
2月前
|
Unix Linux 开发工具
Linux Vim的 命令大全
Linux Vim的 命令大全
30 0
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
下一篇
DataWorks