tar命令、vi编辑器和系统初始化

一、打包命令

  tar 打包命令

  tar cvf  test.tar * 打包当前文件所有文件为test.tar

  tar –tf test.tar  查看打包的内容

  tar xvf  test.tar –C 解包  -C 路径

  tar   cvzf  test.tar * 打包并压缩  gzip压缩方式

  tar   cvjf  test.tar * 打包并压缩  bzip2压缩方式

二、vi编辑器

  1.vi编辑器简介

  1)vi的定义:vi是一个UNIX和Linux系统内嵌的标准正文(文字)编辑器,它是一种交互类型的正文编辑器,它可以用来创建和修改正文文件。

  2.vi编辑器的操作模式

  1)掌握vi编辑器的3中基本模式:

  a)命令行模式:vi的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等。

  b)编辑模式:在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vi编辑器解释为输入的正文。使用ESC键返回命令行模式。

  c)扩展模式:在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。

  3.在vi编辑器中光标的移动

  $ 当前行末尾       0 当前行的开始

  G 到文件末行      gg 跳到文件首行

  L当前屏幕的最后一行 H当前屏幕的首行 M当前中间的位置

  4.进入插入模式

  a:向后插入         i:向前插入          o:下一行编辑

  5.删除、复制、粘贴

  dd:删除光标所在的一行    ndd:n为数字,删除光标所在向下的n行

  yy:复制光标所在的一行   nyy:n为数字,复制光标所在向下的n行

  p:将已复制的数据在光标下一行粘贴     P:将已复制的数据在光标上一行粘贴

  6.撤销和重做

  u:撤销一步操作         ctrl+r:重做上一次操作

  7.扩展模式下的命令

  w:保存        q:退出         wq:保存退出             q!退出不保存

  /内容 查找内容

  s/需要修改的内容/改成的内容/  替换光标所在行的第一个所需内容

  %s /修改内容/改成的内容/g   %整篇文章 g一行所有内容

三、系统初始化和配置

  1.    Linux系统引导的顺序

  1)    Linux系统引导的顺序:(详见附1)

  其中,BIOS的工作是检查计算机的硬件设备,如CPU、内存和风扇速度等;

MBR会在启动盘的第1个块中,大小为512B。其中前446中的程序代码是用来选择boot partition(分区),也就是由哪个分区来装入开机用的代码;

在内核部分主要是装机计算机设备的驱动程序以便操作系统可以控制计算机上的设备。并且以只读的方式挂载/(根)文件系统,也就是此时的操作系统只能读到根文件系统(目录)所在的分区;

  init程序的进程id为1,即Linux操作系统第1个执行的程序。

  2.    BOIS的初始化和引导加载程序(详见linux系统管理P313)

     BIOS的定义:BIOS(Basic Input/Output System)(基本输入/输出系统的缩写),它是硬件与软件之间的接口,而且是非常基本的接口。

  3.    GRUB程序和grub.conf文件(详见linux系统管理P317)

  1)    GRUB的定义:GRUB是Grand Unified Bootloader(多重操作系统启动管理器)的缩写。

  2)    掌握grub的配置文件为:grub.conf

  设置grub Md5加密命令 grub-MD5-crypt

  Password = 明文或 password --md5 密文(编辑grub配置文件的密码)

  Title red hat 标题

  Password = 明文或 password --md5 密文(加载内核系统引导必须的密码)

  4.    内核的初始化和init的初始化(详见linux系统管理P322)

  1)    掌握init的配置文件为:/etc/inittab

  2)    了解init程序要做的工作:

    a)    决定预设(默认)要使用哪个run levels(运行级别)。

    b)    执行一些系统初始化的脚本(程序)来初始化操作系统。

    c)    根据run level的设置来执行所对应目录中的程序,以决定要启动哪些服务。

    d)    设定某些组合键。

    e)    定义UPS不间断电源系统,即当电源出现问题时或电源恢复时要执行哪些程序。

    f)     产生6个virtual consoles,也就是tty1~tty6。

  5.    run levels(运行级别)(详见linux系统管理P326)

   1)    掌握所有的运行级别及每一个运行级别对应的功能:

    0 —— halt 关机

    1 —— Single user mode 单用户模式

    2 —— Multiuser,withoutNFS 多用户模式但不带网络(text模式)

    3 —— Full multiuser mode 完整功能的多用户模式(text模式)

    4 —— unused 预留

    5 —— X11 图形化多用户模式

    6 —— reboot 重启

  6.    关闭系统及重启系统(详见linux系统管理P342)

  1)    掌握常用的可以关闭系统的命令:

  shutdown -h now

  halt

  poweroff

  init 0

  2)    掌握常用的可以重启系统的命令:

  shutdown -r now

  reboot

  init 6

  Ctrl+Alt+Delete键

  7.    掌握单用户模式修改用户的密码(详见作业三)

  8.    掌握救援模式(详见作业三)

四、课后作业

作业一:

1)  将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖)

    cat /etc/passwd /etc/group > /1.txt

2)  将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加)

    cat /etc/passwd /etc/shadow >> /2.txt

3)  将/1.txt、/2.txt两个文件打包为/1.tar

    tar cvf /1.tar /1.txt /2.txt

4)  使用gzip命令压缩1.txt文件名为1.txt.gz

    gzip /1.txt

5)  解压缩1.txt.gz

    gunzip /1.txt.gz

6)  使用bzip2压缩1.txt压缩后文件名为1.txt.bz2

    bzip2 /1.txt

7)  解压缩1.txt.bz2

    bunzip2 /1.txt.bz2

8)  解包1.tar,解包后文件存放到/tmp目录下

    tar xvf /1.bar -C /tmp

9)  使用tar命令打包并且压缩/1.txt、/2.txt,得到的文件名为1.tar.gz

    tar cvzf 1.tar.gz /1.txt /2.txt

10) 解包1.tar.gz,解包后文件存放到/tmp目录下

    tar xvzf /1.tar.gz -C /tmp

作业二:

1) 使用vi编辑器编辑文件/1.txt进入编辑模式写入内容“hello world”

    vim /1.txt 按a—》进入编辑模式 输入hello world

2)  进入命令行模式复制改行内容,在下方粘贴80行

    按Ese进去命令行模式 yy复制当前行 80p在下方粘贴80行

3)  快速移动光标到文件的最后一行

    shift+g光标移动到最后一行

4)  快速移动光标到当前屏幕的中间一行

    shift+m

5)  快速移动光标到文件的第五行

    5gg

6)  在下方插入新的一行内容“welcome to beijing”

    按o—》输入welcome to beijing

7)  删除刚插入的一行

    按Esc进去命令行模式,按dd

8)  撤销上一步的操作

    按u

9)  进入扩展模式,执行文件的保存退出操作

    按shift+:进入扩展模式 输入wq回车保存退出

作业三:

1) 单用户模式破解root密码

方法一:①开机看到内核条目时候,按e开始编辑。见到如下界面。

②在kernel中找到ro,并改为rw bin=/sysroot/bin/sh。按Ctrl+x重启系统。 

③输入chroot /sysroot运行,然后改密码,可以用passwd命令也可以进入/etc/passwd将需要修改的用户的密码占位符删除保存退出(此时该用户没有密码)。

④为了保证一些文件受到selinux上下文的影响,所以必须执行下面的命令:

touch /.autorelabel。可以强制重启。

⑤普通进入系统,可以密码进入修改密码的用户,也可以无密码进入密码被删除的用户。

方法二:①开机看到内核条目时候,按e开始编辑。在kernel中的最后加上init=/bin/sh,同时去掉rhgb和 quiet参数,按Ctrl+x启动系统。 

②输入mount -o remount,rw /运行以rw的方式重新挂载/(否则没有写权限),然后改密码,可以用passwd命令也可以进入/etc/passwd将需要修改的用户的密码占位符删除保存退出(此时该用户没有密码)。

③为了保证一些文件受到selinux上下文的影响,所以必须执行下面的命令:

touch /.autorelabel。此时不能强制重启。

④需要输入exec /sbin/init 初始化和重启系统。初始化完毕后可正常用密码的用户或者无密码的用户进入系统。

2) 救援模式破解root密码

1、开机按F2进去BIOS,选择启动项为CD-ROM Drive,保存并重启。

2、重启进去光盘启动,选择troubleshooting选项,再选择Rescue a CentOS system选项。

3、点击Continue,不能选Skip。

4、一直点击OK进入如下界面。

5、输入chroot /mnt/sysimage,接着使用命令修改用户密码后重启。

6、重启后还要进去BISO中修改启动项为Hard Drive。保存后重启。

7、正常进去系统输入密码进入。

附件1 linux系统启动流程

最初始阶段
当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序。这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。
下一步,计算机将从你所选择的存储设备中读取起始的512 bytes(比如光盘一开是的512 bytes,如果我们从光盘启动的话)。这512 bytes叫做主引导记录MBR (master boot record)。MBR会告诉电脑从该设备的某一个分区(partition)来装载引导加载程序(boot loader)。Boot loader储存有操作系统(OS)的相关信息,比如操作系统名称,操作系统内核 (kernel)所在位置等。常用的boot loader有GRUB和LILO。
随后,boot loader会帮助我们加载kernel。kernel实际上是一个用来操作计算机的程序,它是计算机操作系统的内核,主要的任务是管理计算机的硬件资源,充当软件和硬件的接口。操作系统上的任何操作都要通过kernel传达给硬件。Windows和Linux各自有自己kernel。狭义的操作系统就是指kernel,广义的操作系统包括kernel以及kernel之上的各种应用。
(Linus Torvalds与其说是Linux之父,不如说是Linux kernel之父。他依然负责Linux kernel的开发和维护。至于Ubuntu, Red Hat, 它们都是基于相同的kernel之上,囊括了不同的应用和界面构成的一个更加完整的操作系统版本。)
实际上,我们可以在多个分区安装boot loader,每个boot loader对应不同的操作系统,在读取MBR的时候选择我们想要启动的boot loader。这就是多操作系统的原理。
小结:BIOS -> MBR -> boot loader -> kernel
kernel
如果我们加载的是Linux kernel,Linux kernel开始工作。kernel会首先预留自己运行所需的内存空间,然后通过驱动程序(driver)检测计算机硬件。这样,操作系统就可以知道自己有哪些硬件可用。随后,kernel会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。到此,kernel就完成了在计算机启动阶段的工作,交接给init来管理。
小结: kernel -> init process
init process
(根据boot loader的选项,Linux此时可以进入单用户模式(single user mode)。在此模式下,初始脚本还没有开始执行,我们可以检测并修复计算机可能存在的错误)
随后,init会运行一系列的初始脚本(startup scripts),这些脚本是Linux中常见的shell scripts。这些脚本执行如下功能:
设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络……
当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录!!!init会给出登录(login)对话框,或者是图形化的登录界面。

输入用户名(比如说vamei)和密码,DONE!
在此后的过程中,你将以用户(user)vamei的身份操作电脑。此外,根据你创建用户时的设定,Linux还会将你归到某个组(group)中,比如可以是stupid组,或者是vamei组。
所以你将是用户vamei, 同时是vamei组的组员。(注意,组vamei和用户vamei只是重名而已,就好想你可以叫Dell, 同时还是Dell公司的老板一样。你完全也可以是用户vamei,同时为stupid组的组员)
总结
BIOS -> MBR -> boot loader -> kernel -> init process -> login用户,组 

猜你喜欢

转载自www.cnblogs.com/bubu99/p/12203054.html