zoukankan      html  css  js  c++  java
  • 第三节

    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下)

  • 相关阅读:
    JPA01
    mybatis入门
    PHP 循环- While循环
    PHP超级全局变量
    PHP 数组排序
    PHP数组
    PHP Switch语句
    PHP IF...Else语句
    PHP运算符
    PHP字符串变量
  • 原文地址:https://www.cnblogs.com/LinuxSuDa/p/4305977.html
Copyright © 2011-2022 走看看