面试相关的linux装机必备知识点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试相关的linux装机必备知识点相关的知识,希望对你有一定的参考价值。

OS操作系统五大功能

硬件驱动 进程管理 内存管理 网络管理 安全管理 文件管理

OS分类: 

服务器OS:RHEL, CentOS,Windows Server,AIX 

桌面OS:Windows 10,Windows 7,Mac OS,Fedora 

移动设备OS:Andriod,ios,YunOS


开发接口标准

ABI:Application Binary Interface

    ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在食用兼容ABI的系统中无需改动就能运行

API:Application Programming Interface

    API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译

POSIX:Portable Operating System Interface

    IEEE在操作系统上定义的一系列API标准

    POSIX兼容的程序可以在其他POSIX操作系统上编译执行

运行程序格式:

Windows: EXE, .dll(dynamic link library),.lib

Linux: ELF,.so(shared object), .a


用户和内核空间

用户空间:User space,用户程序和函数库

用户程序运行空间。为了安全,用户安全与内核空间是隔离的,即使用户程序崩溃,也不会影响到内核。

用户空间只负责执行简单的运算,不能直接调用系统资源,必须通过系统接口(system call),才能像内核发出指令

内核空间kernel space,设备驱动程序、字符及块设备、缓冲区、文件系统;操作系统、库文件、进程间调用、系统调用接口

是内核的运行空间

可以执行任意命令,调用系统一切资源

示例:

str="www.magedu.com"//赋值,用户空间

x = x + 100 //赋值,用户空间

file.write(str)//需写入文件,切换回内核空间

y = x + 200 //赋值,切换回用户空间


Linux哲学思想

一切皆文件(包括硬件、视频或图片)

程序小且执行单一功能

链接程序,共同完成复杂任务

避免令人困惑的用户界面

配置数据存储在文本中


CPU

即中央处理器

主频:主频是CPU的时钟频率(CPU Clock Speed),是CPU运算时的工作的频率(1秒内发生的同步脉冲数)的简称。单位为Hz。一般来说,主频越高,CPU的速度越快,由于内部结构不同,并非所有的时钟频率相同的CPU性能都一样

外频:系统总线的工作频率,CPU与外部(主板芯片组)交换数据、指令的工作时钟频率

倍频:倍频是指CPU外频与主频相差的倍数

三者的关系是:主频=外频x倍频

高速缓存(cache):高速交换的存储器。CPU缓存分为一级,二级,三级缓存,即L1,L2,L3

内存总线速度(Memory-Bus Speed):一般等同于CPU的外频,指CPU与二级(L2)高速缓存和内存之间的通信速度

地址总线高度:决定了CPU可以访问的物理地址空间

CPU类型:

x86

x64(CISC)

ARM(Acorn RISC Machine)

m68000,m68k(moto)

Power(IBM)

Powerpc(apple,ibm,moto)

Ultrasparc(Sun)

Alpha(HP)

安腾(compaq)

服务器分类:http://blog.csdn.net/pan_tian/article/details/9955539

详细版:https://wenku.baidu.com/view/b12b5b6b1eb91a37f1115c75.html


内存

内存是介于CPU和外部存储之间,是CPU对外部存储中程序与数据进行高速运算时存放程序指令、数据和中间结果的临时场所,它的物理实质就是一组具备数据输入输出和数据存储功能的高速集成电路

内存是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取速度快

计算机中所有的程序的运行都是在内存中运行的,因此内存的性能对计算机影响非常大

外存;硬盘,u盘,软盘,光盘

内存和外存的区别;内存断电后数据丢失,外存断电后数据可以保存

在线内存备用技术:

当主内存或者是扩展内存中的内存出现多位错误或者出现物理内存故障时,服务器仍继续运行

由备用内存接替出现故障内存的工作

备用的内存区域必须比其他区域的内存容量要大或相同

内存镜像:

镜像为系统在出现多位错误或内存物理故障时提供数据保护功能,以保证系统仍能正常的运行

数据同时写入两个镜像的内存区域

从一个区域进行数据的读取


Raid(阵列卡)

Raid卡:用来实现Raid的建立和重建,检测和修复多位错误,错误磁盘自动检测等功能。Raid芯片使CPU的资源得以释放

作用:

    阵列卡把若干硬盘驱动器按照一定要求组成一个整体、由阵列驱动器管理的系统

    阵列卡用来提供磁盘子系统的性能及可靠性

阵列卡参数:

    支持的RAID级别

    阵列卡缓存

    电池保护


机房作业标准

1.进入申请,来访登记

2.执勤人员应佩戴工作牌

3.隔绝易燃易爆、强磁、腐蚀性品及其他不安全物品

4.不得在通电情况下对设备内部进项清洗、除尘等作业

5.温度(15~25)湿度(30%-70%)衡定,温度变化率<5度/h,且能结露。室内保持高清洁度(10度)

6.机房应密封、防尘,防静电,防日光直射

7.噪声标准为在计算机系统停机条件下,在主操作员位置测量应小于68dB(A)

8.静电控制。主机房内绝缘体的静电电位不应大于1kV

9.整齐,设备尽可能入架

10.机房地板平整牢固,机房外观整洁,设备无明显污迹及灰尘堆积

11.消防措施到位,配备灭火器材

12.机房作业规范化标准化,布线、机架规范化

13.不得堆积无关设备

参考自https://wenku.baidu.com/view/0fd256e0b84ae45c3a358c50.html

https://wenku.baidu.com/view/8054d35faf45b307e87197be.html

最常使用的是42U机柜(高约2米)


获取帮助

whatis 

man

info 在线文档

获取发行版官方帮助

google及相关网站


文件类型

    -:普通文件

    d:目录文件

    b:块设备

    c:字符设备

    l:符号链接文件(软链接)

    p:管道文件pipe

        管道指用于连接一个读进程和一个写进程,以实现它们通信的共享文件。管道是半双工的,数据只能向一个方向流动,需要双方通信时,需要建立起两个管道。管道对于管道两端的进程而言,就是一个文件,但其和其他文件系统不同,管道单独构成一种文件系统。linux中实现了两种管道。无名管道只能用于父子进程或兄弟进程之间。无名管道没有磁盘节点,它只存在与内存中。无名管道实际上在创建时就自动打开,并且生成内存inode节点。命名管道可mknod创建,命名管道有文件名和磁盘i节点,因此可由任意两个或多个进程间通信使用,但其读写的内部实现和无名进程一样。

     参考自:https://baike.baidu.com/item/%E7%AE%A1%E9%81%93/476943?fr=aladdin#4

    s:套接字文件socket

        主要用于网络通信。使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。

        linux以文件的形式实现套接口,与套接口相应的文件属于sockfs特殊文件系统,创建一个套接口就是在sockfs中创建一个特殊文件,并建立起为实现套接口功能的相关数据结构。换句话说,对每一个新创建的套接字,linux内核都将在sockfs特殊文件系统中创建一个新的inode。

        参考自:http://blog.csdn.net/gatieme/article/details/46241975


文件通配符

*:匹配零个或多个字符

?:匹配任何单个字符

~:当前用户家目录

~+:当前工作目录

~-:前一个工作目录

[0-9]或[:digit:]:数字

[a-z]或[:lower:]:小写字母

[A-Z]或[:upper:]:大写字母

[wngj]:匹配中括号内任字符

[^wngi]:匹配中括号内字符外的所有其他字符

[:alpha:]:任意大小写字母

[:alnum:]:任意字母或数字

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:标点符号

[:print:]:可打印字符

inode索引节点(元数据)

文件类型、权限、UID、GID、链接数、大小及时间戳、指针等

stat可查看


软硬链接

软链接

一个符号链接指向另一个文件

ls -l 显示链接的名称和引用的文件

一个符号链接的内容是它引用文件的文件的名称

可以对目录进行

可以跨分区

指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;

语法:ln -s filename [linkname]

硬链接

创建硬链接会增加额外的记录项以引用文件

对应于同一个文件系统上同一个物理文件

每个目录引用相同的inode号

创建时链接数递增

删除文件时:

rm命令递减计数的链接

文件要存在,至少有一个链接数,当链接数为0时,该文件被删除

不能跨越驱动器或分区

语法 ln filename [linkname]


文件系统结构(/目录树下个文件夹的用途):

/boot:系统启动引导文件、内核文件(vmlinuz)、引导加载器(bootloader、grub)

/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

/lib:启动时程序依赖的基本库文件已经内核模块文件(/lib/modules)

/lib64:专用于x86_64系统上的辅助共享库文件的存放位置

/etc:配置文件目录

/home/username:普通用户家目录

/root:管理员家目录

/media:便携式移动设备挂载点

/mnt:临时文件系统挂载点

/dev:设备文件及特殊文件存储位置

    b:block device,块设备,随机访问

    c:character device,字符设备,线性访问

/opt:第三方应用程序安装位置

/srv:系统上运行的服务用到的数据

/tmp:临时文件存储位置

/usr:系统资源

/var:日志文件及应用进程数据

/proc:内存信息。用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux:sexlinux相关的安全策略等信息的存储位置


文件权限

普通文件

    r:读

    w:写,修改

    x:执行

目录文件

    r:ls列出其下文件

    x:进入

    w:修改,创建(只有w无意义)

    rx:可进入且可长列出,不能修改(常用)

    rw:无法进入目录内,等于只有r

    wx:能进入,能删除,不能长列出

    rwx:all权限

特殊权限:

suid:对一个可执行的二进制文件作用了suid后,其执行者临时拥有文件所属主权限。作用在无x权限的文件上无意义。/etc/passwd(chmod u+s)

sgid:

    对一个可执行的二进制文件作用了sgid权限后,任何对其文件拥有执行权限的用户,在其执行过程中都临时拥有文件所属组的权限。

    对一个目录作用了sgid权限后,任何对该目录拥有wx权限的用户名,在该目录下创建的文件及目录所属组均为该目录的所属组。(g+s)

sticky:对一个目录作用了sticky权限后(只限组和用户,该目录的owner不受影响),该目录下的文件仅其所属人可以删除。(o+t)


用户

超级用户:root

系统用户:1-499(centos6)、1-999(centos7)

一般不能登录(位于/sbin/nologin下),对守护进程或普通进程获取资源进行权限分配

登录(普通)用户:500+(cen6)、1000+(cen7)


安全上下文

即访问控制属性(ls -Z)

进程能够访问资源的权限取决于进程运行者的身份


密码复杂度策略

使用数字、大小写字母及特殊字符中至少3种

足够长

使用随机密码

定期更换,不要使用最近曾经使用过的密码

(从密码安全建立安全体系雏形)


安全体系

仁者见仁智者见智,阿拉也不过是个新人,对此也没什么发言权。而且这个复杂的问题已经不是技术的范畴了。运维人员还要具备的素质有很多,甩锅技能神马的0.0。安全体系姑且可以从下面几个方面着手(算是阿拉要参考的标准吧)。

人 事 物 流程

标准参考自http://zhuanlan.51cto.com/art/201704/537456.htm

阿拉的运维路还没开始呢,不过,就是有挑战才有趣啊。阿拉很期待呢!


安全3A

资源分配:

Authentication:认证

Authorization:授权

Accounting|Audition:审计


分析文本的工具

文件内容:less和cat

文件截取:head和tail

按列抽取:cut

按关键字抽取:grep

sed:按行处理。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,处理完模式空间的内容后将其送往屏幕。然后读入下行。

awk

比较两个文本的不同:diff a.sh b.sh

文本数据统计:wc(-l行数,-c字符数)

整理文本:sort和uniq

比较文件:diff和patch


正则表达式

分组与后项引用

分组:\(表达式\) 引用:\1

多个分组嵌套时:\(str1\+\(str2\)\)

\1:str1+\(str2\)

\2:str2

按括号从左到右的顺序划定分组

位置锚定:

^:行首

$:行尾

^pattern$:用于模式匹配整行

^$:空行

^[[:space:]]*$:空白行

\< \b:词首

\> \b:词尾

\<str\> \bstr\b:整个单词

匹配次数

*(任意次) .*(任意长度任意字符) \?(0或1次) \+(至少一次)

\{n\}n次 \{m,n\}m-n次,如2-3次 \{,n\}最多n次 \{n,\}最少n次


变量

本地变量:仅当前进程生效,其他进程及子进程无效

环境变量:全局变量

局部变量

位置变量

特殊变量:$?(上一条命令执行结果的返回值,0为成功,其他为错误) $0(当前路径名) $*(以单个字符串显示所有参数) [email protected](所有参数列表) $#(参数数量) $$(当前进程号)

查看:set或export

删除:unset var


脚本调试

bash -n a.sh 检测脚本中的语法错误

bash -x a.sh 调试执行


网线线序

T568B:橙白>橙>绿白>蓝>蓝白>绿>棕白>棕

T568A:绿白>绿>橙白>蓝>蓝白>橙>棕白>棕

直通线:两端线序相同(连接交换机到路由器、电脑或服务器)

交叉线:两端线序相反(连接同种设备或交换机与集线器,电脑与路由器)


网络模型分层 

七层:

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

七层优点:

降低复杂性、标准化接口、简化模块化设计、确保技术的互操作性、加快发展速度、简化教学


开机启动流程

post加电自检>>mbr引导>>boot loader>>grub>>加载内核(init)

POST:power-on-self-test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测

bootloader:加载引导器,引导程序,mbr前446个字节

centos6启动流程:

1.加载BIOS的硬件信息,获取第一个启动设备

2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息

3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

4.核心执行init程序,并获取默认的运行信息

5.init程序执行/etc/rc.d/rc.sysinit

6.启动核心的外挂模块

7.init执行运行的各个批处理文件(scripts)

8.init执行/etc/rc.d/rc.local

9.执行/bin/login程序,等待用户登录

10.登录之后开收以shell控制主机


计算机系统:

硬件:

    主机:

        CPU

        内存储器

    外部设备:

        外部存储器

        输入输出设备

        其他设备:调制解调器

软件:

    系统软件:

        驱动程序

        操作系统

        数据库

        服务程序

    应用软件:


进程管理工具:

top常用键位

排序:P(%CPU)、M(%MEM)、T(TIME+)

首部信息:l(uptime)、t(tasks及cpu)、1(cpu分别显示)、m(memory信息)

其他:q(退出)、s(修改刷新时间间隔)、k(终止指定进程)、w(保存文件)



本文出自 “RightNow” 博客,请务必保留此出处http://amelie.blog.51cto.com/12850951/1967975

以上是关于面试相关的linux装机必备知识点的主要内容,如果未能解决你的问题,请参考以下文章

JS万字整理JavaScript相关基础技术面试题总结 - 前端面试必备 - 基础知识总结 - 秋招冲鸭

Java面试必备,果断get

Java高级工程师必备知识!java怎么写api接口

JAVA面试必备的知识宝典

Java 程序员 面试前必备知识

Linux netstat命令详解,高级面试必备