linux面试小结

255 阅读5分钟

linux 概述

Linux 的体系结构

  • 从大的方面讲,Linux 体系结构可以分为两块:

image.png

  • 用户空间(User Space) :用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。
  • 内核空间(Kernel Space) :内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture-Dependent Kernel Code) 。

Linux 开机启动过程?

  • 1、主机加电自检,加载 BIOS 硬件信息。

  • 2、读取 MBR 的引导文件(GRUB、LILO)。

  • 3、引导 Linux 内核。

  • 4、运行第一个进程 init (进程号永远为 1 )。

  • 5、进入相应的运行级别。

  • 6、运行终端,输入用户名和密码。

Linux 使用的进程间通信方式?

  • 1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
  • 2、信号(signal) 。
  • 3、消息队列。
  • 4、共享内存。
  • 5、信号量。
  • 6、套接字(socket) 。

什么是交换空间?

交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。

磁盘、目录、文件

简单 Linux 文件系统?

  • 一切都是文件
  • Linux 支持 5 种文件类型,如下图所示: image.png

什么是 inode ?

  • 理解inode,要从文件储存说起。

  • 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

  • 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

  • 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

  • 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

什么是硬链接和软链接?

  • 硬链接:硬链接(hard link) : 可以将它理解为一个 “指向原始文件 inode 的指针”,系统不为它分配独立的 inode 和 文件。

image.png

image.png

  • 不足:

    • 不可以在不同文件系统的文件间建立链接;
    • 只有超级用户才可以为目录创建硬链接。
  • 软链接:这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。

  • 不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

参考

  • superBlock : 存储整个文件系统的信息。
  • inode : 存储文件的权限与属性。
  • data block : 真正存储文件内容。

linux 指令

1.目录操作

当前路径

[root@localhost ~]# pwd
/root

查看文件

image.png

删除目录

image.png

复制操作

image.png

移动

image.png

2. 文件操作

查看文件内容

image.png

  • 假如文件有几个GB,使用cat就危险的多,这只叫做猫的小命令,会在终端上疯狂的进行输出,你可以通过多次按ctrl+c来终止它。

image.png

image.png

查找文件

image.png

文件内容匹配

image.png

管道

  • | 管道,前面命令的输出,将作为后面命令的输入
seq 20 100 | head -n 50 | tail -n 1

image.png

排序

image.png

cat > sort.txt <<EOF
1 11
3 22
2 44
4 33
5 55
6 66
6 66
EOF
```bash
接下来让这两个命令上台表演一下。 sort可以使用-t指定分隔符,使用-k指定要排序的列。但是空格,是不需要做这些画蛇添足的指定的。
```bash
# 根据第一列倒序排序
[root@localhost ~]# cat sort.txt | sort  -n -k1 -r
6 66
6 66
5 55
4 33
3 22
2 44
1 11

# 统计每一行出现的次数,并根据出现次数倒序排序
# 此时,行数由7变成了6
[root@localhost ~]# cat sort.txt | sort  | uniq -c  | sort -n -k1 -r
2 6 66
1 5 55
1 4 33
1 3 22
1 2 44
1 1 11

3. 压缩

image.png

创建压缩包

[root@localhost ~]# tar cvfz files2.tar.gz files
[root@localhost ~]# du -h files2.tar.gz
12K	files2.tar.gz

4.面试查考的

ps查看进程

  • grep是搜索关键字
ps -ef | grep java

-aux 显示所有状态

ps -aux | grep java

查看日志

  • 如何查看最近1000行日志
tail -1000 xx.out
  • 可以继续搭配 grep 指令进行查询

查询端口

netstat  -anp  | grep   端口号

查询

  • 如何查找一个文件大小超过5M的文件
find . -type f -size +100M
  • 如果知道一个文件名称,怎么查这个文件在linux下的哪个目录,如:要查找tnsnames.ora文件
find / -name tnsnames.ora

需要记住的

查询目录
ls -l 
ls -a
ls -t

删除目录
rm -rf /name

复制目录
cp -rf /name /name2

移动
mv -r /name1  /name2

查看文件内容
less -N -m 


查找文件
find /name -name spring

压缩\解压
tar -zxvf [压缩包名字] -C [想要解压到的地址]
tar -cvfz files2.tar.gz files

参考