Linux的理解

1 解释Linux中的启动过程

启动过程将必要的操作系统文件加载到系统内存中,并使其做好启动准备。 启动后,系统就可以开始工作了。 一旦您打开 Linux 系统,CPU 就会跳转到 BIOS 并初始化 POST,以检查硬件可用性。 然后,CPU 查找并初始化 MBR 加载程序,加载成功后,初始化 GRUB 加载程序。 只要系统关闭,GRUB 就会加载保留在 RAM 中的内核。 内核执行 INIT 进程,该进程检查系统属性是否成功启动,并加载所需的必要文件并使系统正常运行。 一旦 INIT 过程完成,用户就可以使用用户提示。

2 解释BIOS、MBR和GRUB

BIOS、MBR和GRUB都是Linux启动过程中不可或缺的部分。BIOS是基本输入/输出系统(Basic Input/Output System),控制输入和输出设备。当Linux系统开机时,第一个过程就是BIOS检查,以确保输入和输出设备都是可用的。MBR是主引导记录器(Master Boot Recorder)的缩写。MBR是一块只有512字节的小空间,位于硬盘的开头或末尾。它包含主引导加载程序代码、分区表信息和一个幻数。主引导加载程序代码告诉MBR实际引导加载程序所在的位置,分区表知道每个分区的开始和结束,而幻数则验证MBR。GRUB是GRand Unified Boot loader的缩写,它位于MBR旁边,允许用户选择或加载默认的引导参数。GRUB将内核加载到内存中。

3 如何改变Linux中目录/文件的权限

chmod命令用于修改Linux中的文件/目录的权限,只有超级管理员或者有更改文件权限的管理员用户才能使用该命令。语法如下:

chmod <user/a> +/-/=<permission> <filename>

授予用户或者全部用户(a)对文件的特定权限或删除该权限。user是指当前用户或者文件的拥有者

a 指所有用户

u 指拥有者

g 指用户组

o 指其他用户

ug u和g两个类别的组合使用,指拥有者和用户组

+ 添加权限

- 删除权限

= 分配指定权限

x 代表文件的执行权,目录的可以进入的权限

r 文件的内容读取权限,目录列出该目录下内容的权限

w文件的内容编辑(如:更改、添加等写入操作)权限,目录下的创建子目录或新文件的权限

4 解释一下僵尸进程

僵尸进程又称为失效进程,是一种已经执行但仍在进程表中等待的进程。这些子进程在等待父进程执行系统调用唤醒。请记住,僵尸进程不会被kill命令杀死(除非添加了-9参数)。它们被保留在进程表中,一直等待父进程显式执行系统调用。

5 解释Linux中不同类型的网络绑定

网络绑定是结合了两个或以上的网络适配器,提供最佳的网络带宽和速度。Linux中使用以下几种网络绑定服务:

a) balance-rr:这是基于循环策略的默认模式,其主要夜店是容错和负载均衡。

b) active-backup:这种模式基于主动备份策略。它是容错的。只有网络适配器知道其MAC地址,并且一次仅允许一个活动从属适配器。当其中一个失败时,另一个就变成活跃状态。

c) balance-xor:这种设置XOR的模式在源地址中添加了一个XOR地址再发送给目标地址,它具有容错和负载均衡的能力。

d) broadcast:广播模式在所有从属适配器上传输所有数据

e) 802.3ad:该模式需要IEEE 802.3ad的支持,它被称为动态链路聚合,有助于创建具有相同速度的’从‘群组适配器。

f) balance-tlb:这种自适应传输负载均衡模式更具从设备的当前负载和传入负载流量来分配负载。当其中一个从属适配器发生故障时,另一个“从属适配器会被自动加载

g) balance-alb:这种模式也称为自适应负载均衡,不需要特定的交换机支持

6 软链接的特点是什么?

软链接也称为符号连接。软链接是创建到另外一个文件的链接文件。类似于window里面使用的快捷方式。他们可以跨文件系统访问和创建文件。它们可以链接目录并使其拥有与源文件不同的索引节点号。就算源文件被删除,软链接文件也还是会存在,但它已经失去任何用处,因为其中的链接功能已经不起作用了。

7 cron和anacron的区别

cron是Linux服务器中稍后定时执行的任务计划。例如日志文件或数据库的计划备份任务。anacron则是在工作站或者客户端执行的cron,它不需要一直运行或者连接到网络。他们的最低运行级别分别是,cron为分钟级别;anacron则最低只能按天运行。任何用户都可以设置cron,但anacron只能由超级用户设置。cron是配置在一直处于运行状态的服务器上,因此它里面的任务可以在计划的时间开始执行。anacron并不期望机器一致在运行们只需在系统启动后可以执行即可。

8 什么是索引节点

在Linux中,inode存储着一个文件中出名称和数据外的所有信息。索引节点号是在创建文件时生产的。它是由Linux创建和分配的唯一编号。索引节点号和文件名分别存储在包含文件的目录中。索引节点将包含与其关联的文件的云数据。及时文件损坏,inode和文件名也可以在同一文件系统的lost+found目录中找到。

9 解释BASH和DOS之间的区别

BASH在Linux中用于执行命令,BASH命令区分大小写,而DOS命令不区分大小写。在BASH中/是目录分隔符,而在DOS中/是参数分隔符。在BASH中\是转义字符,而DOS中\是目录分隔符。DOS遵循严格的命名规则,要求文件名需要8个字符后面跟着一个点(.)和3个字符的文件扩展名。BASH没有任何特定的文件命名约定。

10 解释守护进程

守护进程提供默认情况下操作系统中没有激活的特殊功能。它侦听每个服务的活动状态并激活操作系统未提供的所需服务。一旦该服务完成,它就保持休眠状态并等待下一次服务。

11 如何将KDE设置为默认桌面管理器

编辑/etc/sysconfig/desktop,在里面添加下面的内容

DESKTOP="KDE"
DISPLAYMANAGER="KDE"

12 什么时候会遇到内核恐慌问题

当系统发生严重错误(例如与硬件通信错误或操作系统文件丢失)时,将会出现内核恐慌。

13 What is an intrid image?

An intrid image is the initial ram disk image that is loaded into the memory after the POST in order to improve the machine’s I/O performance; it will contain a temporary root file system.

14 安装Linux至少需要几个分区

安装Linux需要最少两个分区:根分区和交换空间

15 如果你的服务器物理内存是2GB,那么建议交换分区(swap)的空间大小最少为多少?

建议交换分区的空间大小为物理内存的两倍或以上且不得小于32MB,因此2GB的内存应该最小配置4GB交换空间。

16 如何添加特殊命令以期望在系统初始化启动完成后自动运行该命令?

可在/etc/rc.local文件中添加需要指定运行的命令,系统完成初始化启动后回去执行该文件中配置的命令。

17 解释以下的语句:ls -lhrs|grep -i $USER|tail -3|awk '{print $,$9}'

a) 以长信息的格式列出,文件大小为人类可阅读格式,按照大小方向排序

b) grep查找匹配当前用户名的行

c) 提取末尾的3行结果

d) 打印出字符串结果中的第5和第9类的内容(也就是文件大小和文件名)

18 想要为所有用户设置全局环境变量和启动程序,可以在哪里配置

配置文件/etc/profile里面保存着全局变量参数,可供用户于登录时继承这些变量的值,可以将需要配置的全局变量添加到这个文件中。

19 在哪个配置文件中你可以设所有bash用户的命令提示符为[user@host][~]#

可以在/etc/bashrc配置文件为所有用户设置bash的配置项。

20 作为普通用户,使用命令ls -d /root可以得到什么样的输出

该命令添加了-d参数,用于查看指定目录的信息输出,这个操作有利于帮助了解违和无权访问该目录。

21 命令#reboot now的执行结果是什么?

#符号表示注释,因此reboot now的内容直接被忽略,不执行了。

22 命令!l运行后的结果是什么?ls还是id还是who?

!将运行最后一个命令,后面的l使其匹配l*的命令,因此它将运行ls.

23 输入for得到的结果是什么?

for是一个shell的内部命令,因此它会被检测为shell的关键字

24 如何通过获取环境变量来识别你当前使用的是哪个shell

系统把你当前使用的shell的名称记录在环境变量$SHELL里面,可以通过echo $SHELL打印出该变量来判断当前使用的shell是哪个。

25 命令su root和su - root的区别

运行su root时,你仅更改UID和GID并保留在当前环境中,如果使用减号su - root,还会启动root的登陆并继承它的环境变量,这样会使得切换用户的操作更像是一个用户的真实登陆。

26 命令cd /tmp && pwd和(cd /tmp && pwd)有什么区别

运行第一个命令:将移动到/tmp目录中并打印出目录的绝对路径。运行结束后停留在该目录

运行第二个命令:则会在命令结束后返回到执行该命令的起始目录

27 源码安装tarball的过程最常见的步骤是什么

a) 解压并进入tarball的目录

b) ./configure

c) make

d) make install

28 你在一个域名不存在的演示站点mydomain.cool上工作,该站点在10.10.10.1的本地服务器里面apache上运行,如何配置其能在本地浏览器上运行。

可以在/etc/host文件上面配置10.10.10.1 mydomain.cool来使本地服务器可以解析到主机mydomai.cool

29 在bash shell中,如何把root的命令提示符更改为[User][Host]{path}#

修改PS1的环境变量值可以实现:

export PS1='[\u][\h]{\w}#'

30 如何删除名为--test的文件

因为--test可能会被当作是一个参数,所以需要加文件名前面添加--。如下面的例子:

rm -- --test

31 想改变当天的信息,该怎么做

要改变当天的信息,需要编辑/etc/motd文件。motd 文件的内容会显示在用户的终端;系统管理员可以在文件中编辑系统活动消息,例如:管理员通知用户系统何时进行软件或硬件的升级、何时进行系统维护等。

32 运行XFree86所需的最小内存是多少

XFree86至少需要8 MB 才能运行

33 如何使用命令创建新的文件系统

mkfs命令可以创建新的文件系统

34 Linux中有那些是有效的通配符

Linux下支持的通配符有:?和*

35 如何将命令转到后台运行

在命令的末尾添加 & 符号。如:

./run_file_exec &

36 如何将命令的STDERR响应重定向到STDOUT?

为了将STDERR重定向到STDOUT,需要将重定向参数添加到命令中,如

<command> 2>&1

37 echo Hello > tmp.log和echo Hello >> tmp.log有什么区别

使用 > 时,将截断文件在文件的首行写入内容,原来的内容将被覆盖掉;使用 >> 时,将在文件的末尾追加新行写入内容。

38 Linux 文件名的限制是多少?

256个字符

39 如何向进程发送SIGKILL信号?

kill -9 <process_id>

40 你想通过交互式界面和快速解析(比traceroute更快的解析)来跟踪远程服务器,你该怎么做

mtr工具为服务器广利元提供了比traceroute更快交互性更前的解决方案。