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 starupStarting 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 -lls -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里面的路径有差异)此配置文件可以设置任何你希望开机执行的命令或程序,包括shellscript6、启动终端或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 166283、终端之间切换的快捷键是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 llalias sr='service sshd start'alias sr2='service sshd down ; service sshd start'仅在当前终端有效,如果想永久,写在/etc/profileps命令相关内容
1、type 命令名称 查询该命令的类型2、which 查找外部命令(无法查询bash内置的命令)3、PATH=$PATH:路径1:路径2:路径3:路径4…路径54、/etc/profile 这个配置文件所有用户都可以配置,安全性不好。 System wide environment and startup programs,for login setup5、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下)