linux面试问题及答案(linux的面试问题)

面试问linux熟悉程度怎么?

如果你非常熟悉,那就直说,并摆出自己以前的一些作品,如果不熟悉,就说有接触,但是刚入门,之后会自学,不耽误工作

一般面试linux都问什么问题?

平时用的不多的或者确实本身就有点模糊的,非常感谢面试官的解释,这里记录下:

文件权限 4755的涵义 = 文件权限中s/S的意义?

chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。

一般是三个数字:

第一个数字表示文件所有者的权限

第二个数字表示与文件所有者同属一个用户组的其他用户的权限

第三个数字表示其它用户组的权限

权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。

所以,chmod 755 设置用户的权限为:

1.文件所有者可读可写可执行

2.与文件所有者同属一个用户组的其他用户可读可执行

3.其它用户组可读可执行

chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。

文章Linux中的文件特殊权限中通过实例很好地解释了这里的4的含义:

先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限

# ls -l /usr/bin/passwd /etc/passwd

-rw-r–r–1 root root 154908-1913:54/etc/passwd

-rwsr-xr-x 1 root root 229842007-01-07/usr/bin/passwd

众所周知,/etc/passwd文件存放的各个用户的账号与密码信息,/usr/bin/passwd是执行修改和查看此文件的程序,但从权限上看,/etc/passwd仅有root权限的写(w)权,可是为什么每个用户都可以直接调用/usr/bin/passwd来写/etc/passwd从而达到修改自己的密码呢?注意这里的s代替了x( -rwsr-xr-x 1 root root 229842007-01-07/usr/bin/passwd) , 这里的s使得其他的用户执行/usr/bin/passwd时具有与owner root相当的权限。

这里的4或s是特殊的文件权限,其实s可以用在user或group,还有另一种特殊权限t:

再看个实例,查看你的/tmp目录的权限

# ls -dl /tmpdrwxrwxrwt 6 root root 4096 08-22 11:37 /tmp tmp目录是所有用户共有的临时文件夹,所有用户都拥有读写权限,这就必然出现一个问题,A用户在/tmp里创建了文件a.file,此时B用户看了不爽,在/tmp里把它给删了(因为拥有读写权限),那肯定是不行的。

有t特权的目录下的文件或目录只有owner和root才可以删除和修改,其他的人即使有写权限也不能删除。

如何设置以上特殊权限:

setuid:chmod u+s xxx

setgid: chmod g+s xxx

stick bit : chmod o+t xxx

或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:

suid guid stick bit

1 1 1

所以:

suid的二进制串为:100,换算十进制为:4

guid的二进制串为:010,换算十进制:2

stick bit 二进制串:001,换算十进制:1

于是也可以这样设:

setuid:chmod 4755 xxx

setgid:chmod 2755 xxx

stick bit:chmod 1755 xxx

最后,在一些文件设置了特殊权限后,字母不是小写的s或者t,而是大写的S和T,那代表此文件的特殊权限没有生效,是因为你尚未给它对应用户的x权限.

硬链接和软连接的大小?

通过下面的测试,硬链接与源文件是相同的inode节点,指向相同的文件,肯定是相同的大小;软连接可以理解为文件内容中存储了源文件的地址或路径,所以有自己的大小。

$ mkdir mytest

$ cd mytest

$ echo “AAAAAAAAAAAAAAAAA” >hello

$ ln hello hello2

$ ln -s hello hello3

$ ls -lia

总计 16

5764989 drwxrwxr-x 2 aaa aaa 4096 11-25 16:03 .

5566272 drwx—— 23 aaa aaa 4096 11-25 16:02 ..

5765068 -rw-rw-r– 2 aaa aaa 18 11-25 16:03 hello

5765068 -rw-rw-r– 2 aaa aaa 18 11-25 16:03 hello2

5765116 lrwxrwxrwx 1 aaa aaa 5 11-25 16:03 hello3 -> hello

$ echo “BBBBBBBBBBB” >>hello

$ ls -lia

总计 16

5764989 drwxrwxr-x 2 aaa aaa 4096 11-25 16:03 .

5566272 drwx—— 23 aaa aaa 4096 11-25 16:02 ..

5765068 -rw-rw-r– 2 aaa aaa 30 11-25 16:04 hello

5765068 -rw-rw-r– 2 aaa aaa 30 11-25 16:04 hello2

5765116 lrwxrwxrwx 1 aaa aaa 5 11-25 16:03 hello3 -> hello

如何设置当前用户新建文件或目录的默认权限?

umask用来定义新建文件或目录的默认权限,新的目录的权限为777-umask设置的值,新建文件的权限为666-umask设置的值。若要长期修改umask的值,可以把它写进/etc/profile或~/.profile或~/.bash_profile中。

$ umask

0002

$ umask -S

u=rwx,g=rwx,o=rx

$ mkdir aa

$ touch bb

$ ls -la

总计 12

drwxrwxr-x 3 aaa aaa 4096 11-25 16:20 .

drwx—— 23 aaa aaa 4096 11-25 16:20 ..

drwxrwxr-x 2 aaa aaa 4096 11-25 16:20 aa

-rw-rw-r– 1 aaa aaa 0 11-25 16:20 bb

$ umask 022

$ mkdir aa2

$ touch bb2

$ ls -la

总计 16

drwxrwxr-x 4 aaa aaa 4096 11-25 16:29 .

drwx—— 23 aaa aaa 4096 11-25 16:20 ..

drwxrwxr-x 2 aaa aaa 4096 11-25 16:20 aa

drwxr-xr-x 2 aaa aaa 4096 11-25 16:29 aa2

-rw-rw-r– 1 aaa aaa 0 11-25 16:20 bb

-rw-r–r– 1 aaa aaa 0 11-25 16:29 bb2

find . -name “filename” 中的filename为啥必须加引号?但是ls中不需要?

find

ls … …

因为这里的”filename”其实是表达式中的一个pattern,所以必须要加“”来组织shell的解析。 例如find . -name “aa*” -exec rm {}。

如何快速地将远程机器上的共享目录下的所有文件拷贝到本地供只读使用?

如果不拷贝,简单地mount到本地目录。但是这里是要求拷贝到本地,所以这里可以使用softlink来将对文件的拷贝时间变为固定值。具体可以使用cp的-s参数。

Linux中文件路劲可以用空格吗?

windows中用双引号就可以了,linux中用加空格来表示。

mkdir my folder (中间有2个空格)

cd my folder/

嵌入式面试词汇?

嵌入式软件工程师面试题目整理(二)

linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些?

字符设备和块设备的区别,请分别列举一些实际的设备说出它们是属于哪一类设备

linux中系统调用过程?如:应用程序中read()在linux中执行过程即从用户空间到内核空间?

查看驱动模块中打印信息应该使用什么命令?如何查看内核中已有的字符设备的信息?如何查看正在使用的有哪些中断号?

copy_to_user()和copy_from_user()主要用于实现什么功能?一般用于file_operations结构的哪些函数里面?

请简述主设备号和次设备号的用途。如果执行mknod chartest c 4 64,创建chartest设备。请分析chartest使用的是那一类设备驱动程序。

设备驱动程序中如何注册一个字符设备?分别解释一下它的几个参数的含义。

字符型驱动设备怎么创建设备文件?

insmod 一个驱动模块,会执行模块中的哪个函数?rmmod呢?这两个函数在设计上要注意哪些?遇到过卸载驱动出现异常没?是什么问题引起的?

设备驱动模型三个重要成员是?platform总线的匹配规则是?在具体应用上要不要先注册驱动再注册设备?有先后顺序没?

内核函数mmap的实现原理,机制?

申请内存的方式

IIC原理,总线框架,设备编写方法

Linux中的用户模式和内核模式是什么含意

怎样申请大块内核内存?

用户进程间通信主要哪几种方式

内核配置编译及Makefile?

谈谈对Volatile关键字的理解

framebuffer机制

spinlock与信号量的区别

linux中的同步机制

自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能用?为什么?

驱动里面为什么要有并发、互斥的控制?如何实现?讲个例子?

linux中断实现机制、tasklet和workqueue的区别和底层实现的区别,为什么要区分中断上半部和中断下半部

中断和轮询哪个效率高?怎样决定是采用中断方式还是采用轮询方式去实现驱动?

写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?

IRQ和FIQ有什么区别,在CPU里面是是怎么做的?

Linux软中断和工作队列的作用是什么

面试时问了解linux系统吗怎么?

如果非常熟悉,那就直接表明,并展出自己以前的一些作品,对于一些常用的命令都可以讲一下。

如果不熟悉,就说有接触,但是刚入门,之后会自学,不耽误工作。

如果自己从来没有接触过,就直接说明自己没有接触过linux,至于是否录用,面试官自己会判断。

linux内核面试必背知识点?

1 必须掌握的知识点包括进程、线程、文件系统、内存管理、网络协议栈等方面的知识。
2 因为Linux内核是负责管理和控制硬件资源的核心部分,所以在面试过程中,面试官通常会重点考察面试者对于内核的理解和掌握程度。
3 此外,在面试过程中,还可能会涉及到一些实际应用场景和具体问题,因此需要对一些常见的问题和解决方案有所了解和掌握。
例如,如何调试内核崩溃、如何对内核进行优化等问题。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平