Linux 第三节
一、CentOS 启动:
1.内核引导: 1.win/linux 通电,2.BISO自检(CPU,内存,硬盘等 | U盘、光驱、网卡、硬盘启动 通过MBR知道内核内存硬件驱动位置并加载(512/ 446(grub系统启动管理器、/boot/grub/grub.conf)/64(分区表)/2(55AA)),挂载系统!!!) 3.
2.运行init: 主机名,参数设定,语言,系统文件格式以及启动系统的所有服务。
3.系统初始化
4.监理终端
5.用户登录
1. GRUB :default=0 默认启动项 (从title算起的系统) timeout=5 启动提示框:手工选择启动操作系统 splashimage= (.xmp.qz) 启动时显示背景图片
hiddenment :隐藏菜单 title CentOS : 电脑操作系统 root (hd0,0):kernel initrd(内存中运行的系统,辅助内核找硬件驱动) 磁盘分区。
2.starting udev(设备管理器的服务) :设定主机名:localhost ,卷组,硬盘分区等。 恢复数据recovering journal (防止断电情况下文件丢失),清楚垃圾信息, 重新挂载系统 read-write mode 。 挂载本地文件系统
Starting udev:开启设备管理器的服务
Setting hostname localhost.localdomain: 设置主机名
Setting up Logical Volume Management:设置卷组,分区
Checking filesystems
/dev/mapper/VolGroup-lv_root:clean,
/dev/sad1:recovering journal:恢复数据文件(可能在断电情况下数据丢书)
/dev/sad1:clean,(清理磁盘垃圾)
Remounting root filesystem in read-write mode:重新挂载文件系统root分区(只读挂载内核,防止误写)
Mounting local filesystems:挂载本地文件系统
Enabling /etc/fstab swaps:激活swap分区
Entering non-interactive starup
Starting monitoring for VG VolGroup:监控卷组
建立终端:默认在命令行模式下回开启六个终端,一个图形终端
系统运行级别:0-6 0:关机 1:单用户模式 2:没有网络的命令行(多用户)
3:没有图形(服务器) 4:保留级别 5:图形化级别 6:重启
vim /etc/inittab: 查看init,:q!退出
图形和命令:
Ctrl+A: 光标移动到命令的开始
Ctrl+B: 光标向前移动一个字符
Ctrl+C: 取消
Ctrl+D: 退出终端
Ctrl+E: 光标移动到命令的结尾
Ctrl+F: 光标向后移动一个字符
Ctrl+L:清屏
Ctrl+K: 当前光标后字符删除
Ctrl+S: 锁住命令终端,按任何键没有反应
Ctrl+Q: 解锁命令终端。
Ctrl+U: 当前光标前字符删除
Ctrl+Z: 暂停进程
Alt+F1-F6: 切换终端
Tab双击:显示可用命令
fg: 调出进程
ll: ls -l
ls -t:文件修改时间排序
知识面扩充
1内核启动init
2系统初始化:(/etc/int/rcS.conf exec /etc/rc.d/rc.sysinit)
3init 找到/etc/inittab文件,确定默认的运行级别(/etc/init/rcS.conf exec teInit $runlevel)
4出发相应地runlevel事件(/etc/init/rcS.conf exec /etc/rc.d/rcX.d/rc $RUNLEVEL)
5开始运行/etc/rc.d/rc,传入参数X
6/etc/rc.d/rc脚本进行一系列设置,最后运行相应地/etc/rcX.d中的脚本
7/etc/rc.d/中的脚本按事先设定的优先级依次启动
8最后执行/etc/rc.d/rc.local
作业题:
1.图形界面启动的是那个运行级别?而我们平时用的命令行模式又是哪一个运行级别?
2.Linux默认共启动几个tty?
3.如果我们安装了图形支持,如何快速的在图形模式和命令行模式之间切换?
4.要想退出终端界面,出来使用exit外,还可以使用哪一个快捷键?
5.使用什么命令可以查看某个命令的帮助文档?
6.Linux下的隐藏文件/目录是怎样的?如何看一个目录下有没有隐藏文件/目录?
7.Linux系统,我们使用的命令大多在那几个目录下?系统日志会记录到那个目录下?
8.使用一条命令实现:让其他主机无法ping通您的Linux
9.请写出您知道的重启Linux系统的命令
10.忘记root密码怎么做?
扩展学习:
1.BIOS,ROM,RAM,MRB,Lilo,Bootloader.
2.了解upstart
3.Linux开机故障与解决方案
4.开机流程
ls: list directory contents
-a ,-all:do not ignore entries starting with.(隐藏文件以.开头)
第五期第三讲笔记
救援模式:
抢救一切系统崩溃,类似于windows下面的pe(Windows Preinstallation Environment(Windows PE),Windows预安装环境,是带有有限服务的最小Win32子系统,基于以保护模式运行的Windows XP Professional及以上内核)。
(而上节课的单用户模式类似于windows下的安全模式。
1、原系统的根目录需挂在到/mnt/sysimage/
(利用echo $PATH可以查看出区别: 查看PATH的环境变量)
#(利用chroot /mnt/sysimage将根目录挂载在/mnt/sysimage/下)有待考证
#(chroot的作用就是把根目录挂载到一个目录下)有待考证
linux启动过程
1、BIOS(basicin out system)通电检查硬件,然后加载第一可用启动项的mbr;
2、MBR(main bootrecorder)磁盘的第一个扇区,共512字节,446字节的boot程序空
间,64字节的分区表,2字节的校验位。执行MBR内保存的boot loader程序,
一般为GRUB,通过GRUB来找到kernel(内核)和initrd(临时根文件系统)(centos6里面此文件更名)并
将其拷贝到内存解压,控制权交给kernel;
3、kernel接管系统后,会执行ramdisk,通过ramdisk识别并释放文件系统,从而加载
硬件驱动,此时硬件系统准备完毕,接下来系统会执行init程序。
4、第一个进程init启动,init的作用就是要准备软件执行的环境(主机名称、网络设
置、语言环境设置、档案系统格式和其他一些服务)。
配置文件:/etc/inittab。
按照上述配置文件里的描述,启动相应runlevel的服务和程序。
(例如启动/etc/rc3.d/下面的程序(启动级别3的一些进程启动信息),/etc/rc3.d/下的文件名称一种
以K开头,意为kill,不启动,一种以S开头,意为start,根据S后面
的两位数字的大小进行由小到大的顺序启动)
至此软件运行环境准备完毕;
5、user的自定义启动项配置文件运行/etc/rc.local(/etc/rc.d/rc.local),
(centos6和centos5里面的路径有差异)此配置文件可以设置任何你希望开机执行的命令或程序,包括shellscript
6、启动终端或x-window
配置文件:/etc/inittab:runlevel用来表示在init进程结束之后的系统状态,在系统的硬件中没有固定的信息来表示 它纯粹是一种软件结构。init和inittab是runlevel影响系统状态的唯一原因
Runlevel 0 是让init关闭所有进程并终止系统。
Runlevel 1 是用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用 户的情况下不能进行更改的文件,改runlevel的编号1也可以用S代替。
Runlevel 2 是允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。
Runlevel 3 是最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。
Runlevel 4 一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel 4阶段,尽管很少使用,但 使用该系统可以实现一些特定的登录请求。
Runlevel 5 是将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择,但用户 如果需要这样,也可以通过在runlevel启动来实现该方案。
Runlevel 6 是关闭所有运行的进程并重新启动系统。
根据上面的配置文件,2、3、4、5级别上以ttyX为参数执行启动/sbin/mingetty(tty1-tty6),启动六次,也就是启动6个终端,至此,系统显示登陆界面,启动过程准备完成。
**id:runlevel:action:process:
id是指入口标识符:运行级别的标识:运行方式(nitdefault、sysinit、boot、bootwait):执行程序
respawn:重新执行终端,否则无法利用ALT+Fn切换终端
/etc/inittab文件中每个登记项的结构都是一样的,共分为以冒号“:”分隔的4个字段。具体如下:
identifier : run_level : action : process
其中,各字段以及与其相关的说明如下:
identifier 登记项标识符,最多为4个字符。用于惟一地标识/etc/inittab文件中的每一个登记项
run_level 系统运行级,即执行登记项的init级别。用于指定相应的登记项适用于哪一个运行级,即在哪一个运行级中被处理。如果该字段为空,那么相应的登记项将适用于所有的运行级。在该字段中,可以同时指定一个或多个运行级,其中各运行级分别以数字0.1.2.3.4.5.6或字母a、b、c表示,且无需对其进行分隔。
action 动作关键字。用于指定init(M)命令或进程对相应进程(在“process”字段定义)所实施的动作。具体动作包括:
1、boot:只有在引导过程中,才执行该进程,但不等待该进程的结束;当该进程死亡时,也不重新启动该进程。
2、bootwait:只有在引导过程中,才执行该进程,并等待进程的结束:当该进程死亡时,也不重新启动该进程。实际上,只有在系统被引导后,并从单用户方式进入多用户方式时,这些登记项才被处理;如果系统的默认运行级设置为2(即多用户方式),那么这些登记项在系统引导后将马上被处理。
3、initdefault:指定系统的默认运行级。系统启动时,init将首先查找该登记项。如果存在init将据此决定系统最初要进入的运行级。具体来说,init将指定登记项“run_level"字段中的最大数字(即最高运行级)为当前系统的默认运行级;如果该字段为空,那么将其解释为“0123456”,并以“6”作为默认运行级。如果不存在该登记项,那么init将要求用户在系统启动时指定一个最初的运行级。
4、off:如果相应的进程正在运行,那么就发出一个警告信号,等待20秒后,再通过杀死信号强行终止该进程。如果相应的进程并不存在那么就忽略该登记项。
5、once:启动相应的进程,但不等待该进程结束便继续处理/etc/inittab文件中的下一个登记项;当该进程死亡时,init也不重新启动该进程。注意:在从一个运行级进入另一个运行级时,如果相应的进程仍然在运行,那么init就不重新启动该进程。
6、ondemand:与“respawn”的功能完全相同,但只用于运行级为a、b或c的登记项。
7、powerfail:只在init接收到电源失败信号时执行相应的进程,但不等待该进程结束。
8、powerwait:只在init接收到电源失败信号时执行相应的进程,并在继续对/etc/inittab文件进行任何处理前等待该进程结束。
9、respawn:如果相应的进程还不存在,那么init就启动该进程,同时不等待该进程的结束就继续扫描/etc/inittab文件;当该进程死亡时,init将重新启动该进程。如果相应的进程已经存在,那么init将忽略该登记项并继续扫描/etc/inittab文件。
10、sysinit:只有在启动或重新启动系统并首先进入单用户时,init才执行这些登记项。而在系统从运行级1-6进入单用户方式时,init并不执行这些登记项。"action”字段为“sysinit”的登记项在“run_level”字段不指定任何运行级。
11、wait:启动进程并等待其结束,然后再处理/etc/inittab文件中的下一个登记项。
process 所要执行的shell命令。任何合法的shell语法均适用于该字段。
ps:
1、pstree命令,树状图显示进程,还显示进程PID,可以查看init在进程树里的位置。
2、who命令,结果可以看出,几个tty在登陆,几个pts(远程连接)在登陆。
w命令:查看用户登录操作行为命令。
w root: 查看root用户执行任务情况。
last root :登录历史
pkill -u user: 踢出用户
who-> ps -ef|grep pts/0 ->kill -9 16628
3、终端之间切换的快捷键是Alt+F(1-6),对应tty(1-6)。
ls命令——list缩写////参考:http://linux.cn/article-2535-1.html
1、相关参数:
ls :列出文件或者目录
"-l",使用长格式显示
"-a",显示文件名以"."开头的隐藏文件
"-h",以human易读格式显示,主要是看容量的时候使用"KB" "MB""GB",指当前文件夹目录的大小
"-lh" ,文件或者目录大小的, 方便识别
"-lhS" ,文件从大到小排序
"-lg" ,不打印所有者信息
"-ln" ,打印UID和GID
"-l --si" si以1000为单位,而-h以1024为单位。
"-l --block-size=M": 设置文件显示单位
"-li",显示inode号
"-r",reverse,改变归类的顺序,例如和-t配合使用,-tr和-t显示顺序是颠倒的。
"-R",递归列出子目录
"-lX/ -l --sort=extension":扩展名排序
"-t",按照修改时间顺序归类文件。
"-d",列出目录本身的信息,而不是目录里边的内容。
字节相关单位:
K = Kilobyte 千字节
M = Megabyte 兆字节
G = Gigabyte 十亿字节
T = Terabyte 兆兆字节
P = Petabyte 10的15次方字节
E = Exabyte 艾字节
Z = Zettabyte 泽它字节或皆字节
Y = Yottabyte 尧字节
目录结构(copy自网络,因为网络上有太多资料,所以不自己整理了)
/ 根目录
/bin 存放必要的命令
/boot 存放内核以及启动所需的文件等
/dev 存放设备文件
/etc 存放系统的配置文件
/home 用户文件的主目录,用户数据存放在其主目录中
/lib 存放必要的运行库
/mnt 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。
/proc 存放存储进程和系统信息
/root 超级用户的主目录
/sbin 存放系统管理程序
/tmp 存放临时文件的目录
/usr 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。
/var 包含系统产生的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、格式化后的手册页以及 一些应用程序的数据文件等等。建议单独的放在一个分区。
cd命令——change directory
常用用法:
cd ,回到登陆用户家目录;
cd 路径,进入该目标路径;
cd .. ,进入上级目录;
cd - ,进入上一次的目录,相当于windows里的后退;
alias命令
alias ll='ls -l --color=auto'
unalias ll
alias sr='service sshd start'
alias sr2='service sshd down ; service sshd start'
仅在当前终端有效,如果想永久,写在/etc/profile
ps命令相关内容
1、type 命令名称 查询该命令的类型
2、which 查找外部命令(无法查询bash内置的命令)
3、PATH=$PATH:路径1:路径2:路径3:路径4…路径5
4、/etc/profile 这个配置文件所有用户都可以配置,安全性不好。 System wide environment and startup programs,for login setup
5、vi 编辑文件时,ctrl z 可以暂时退出编辑页面,fg命令返回。
=================遗漏内容补充===================
为grub设置密码
配置文件:/etc/grub.conf
PS:此文件其实是一个软连接,真实路径为/boot/grub/grub.conf
[root@web01 ~]# ll /etc/grub.conf
复制代码
lrwxrwxrwx. 1 root root 22 Sep 20 19:41 /etc/grub.conf -> ../boot/grub/grub.conf
复制代码
加密方法明文加密:在hiddenmenu下新建一行,加入"password 你的密码"。
密文加密:使用grub-md5-crypt命令
[root@web01 ~]# grub-md5-crypt
复制代码
然后输入两次密码后,会出现一个字符串。
然后打开配置文件/etc/grub.conf,将"password --md5 $1$ZWvO$NW4VZwFHbLxcKTytCZYKg/"加入到配置文件里(hiddenmenu下)
另外一种加密方法:使用grub-crypt命令
[root@web01 ~]# grub-crypt
复制代码
然后输入两次密码后,会出现一个字符串。
然后打开配置文件/etc/grub.conf,
将"password --encrypted $6$zl2RntnLpa3SNdFz$182pcN5BH9k30m0VAm1PPEbevZ3uvg8M.nRDeC1nr6m51oaUn05C9USFbn598Zmenv2G.uI.
WLGFxYuAYIp7O."加入到配置文件里(hiddenmenu下)