Linux面试必备:常见问题解析 (linux面试经常问到的问题吗)

Linux操作系统是一个开源的、免费的、可定制的操作系统内核。它被广泛应用于服务器和企业级软件。Linux技术已经成为IT领域的热门话题,掌握Linux技术获得一份高薪工作的机会很大。在面试过程中,Linux相关问题也是经常被提及的,以下是一些常见的Linux面试问题及其解析。

一、Linux系统启动流程是怎么样的?

在Linux系统启动之前,计算机会检查硬件设备,并初始化引导设备。在BIOS过程完成后,计算机将从硬盘或外部存储设备中加载引导程序。引导程序将控制权移交给操作系统内核,计算机开始运行操作系统。Linux系统启动流程主要包括四部分:BIOS,引导程序,内核和Init进程。

1. BIOS:计算机启动时会首先执行BIOS(基本输入输出系统),BIOS会检查计算机硬件设备,并根据其配置加载相应的驱动程序。BIOS还会寻找引导设备,该设备中必须含有引导程序。

2. 引导程序:当BIOS检测到引导设备后,它会将控制权交给引导程序。引导程序将之一个Linux内核映像加载到内存中。在引导程序中,通常会安装GRUB(GRand Unified Bootloader),GRUB是一种广泛使用的引导程序,可以引导多种操作系统,如Linux、Windows等。

3. 内核:内核是操作系统的核心部分,包括各种硬件设备驱动程序、文件系统、进程管理等。它负责管理系统资源,并为用户和应用程序提供接口。

4. Init进程:Init进程始终是Linux启动过程的之一个进程,它是用户空间的一个重要组件,用于启动和管理其他进程。Init进程是一个特殊的进程,它的进程ID号为1,它会在系统启动时自动启动,并从配置文件中读取所有必要的系统信息,并启动其他服务进程。

二、Linux目录结构是怎样的?

Linux目录结构是根据FHS(Filesystem Hierarchy Standard)标准组织的,它规定了Linux文件系统的目录结构,这是一种重要的文件系统规范,它定义了Linux文件系统的布局及其所包含的目录及文件。

根目录:Linux系统的根目录为/,所有目录的路径都是从/开始的。要想访问Linux系统中的任何文件或目录,必须从根目录开始。

/bin目录:该目录下存储了许多系统命令和可执行文件,如cat、ls、cp、rm等。/bin包含的命令是用于系统启动期间的基本命令。

/etc目录:存放着许多系统配置文件和子目录。常见的配置文件有passwd(用户账户信息)、shadow(存放用户密码)、hosts(网络相关配置)、resolv.conf(DNS配置)、fstab(文件系统表)等。

/usr目录:存放操作系统的应用程序、库文件和文档。/usr目录通常包含了Linux系统中的大部分应用程序和工具。/usr子目录下往往还包括了local目录,其中包含用户安装的程序。/usr目录下还有一个很重要的子目录是/in,其中存放的是系统管理员使用的系统管理程序。

/home目录:该目录下存放用户的主目录,主要用来保存用户文件。

/var目录:该目录下存放Linux系统的日志和运行时数据,如系统日志、邮件内容和队列、数据库文件、打印任务队列等。

三、说一说Linux命令中常用的重定向符号有哪些?

Linux命令行中的重定向符有三种: >, >。这些符号允许将命令的输入或输出从标准输入和标准输出流重定向到文件中。

>符号:将命令输出重定向到一个文件中,从而创建或替换文件中的内容。例如,cat hello.txt > output.txt,这个命令会将hello.txt文件的内容复制到output.txt文件中。如果output.txt已经存在,则它的内容会被替换。

>>符号:将命令的输出追加到一个文件中。例如,ls -l >> list.txt。这个命令会将当前目录中的文件列表附加到list.txt文件中,如果list.txt已经存在,则新的输出将添加到文件的末尾。

四、说一说Linux命令中常用的过滤命令有哪些?

Linux命令行中经常用到过滤命令,用来处理命令的输出以达到更好的效果。常用的Linux过滤命令有以下几个:

grep:用于查找文本中匹配的字符串。例如,grep ‘hello’ hello.txt,这个命令会在hello.txt文件中查找字符串hello。grep命令还支持多个搜索模式,例如查找多个字符串、使用正则表达式、递归搜索等。

sort:用于对输入文本进行排序,例如,sort file.txt。

cut:用于提取文本行、列,并删除不需要的字符。例如,用cut命令提取passwd文件中的用户名和用户ID,cut -d ‘:’ -f 1,3 /etc/passwd。

sed:用于流编辑器,用于查找和替换文本中的字符串,并执行其他文本修改操作。例如,sed ‘s/old/new/g’ file.txt,这个命令会将file.txt文件中的所有old字符串替换为new字符串。

awk:用于文本处理和分析,通常用于格式化输出、行/数据处理、计算等。例如,awk ‘{print $1, $2, $3}’ file.txt,这个命令会输出file.txt中的每一行的前三个字段(默认使用空格作为字段分隔符)。

五、Linux系统中有哪些常用的计划任务?

Linux系统中,有一些常用的计划任务,例如,cron、anacron、systemd。

cron:是一种在预定时间执行命令的定时器。cron守护进程负责周期性地执行计划任务,它从cron.tab文件中读取内容,并根据其内容执行任务。通过使用cron,可以自动运行脚本、执行命令、备份数据、定期检查系统和清理缓存等操作。

anacron:类似于cron,它也是周期性执行一个任务。anacron的不同之处在于,它可以处理在计划任务的时间点上系统处于关机状态的情况。

systemd:是Linux系统中一个常见的init管理器(可以替代Upstart、SysVinit等),它可以管理系统启动和停止进程。systemd也可以定期地运行脚本、检查服务状态、定期启动或关闭服务等。

六、怎么查看Linux系统中的CPU、内存和磁盘使用情况?

在运行Linux系统时,了解CPU、内存和磁盘的使用情况非常重要。对于系统管理员来说,有一些用于监控以及管理系统资源的命令是必须要掌握的。以下是三个常用的命令。

top:这个命令会动态地显示系统资源的使用情况,包括CPU、内存和磁盘等。top命令以交互方式运行,用户可以查看进程的详细信息。

free:这个命令用于查看系统内存使用情况,包括物理内存和交换空间使用情况。free命令的输出结果包含了内存的使用情况的基本统计信息,例如可用内存、已用内存、剩余内存等。

df:这个命令用于查看磁盘使用情况,包括磁盘容量、使用情况和剩余容量等。df命令输出的信息有效地帮助了管理员了解磁盘的容量以及进一步进行磁盘空间管理。

相关问题拓展阅读:

一般面试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:54/etc/passwd

-rwsr-xr-x 1 root root07/usr/bin/passwd

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

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

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

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

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

如何设置以上特殊权限:

setuid:chmod u+s

setgid: chmod g+s

stick bit : chmod o+t

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

suid guid stick bit

所以:

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

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

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

于是也可以这样设:

setuid:chmod 4755

setgid:chmod 2755

stick bit:chmod 1755

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

硬链接和软连接的大小?

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

$ mkdir mytest

$ cd mytest

$ echo “AAAAAAAAAAAAAAAAA” >hello

$ ln hello hello2

$ ln -s hello hello3

$ ls -lia

总计 16

drwxrwxr-x 2 aaa aaa:03 .

drwxaaa aaa:02 ..

rw-rw-r– 2 aaa aaa:03 hello

rw-rw-r– 2 aaa aaa:03 hello2

lrwxrwxrwx 1 aaa aaa:03 hello3 -> hello

$ echo “BBBBBBBBBBB” >>hello

$ ls -lia

总计 16

drwxrwxr-x 2 aaa aaa:03 .

drwxaaa aaa:02 ..

rw-rw-r– 2 aaa aaa:04 hello

rw-rw-r– 2 aaa aaa:04 hello2

lrwxrwxrwx 1 aaa aaa: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:20 .

drwxaaa aaa:20 ..

drwxrwxr-x 2 aaa aaa:20 aa

-rw-rw-r– 1 aaa aaa:20 bb

$ umask 022

$ mkdir aa2

$ touch bb2

$ ls -la

总计 16

drwxrwxr-x 4 aaa aaa:29 .

drwxaaa aaa:20 ..

drwxrwxr-x 2 aaa aaa:20 aa

drwxr-xr-x 2 aaa aaa:29 aa2

-rw-rw-r– 1 aaa aaa:20 bb

-rw-r–r– 1 aaa aaa: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面试必备:常见问题解析 (linux面试经常问到的问题吗)