焦俊艳演的军旅电视剧:linux 基础知识

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 03:53:36

第六章 Linux系统管理 知识点

1. Linux系统的启动过程如何?

  ① Linux在启动时首先进行加电自检(加电自检是由计算机ROM内的一段BIOS代码对系统硬件状态以及用户设置参数进行检查)。

    ② 在加电自检完成之后,去寻找硬盘中的启动引导记录(MBR)。(主引导记录)

    ③ 加载启动引导管理器GRUB或者LILO。通过启动引导管理器,系统可以识别或确定:根分区位置、内核位置、系统初始化文件initrd位置。其中initrd文件用于加载磁盘以及文件系统。

    ④ 加载系统内核。(将内核的一部分或者全部读取到内存中)

    ⑤ 由Linux内核运行INIT进程。

  ⑥ 进入指定运行级别,运行系统服务程序。

  ⑦ 运行控制台程序,提示并允许用户输入帐号和口令进行登录。

 

2. 什么是Linux的运行级别?各运行级别代表什么?系统运行级别由哪个文件定义?

    ① 运行级别相当于系统进入的具备某种功能的模式(请对比Windows的各种安全模式)。每次开机进入相应的运行级别,代表具备了相应的功能。

    ② Linux下各种运行级别功能如下:

0 关闭系统。

:单用户模式,允许root用户对系统进行维护,不允许其他用户使用主机,是一种调试模式。

:多用户模式,(不支持NFS),即在此模式下不允许网络登录。

:完全多用户模式。

:未分配使用。 

:图形登录的多用户模式。 

6 :重新启动(不要把系统缺省运行级别设置为6,否则系统将不能正常启动)。

③系统运行级别是由/etc/inittab文件来定义的。

 

3. 如何显示和更改系统当前运行级别?

  #runlevel(查看当前系统的运行级别)

  #init 3(更改系统运行级别为3

 

4. 如何查看独立服务和非独立服务的启动状态?

  #chkconfig --list(查看系统中所有服务的启动状态)

  #chkconfig --list syslog(查看独立服务syslog的启动状态)

  #chkconfig --list rsync(查看非独立服务rsync的启动状态)

 

5. 如何设置独立服务和非独立服务的启动状态?

  #chkconfig --lelvel 24 syslog off(把独立服务syslog在运行级别24中的状态设为关闭,即,系统运行在级别24时,syslog服务关闭)

    chkconfig rsync on(在系统中开启非独立服务rsync

 

6. 什么是非独立服务?

  有些服务依赖于另一个服务,比如,rsync服务的启动就依赖于xinetd服务的启动,rsync服务就是非独立服务。即,只有xinetd服务启动后才有可能启动非独立服务。

对非独立服务的启动状态进行了更改后,需要重新启动xinetd服务,才能使更改生效。

service xinetd restart(重启xinetd服务)

 

7. 什么是INIT进程?

    initLinux系统中不可缺少的程序之一。

  所谓的INIT进程,它是一个由内核启动的用户级进程,由Linux内核引导运行。

  内核自行启动之后,就启动一个用户级程序init来完成以后的系统引导过程,所以INIT始终是第一个进程(其进程编号始终为1)。

  内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。

    INIT进程运行后将安装配置文件,引导运行系统所需要的其他进程,INIT进程将作为这些进程的父进程。

 

8. INIT进程的配置文件是什么

INIT进程是由Linux内核引导运行的,是系统中运行的第一个进程,其进程号(PID)永远为1”

INIT进程运行后将安装其配置文件,引导运行系统所需的其他进程,INIT进程将做为这些进程的父进程。 

INIT进程配置文件的文件名是“/etc/inittab”。

 

9. INIT进程的配置文件的格式代表什么?

INIT进程配置文件的文件名是“/etc/inittab”。

inittab文件中每行都具有相同的格式 id:runlevels:action:process

inittab文件中的每行为一个设置记录,每个记录中有idrunlevelsactionprocess四个字段,各字段之间用“:”隔开,他们共同确定某进程在哪些运行级别中以何种方式运行。

    ① id字段用于在inittab文件中唯一标识一个配置记录,实际上id就是一个配置记录的名称,也就是一个任意指定的标签。

  ② runlevels字段用于指定该记录在哪些运行级别中运行,runlevels可以是单个运行级别也可以是运行级别列表。

  ③ action字段用于描述记录将执行哪种类型的动作,进入运行级别时init应该运行第四个字段内的命令一次,而且init应该等待该命令结束。

    action字段常见的设置值有如下几种:

initdefalut:用于标识系统启动后进入哪一个默认的运行级别,存在该字段时,process字段将被忽略。

id:3:initdefault:(表示当前系统缺省的运行级别为3--完全多任务模式)

  ※ sysinitsysinit类进程将在启动时,在任何boot或者bootwait类进程之前运行,在存在sysinit字段的情况下,记录中的runlevels字段将被忽略,实际上表示的是系统启动时准备运行的命令。

si::sysinit:/etc/rc.d/rc.sysinit(系统启动时自动执行/etc/rc.d/rc.sysinit脚本文件)

  ※ waitwait类进程将在进入指定运行级别后运行一次,init进程将等待其结束。

l3:3:wait:/etc/rc.d/rc 3(当运行级别为3时,以3为参数运行/etc/rc.d/rc脚本,init将等待其返回)

  ※ ctrlaltdel:用于指定用户使用CTRL+ALT+DEL组合键时,系统可以进行重新启动。

  Ca::ctrlaltdel:/sbin/shutdown –r now(按下组合键后,系统立即重新启动)

  ※ powerfail用于指定当UPS发来断电信号时系统需要运行的命令。

  pf::powerfail:/sbin/shutdown –f  -h +2(接到UPS发来的断电信号后,2分钟关机)

  ※ powerokwait:用于指定当供电恢复时,需要运行的命令。

  pr:12345:powerokwait:/sbin/shutdown –c(供电恢复时,取消已经发布但尚未执行的系统关闭任务)

(注:sysinitbootbootwaitaction将在系统启动时无条件运行,而忽略其中的runlevel,其余的action(不含initdefault)都与某个runlevel相关。)

  ※respawnrespawn类进程在结束后会重新启动运行。

0:12345:respawn:/sbin/mingetty tty0(在15个级别上以tty0为参数执行/sbin/mingetty程序,打开tty0终端用于用户登录,如果进程退出则再次运行mingetty程序)

  ④ process字段所设置的是启动进程时所执行的命令。

 

10. 在系统启动过程中,执行的系统脚本有哪些?

rc.sysinit:保存在“/etc/rc.d/”目录中的Bash脚本文件,在系统启动时被调用执行,完成系统初始化的工作,这是系统执行的第一个脚本。

rc.local:在系统启动过程中,完成初始化脚本的执行后,会执行“/etc/”目录中的“rc.local”脚本,可以将系统中需要自定义执行的命令保存在“rc.local”脚本中。

 

11. 程序和进程的关系如何?

程序是保存在外部存储介质中的可执行代码和数据,是静态保存的代码。

进程是程序代码在处理器中的运行,是动态执行的代码。

操作系统在执行程序时,将程序代码由外部存储介质(如硬盘)读取到内部存储介质(内存)中。驻留在内存中的程序代码作为进程在中央处理器中被动态执行

  ④ Linux是多进程操作系统,每个程序启动时都可以创建一个或几个进程,与其他程序创建的进程共同运行在Linux内核空间,每个进程都是一个独立的任务。

 

12. 如何对进程进行查看?

使用ps命令查看进程:

ps –aux(查看系统内部的全部系统进程以及所有用户进程)

输出列表中的一些字段为:

USER:指明哪个用户启动了该命令。

PID:对进程的标识和引用。

TTY:指明该进程正运行于哪个终端上。

TIME:指明进程使用了多少CPU时间。

CMD:指明启动该进程的命令。

    STAT:显示当前进程的状态

——S:睡眠 R:运行 W:等待 Z:僵死 D:不可中断的静止 T:暂停执行

<:高优先级进程 N:低优先级进程 L:有内存分页分配并所在内存内

    ② 使用top查看系统信息:

top

使用top命令可以查看系统当前运行信息。并且可以实时跟踪系统资源使用情况。同时显示系统运行进程列表和每一个进程运行的状态。

可以通过PmnA分别以占用CPU时间、占用内存资源、指定PIDPID进行排序。退出用q

    ③ 使用pstree查看进程树:

    pstree(以树状结构显示进程间的父子关系)

 

13. 启动进程的方式有哪些?

手工启动。

由用户输入命令,直接执行一个程序,产生一个进程,该进程是一个前台进程。

后台启动需要在命令尾加入“&”

# cp /dev/cdrom mycd.iso &(把制作光盘镜像的命令放在后台执行,交出终端的使用权,可以继续运行其他程序)

②     调度启动

使用at命令设置某个命令在某个时间,一次性地在系统中执行。

at –t 0412000341203开始执行下面的命令)

at>touch myfile(创建文件myfile

设置完成后,使用Ctrl+D组合键结束。

#atq(查询系统中已经设置但还没有被执行的at任务)

#atrm 3(删除任务编号为3的at任务)

crontab命令设置在系统中需要周期性(如每天、每周等)完成的任务

 

14. 如何让进程在前后台间切换?

  ① 把当前终端中运行的进程调入后台

  组合键Ctrl+Z可以将当前终端的进程调入后台并暂停进程的执行。

  #top(动态查看系统运行信息)

  按下Ctrl+Z组合键(top命令将被挂起到后台,并暂时停止执行)

  ② 查看后台的进程

  #jobs(查看后台的进程的情况)

  #fg 1(将编号为1的后台进程恢复到前台)

 

15. 如何终止进程的运行?

  ① 对于当前正在执行的命令,用“ctrl+c”组合键终止其执行

  #ping 210.73.64.1(连续ping目标主机210.73.64.1

  按下“ctrl+c”,终止ping命令的执行。

  ② 使用kill命令终止进程

  #kill -9 3352(强行终止进程号为3352的进程)

 

16. 什么是守护进程?

守护进程是一种生存期长的进程,它们独立于控制终端,并且周期性地执行某种任务或等待处理某些发生的事情。

守护进程常常在系统引导启动时装入,在系统关闭时终止。

 

17. 什么是cron

  cron是一个可以用来根据时间、日期、月份、星期的组合来调度对周期性任务执行的守护进程,守护进程的名称是“crond”。

利用cron所提供的功能,可以将需要周期性重复执行的任务设置为cron任务,可以设置为在主机较空闲的时间(如夜间)自动完成。

RHEL4中实现cron功能的软件包有两个:vixie-cron 软件包用来实现系统中的定时执行功能;crontabs软件包实现对Linux系统的定时任务管理功能。

 

18. 如何启动和停止cron服务?

查询crond服务状态

service crond status

停止crond服务

service crond stop

启动crond服务

service crond start

重新启动crond服务

service crond restart

查看crond服务的开机启动状态

chkconfig --list crond

 

19. cron任务的格式如何?

  例:50 3 2 1 * run_yearly_cmd

  ① 上例中,值“50”所在的字段为“minute”字段,代表分钟,取值为从059之间的任意整数。

  ② 上例中,值“3”所在的字段为“hour”字段,代表小时,取值为从023之间的任意整数。

  ③ 上例中,值“2”所在的字段为“day”字段,代表日期,取值为从131之间的任意整数。

  ④ 上例中,值“1”所在的字段为“month”字段,代表月份,取值为从112之间的任意整数。

  ⑤ 上例中,值“*”所在的字段为“dayofweek”字段,代表星期,取值为从07之间的任意整数,07代表星期日。值为“*”时,代表取值为取值范围中的任意值。

  ⑥ 上例中,值“run_yearly_cmd”所在的字段为“command”字段,代表计划中要被执行的命令,可以是普通命令,也可以是自己编写的脚本程序。

 

20. 如何理解以下各cron任务?

0  *  *  *  *  /bin/ls(每月每天每小时的第0分钟执行一次/bin/ls

*/20  6-12  *  12  *  /usr/bin/backup(在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup

③ 0  17  *  *  1-5  mail -s "hi" alex@domain.name < /tmp/maildata(周一到周五每天17:00寄一封信给alex@domain.name

20  0-4/2  *  *  *  echo "haha"(每月每天的0 20 , 2 20 , 4 20 分执行 echo "haha"

 

21. 如何设定自己的cron任务?

Linux系统中的用户可以使用crontab命令来配置自己的cron任务。所有用户定义的cron任务都被保存在“/var/spool/cron”目录中,文件名与帐户名相同,并使用创建它们的用户身份来执行。

查看用户的cron任务

crontab –l(查看当前用户的cron任务)

编辑用户的cron任务

编辑并覆盖原有的cron任务

crontab(编辑新的cron任务,原来的任务将被覆盖掉,Ctrl+D保存退出)

调用文本编辑器对cron任务进行编辑

crontab –e(调用默认编辑器vicron任务进行编辑)

删除用户现有的cron任务

crontab –r(删除用户现有的cron任务)

cron任务文件的保存

所有用户的cron任务都被保存在目录“/var/spool/cron/”目录中,文件的名称与用户名相同。

cat /var/spool/cron/root(查看root用户的cron任务文件的内容)

 

22. cron相关的文件和目录有哪些?

系统任务配置文件

/etc/crontab”文件中设置的是Linux系统维护所需的任务,一般不需要人为去修改。

任务脚本目录

在“/etc”目录中有名为cron . hourly cron .daily cron . weekly cron . monthly 的目录,目录中存放的是需要定期执行的系统任务脚本,例如,“/etc/cron.daily/”目录中存放的是每日执行一次的系统任务脚本。

  ③ cron服务的启动脚本程序的存储目录为:/etc/inid.d/,文件名为:crond

 

23. 如何在现有的系统中手动挂载一块新硬盘?

  假设系统中现在有一块硬盘,设备名为/dev/sda,再添加一块硬盘,设备名为/dev/sdb

  ① fdisk /dev/sdb(对第二块硬盘进行分区)

  ② 按系统的提示,在sdb上创建一个主分区,分区的设备名为/dev/sdb1

    ③ #mkfs –t ext3 /dev/sdb1(把分区格式化为ext3文件系统)

  ④ mkdir /newdisk/(创建挂载点目录)

vi /etc/fstab(编辑分区表)

  在fstab文件中插入一行:/dev/sdb1  /newdisk  ext3 defaults 1 1

  ⑥ reboot(重启动)

 

24. 系统日志的作用是什么?

Linux系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样,系统一旦出现问题就会有据可查。

Linux系统中有不同类型的日志文件,不同类型的日志文件记载不同类型的信息,包括内核、服务以及在系统中运行的应用程序的信息。

 

25. Linux的日志文件有哪些类型?

Linux系统中所有的日志文件都放置在目录“/var/log/”中,日志文件通常可分为两在类:

应用程序独立管理的日志文件。由于应用程序只管理自己的日志文件,所以不同应用程序管理的日志文件之间的格式有很大的差异,没有统一的日志消息格式标准。

syslogd服务统一管理的日志文件。Linux系统中有相当一部分程序把自己的日志文件交由syslogd服务统一管理,因此这些日志文件都具有相同的格式。

 

26. Linux的磁盘配额有什么特点?

磁盘配额可以针对单独用户进行配置,也可以针对用户组进行配置。

既可以限制占用的空间,也可以限制文件的数量。

 

27. 什么是软限制?什么是硬限制?

  ① 软限制:一个用户在文件系统中可拥有的最大磁盘空间和最多文件数量,在某个宽限期内可以暂时超过这个限制。

  ② 硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,绝对不允许超过这个限制。

 

28. 如何配置磁盘配额?

  接知识点23,在sdb1分区上为用户teacher设置磁盘配额。

useradd teacher(创建teacher用户帐户)

passwd teacher(为帐户teacher设置密码)

修改/etc/fstab文件中的这一行“/dev/sdb1  /newdisk  ext3 defaults 1 1,修改为:“/dev/sdb1   /newdisk   ext3   defaults , usrquota  1  1(把sdb1分区挂载到/newdisk目录)

  ④ reboot(重启动以使更改生效)

  ⑤ quotacheck  –cmug  /dev/sdb1(在sdb1分区生成配额文件)

  ⑥ edquota –u teacher(为帐户teacher设置磁盘配额)

    ⑦ #quotaon /dev/sdb1(应用配额)

  ⑧ 用帐户teacher登录,进入/newdisk目录,验证配额。

 

29. 如何进行文件的归档(备份)?

  当前目录为/home,在/home中有子目录files,在/home/files/中有两个文件afilebfile。要求备份整个files目录。

 

普通归档

压缩归档

生成归档

tar –cf  back01.tar /files/

tar –czf  back01.tar.gz /files/

查看归档中的文件列表

tar –tf  back01.tar

tar –tzf  back01.tar.gz

恢复备份

tar –xf  back01.tar

tar -xzf  back01.tar.gz