linux基础学习7

Linux 的开机流程分析

1. 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置;

2. 读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);

3. 依据 boot loader 的设定加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;

4. 在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 信息;

5. init 执行 /etc/rc.d/rc.sysinit 档案来准备软件执行的作业环境 (如网络、时区等);

6. init 执行 run-level 的各个服务之启动 (script 方试);

7. init 执行 /etc/rc.d/rc.local 档案;

8. init 执行终端仿真程序 mingetty 来启动login 程序,最后就等待用户登入啦

即:BIOS自检与硬件检测--》bootloader加载kernel 自检与硬件检测--》kernel呼叫init --》init呼叫 rc.sysinit 系统初始化--》init呼叫各服务初始化--》init呼叫rc.local 本地用户设置初始化--》进入登录程序

BIOS (Basic Input Output System)

BIOS 是透过硬件的 INT13 中断功能来读取 MBR 的;

Boot Loader 程序安装在哪里呢?就在开机装置的第一个扇区 (sector) 内,也就是我们一直谈到的MBR (Master Boot Record, 主要启动记录区)。

/sbin/init  /etc/inittab与runlevel

第一支程序 init 及配置文件

/sbin/init 最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设定、语系处理、文件系统格式及其他服务的启动等。 而所有的动作都会透过init 的配置文件,亦即是 /etc/inittab 来规划,而 inittab 内还有一个很重要的设定项目,那就是默认的runlevel (开机执行等级) ;

run level 分为 7 个等级:

? 0 - halt (系统直接关机)

? 1 - single user mode (单人维护模式,用在系统出问题时的维护)

? 2 - Multi-user, without NFS (类似底下的 runlevel 3,但无 NFS服务)

? 3 - Full multi-user mode (完整的有网络功能的纯文本模式)

? 4 - unused (系统保留功能)

? 5 - X11 (与runlevel 3 类似,但加载使用 X Window)

? 6 - reboot (重新启动)

/etc/inittab 的内容与语法

档案的语法是利用冒号 (:) 将设定分隔成为四个字段,每个字段的意义与说明如下:

[设定项目]:[run level]:[init 的动作行为]:[指令项目]

1. 设定项目:最多四个字符,代表 init 的主要工作项目,只是一个简单的代表说明。

2. run level:该项目在哪些 run level 底下进行的意思。如果是 35 则代表 runlevel 3 与 5 都会执行。

3. init 的动作项目:主要可以进行的动作项目意义有:

4. 指令项目:亦即应该可以进行的指令,通常是一些 script 。

/etc/rc.d/rc.local

用户自定义开机启动程序

make  confing 流程

动态与静态函数库

静态(Static)特色:

扩展名:                 (扩展名为 .a)这类的凼式库通常扩展名为 libxxx.a 的类型

编译行为:       这类凼式库在编译的时候会直接整合到执行程序当中,所以利用静态凼式库编译成的档案会比较大一些;

独立执行的状态:    这类凼式库最大的优点,就是编译成功的可执行文件可以独立执行,而不需要再向外部要求读取凼式库的内容 。

升级难易度:      虽然执行档可以独立执行,但因为凼式库是直接整合到执行档中, 因此若凼式库升级时,整个执行档必须要重新编译才能将新版的凼式库整合到程序当中。                               也就是说,在升级方面,只要凼式库升级了,所有将此凼式库纳入的程序都需要重新编译!

动态 (Dynamic)特色:

扩展名:                    (扩展名为 .so)这类凼式库通常扩展名为 libxxx.so 的类型;

编译行为:                动态凼式库与静态凼式库的编译行为差异挺大的。 与静态凼式库被整个捉到程序中不同的,动态凼式库在编译的时候,在程序里面只有一个『 指向                                        (Pointer)』的位置而已。也就是说,动态凼式库的内容并没有被整合到执行档当中,而是当执行档要使用到凼式库的机制时, 程序才会去读取凼式库来使                                 用,由于执行文件当中仅具有指向动态凼式库所在的指针而已, 并不包含凼式库的内容,所以档案大小比较小点;

独立执行的状态:    这类型的凼式库所编译出来的程序不能被独立执行, 因为当我们使用到凼式库的机制时,程序才会去读取凼式库,所以凼式库档案『 必须要存在』才行,                                 而且,凼式库的『 所在目录也不能改变』,因为我们的可执行文件里面仅有『指针』即当要取用该动态凼式库时, 程序会主动去某个路径下读取。所以动                                 态凼式库可不能随意移动或删除,会影响很多相依的程序

升级难易度:      虽然这类型的执行档无法独立运作,然而由于是具有指向的功能, 所以,当凼式库升级后,执行档根本不需要进行重新编译的行为,因为执行档会直接指                                 向新的凼式库档案 (前提是凼式库新旧版本的档名相同喔!)。

RPM

安装

[[email protected] ~]# rpm -ivh package_name
选项与参数:
-i :install 的意思

-v :察看更细部的安装信息画面

-h :以安装信息列显示安装进度

范例一:安装 rp-pppoe-3.5-32.1.i386.rpm
[[email protected] ~]# rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
Preparing... ####################################### [100%]
1:rp-pppoe ####################################### [100%]
范例二、直接由网络上面的某个档案安装,以网址来安装:
[[email protected] ~]# rpm -ivh http://website.name/path/pkgname.rpm

RPM 升级与更新 (upgrade/freshen)

-Uvh     后面接的软件即使没有安装过,则系统将予以直接安装; 若后面接的软件有安装过旧版,则系统自动更新至新版;

-Fvh     如果后面接的软件并未安装到你的 Linux 系统上,则该软件不会被安装;亦即只有已安装至你 Linux 系统内的软件会被『升级』!

RPM 查询 (query)

[email protected] ~]# rpm -qa <==已安装软件
[[email protected] ~]# rpm -q[licdR] 已安装的软件名称 <==已安装软件
[[email protected] ~]# rpm -qf 存在亍系统上面的某个文件名 <==已安装软件
[[email protected] ~]# rpm -qp[licdR] 未安装的某个文件名 <==查阅 RPM 档案
选项与参数:
查询已安装软件的信息:
-q :仅查询,后面接的软件名称是否有安装;

-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;

-qi :列出该软件的详绅信息 (information),包括开发商、版本等说明等;

-ql :列出该软件所有的档案与目录所在完整文件名 (list);

-qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的檔名而已)

-qd :列出该软件的所有说明文件 (找出不 man 有关的档案而已)

-qR :列出与该软件有关的相依软件所有的档案 (Required 的意思)

利用 yum 进行查询、安装、升级与移除功能

[[email protected] ~]# yum [option] [查询工作项目] [相关参数]

选项与参数:

-y   :    当 yum 要等待用户输入时,这个选项可以自动提供 yes 的响应;

--installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径

[查询工作项目] [相关参数]:这方面的参数有:

search :  搜寻某个软件名称或者是描述 (description) 的重要关键字;

info :      同上,不过有点类似 rpm -qai 的执行结果;

provides:从档案去搜寻软件!类似 rpm -qf 的功能!

[[email protected] ~]# yum [option] [查询工作项目] [相关参数]
选项与参数:
install   :后面接要安装的软件!

update : 后面接要升级的软件,若要整个系统都升级,就直接 update 即可-q

remove  : 移除后面接的软件;

备份策略

1.系统基本设定信息

? /etc/   整个目录
? /home 整个目录
? /var/spool/mail
? /boot

? /root

? 如果你自行安装过其他的套件,那么 /usr/local/ 或 /opt 也最好备份一下!

2.网络服务数据信息

? 软件本身的配置文件案,例如:/etc/ 整个目录,/usr/local/ 整个目录

? 软件服务提供的数据,以 WWW 及 MySQL 为例:WWW 资料:/var/www 整个目录或 /srv/www 整个目录,及系统的用户家目录MySQL : /var/lib/mysql 整个目录

? 其他在 Linux 主机上面提供的服务之数据库档案!

由于硬件或者费用的限制,鸟哥推荐需要备份目录:

? /boot
? /etc
? /home
? /root
? /usr/local(或者是 /opt 及 /srv 等)

? /var(注:这个目录当中有些暂存目录则可以不备份!)

备份用储存媒体的选择

1.硬件备份,如硬盘,光盘等

2. 异地备援系统,将数据定期备份到异地机器当中

 

备份的种类、频率与工具:

积累备份和差异备份

完整备份之累积备份 (Incremental backup)

如果你的主机是负责相当重要的服务,那么当系统损毁时,希望在最短的时间复原系统,仅仅备份关键数据时不行的,因为只有关键数据,还得重新安装新的disturbtion,还的考虑新旧版本之间的差异问题,还得进行数据的移植与系统服务的重建;所以需要完整备份;

积累备份:

累积备份操作意图

仅仅与前一次累计结果相比较,备份与前一次累计的不同之处;

累积备份使用的备份软件

dd, cpio, dump/restore

# 1. 用 dd 来将 /dev/sda 备份到完全一模一样的 /dev/sdb 硬盘上:

[[email protected] ~]# dd if=/dev/sda of=/dev/sdb

# 由于 dd 是读取扇区,所以 /dev/sdb 这颗磁盘可以不必格式化!非常的方便!

# 只是你会等非常非常久!因为 dd 的速度比较慢!

# 2. 使用 cpio 来备份不还原整个系统,假设储存媒体为 SATA 磁带机:

[[email protected] ~]# find / -print | cpio -covB > /dev/st0 <==备份到磁带机

[[email protected] ~]# cpio -iduv < /dev/st0 <==还原

假设 /home 为一个独立的文件系统,而 /backupdata 也是一个独立的用来备份的文件系统,那如何使用 dump 将/home 完整的备份到 /backupdata 上呢?可以像底下这样进行看看:

# 1. 完整备份
[[email protected] ~]# dump -0u -f /backupdata/home.dump /home

# 2. 第一次进行累积备份

[[email protected] ~]# dump -1u -f /backupdata/home.dump.1 /home

差异备份:

差异备份与累积备份有点类似,也是需要进行第一次的完整备份后才能够进行。只是差异备份指的是:每次的备份都是与原始的完整备份比较的结果。 所以系统运作的越久,离完整备份时间越长, 那么该次的差异备份数据可能就会越大!差异备份的示意图如下所示:

差异备份常用的工具与累积备份差不多!因为都需要完整备份嘛!如果使用 dump 来备份的话,那么每次备份的等级(level) 就都会是 level 1 的意思啦!当然啦,你也可以透过 tar的 -N 选项来备份喔!如下所示:

[[email protected] ~]

# tar -N ‘2009-06-01‘ -jpcv -f /backupdata/home.tar.bz2

/home

# 只有在比 2009-06-01 还要新的档案,在 /home 底下的档案才会被打包进home.bz2 中!

# 有点奇怪的是,目录还是会被记录下来,只是目录内的旧档案就不会备份。

此外,你也可以透过 rsync 来进行镜像备份喔! 这个 rsync 可以对两个目录进行镜像 (mirror) ,算是一个非常快速的备份工具!简单的指令方法为:

[[email protected] ~]# rsync -av 来源目录 目标目录
# 1. 将 /home/ 镜像到 /backupdata/home/ 去
[[email protected] ~]# rsync -av /home /backupdata/
# 此时会在 /backupdata 底下产生 home 这个目录来!

[[email protected] ~]# rsync -av /home /backupdata/

# 再次进行会快很多!如果数据没有更动,几乎不会进行任何劢作!

时间: 2024-10-24 22:13:34

linux基础学习7的相关文章

linux基础学习笔记——操作大全

作者:liaoyi 更新时间:2014-6-2 ****************基本操作***************** 关机 shutdown -h now    root用户               init 0              root用户halt      root+一般用户poweroff 重启shutdown -r now    root用户init6     root用户reboot            root+一般用户 注意:1.shutdown 比较灵活,可

c/c++unix/linux基础学习笔记-常用命令和vi的使用

linux 基本命令的使用-命令在ubuntu下面执行,有些命令通用其他linux,有些不通用. 多条命令间用;号隔开,回车后可以一起执行. clear-前屏,pwd显示当前目录,cd跳转目录. sudo [命令]  -ubuntu 下以管理员身份运行命令. 一般情况下,运行当前目录下的程序,要用 ./文件名 执行. 查看当前shell名称:ps 进入另外一个shell,直接输入shell名称:ksh/tcsh/sh/bash,退出一个shell用:exit. 切换shell命令,如:exec

Linux基础学习-crond系统计划任务

系统计划任务 大部分系统管理工作都是通过定期自动执行某个脚本来完成的,那么如何定期执行某个脚本,从而实现运维的自动化,这就要借助Linux的cron功能了. 计划任务分为一次性计划任务和周期性计划任务. 一次性计划任务 每晚11店30分开启网站服务. 周期性计划任务 每周一的凌晨3点30分把/var/www/html目录打包备份为backup.tar.gz 顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求,可以使用at命令实现. 如果你的Linux没有此命令可以使用yum inst

linux基础学习【4】

系统进程 一.什么是进程 进程 : 一个正在运行中的程序 程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统会给予这个内存内的单元一个识别码 (PID). 二.查看进程 1.图形方式查看 命令:`gnome-system-monitor` 2.进程查看命令 命令:`ps` ps -A/-e 显示所有(包括不同终端不同用户)进程(PID,TTY,TIME,CMD) ps -a 当前环境中运行的进程,不包含环境信息(PID,TTY,TIME,CMD) ps -u (

linux基础学习【5】

sshd服务,服务管理及文件传输 一.控制服务 1.什么是服务 2.用什么控制服务 系统初始化进程可以进行相应的控制 3.当前系统初始化进程是什么 systemd 系统初始化进程 pstree 显示系统中的进程树 进程树 4.系统控制命令 ssh(client)客户端---->sshd(server)服务器 命令:`systemctl` systemctl status sshd 查看sshd服务的状态inactive(不可用)/active(可用) systemctl start sshd 开

linux基础学习随笔【根本没有排序哈】

直接整:init 3 5 6 0;init 3代表切换到字符界面,5代表切换到图形界面:6表示重启,等同于reboot:0表示关机=poweroff:改主机名:hostnamectl set-hostname centos7.localdomain;[记不住,TAB键补全]查看操作系统linux版本:cat /etc/centos-release;或者通过安装lsb_release -a ;查看内核版本: uname -rlscpu 查看CPU使用情况:lsblk查看硬盘:free - h查看内

linux基础学习四

本次继续学习linux基础命令,包括stat.touch.cp.mv.rm.tree.mkdir.rmdir stat 命令格式 stat [OPTION]... FILE... 命令功能 显示文件的时间戳,即访问时间.修改时间和改变时间 stat [OPTION]... FILE...      [[email protected] ~]# stat newfile       File: `newfile'      Size: 0          Blocks: 0          I

系统管理员-Linux基础学习-第一部分内容。

6月30日前完成Linux的基础部分学习. 包括内容: 马哥的Linux基础教程 鸟哥的Linux私房菜-基础学习篇 第一部分 认识linux及linux主机规划与安装. 课程内容包括: (1)计算机体系架构与linux背景常识 (2)Linux主机规划与安装及vmware.xmanager的使用. (3)启动帮助与开关linux系统及基本操作知识. 具体内容笔记: 第一节:计算机体系架构与linux背景常识 1)计算机组成主要分为五个部分:控制单元.运算单元.存储单元.输入\输出单元. 1.

Linux基础学习路线指导

基础学习路线指南 Centos镜像下载地址 http://mirrors.163.com/centos/6/isos/x86_64/CentOS-6.6-x86_64-bin-DVD1.iso 开源镜像站下载  http://tshare365.com/archives/471.html VMware 安装Centos6  http://tshare365.com/archives/1122.html  (推荐大家使用Centos6) VMware安装Centos7  http://tshare

linux基础学习之 学习笔记

Linux是什么 1. linux的核心原型是1991年由托瓦兹(Linus Torvalds)写出来的. 2. 1973年:unix的正式诞生,Ritchie等人以C语言写出第一个正式unix核心. 3. 1977年:重要的unix分支--BSD(Berkeley Software Distribution)的诞生. 4. 目前被称为纯的unix指的就是System V(AT&T) 以及BSD(SUN)这两套. 5. 1984年,史托曼开始GNU计划,这个计划的目的是:建立一个自由.开放的un