SLAM面试笔记(7) — Linux面试题

目录

问题1:Linux系统基本组件?

问题2:Linux和Unix有什么区别?

问题3:Linux下编译程序

问题4:gcc基本格式和常用指令

问题5:用什么命令查找内存和交换使用情况?

问题6:Linux常用指令汇总

问题7:软链接和硬链接的区别?

问题8:解释Linux中的文件权限?

问题9:绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

问题10:怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?

问题11:Linux 下命令有哪几种可使用的通配符?分别代表什么含义?

问题12:Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

问题13:du 和 df 的定义,以及区别?

问题14:如何在 Linux 中创建和删除目录?

问题15:如何在Linux中创建文件?

问题16:如何在Linux中重命名文件和目录?:

问题17:如何在Linux中复制文件和目录?

问题18:如何在 Linux 中调度任务?什么是 crontab 并解释 crontab 中的字段?

问题19:你知道哪些基本的 Vim 命令?

问题20:如何将二进制文件添加到 $PATH 变量中?

问题21:解释Grep命令和正则表达式?

问题22:umask和ulimit有什么区别?

问题23:解释Linux中top命令的输出?

问题24:Linux 中的进程状态有哪些?

问题25:如何在 Linux 中备份或归档文件(tar 命令)?

问题26:如何停止Linux中正在运行的进程?

问题27:如何在linux中搜索文件?:

问题28:如何检查某项服务是否在运行?

问题29:如何启动服务、停止服务、重启时启动服务?

问题30:如何远程登录另一台linux电脑?

问题31:如何查看磁盘使用情况?

问题32:如何设置Linux文件/目录权限?

问题33:如何设置文件/目录的所有权?:

问题34:如何在Linux中创建用户和组?

问题35:如何在Linux中查找内核/操作系统版本?

问题36:如何查找接口IP地址?

问题37:基于名称的虚拟主机和基于IP的虚拟主机有什么区别?

问题38:网络绑定有什么优势?

参考文章


问题1:Linux系统基本组件?

Linux 由 4 个基本组件构成:

Kernel:这是Linux系统的核心。它负责与硬件组件交互并确保操作系统与硬件设备进行通信。

Shell: Shell 是 Linux 用户和内核之间的接口。在 shell 中,命令由用户发出,然后由操作系统执行。

系统库:这些是特殊程序或函数,它们负责实现操作系统的大部分功能,而不依赖于内核模块的代码访问权限。

系统实用程序:这些是执行某些任务的特定程序。例如 LibreOffice、Brasero、Gparted。

问题2:Linux和Unix有什么区别?

Linux和Unix是两个不同的操作系统,但它们有一些共同之处。Unix是最早的商业操作系统之一,而Linux是基于Unix的开源操作系统。两者都使用类似的命令行接口和文件系统结构。UNIX主要用于高端服务器、实验室等,而Linux则被用于更贴近生活的台式机、笔记本等。

问题3:Linux下编译程序

(1)我们首先进入Linux系统中的一个文件夹下,输入命令:touch text.c 创建一个C文件:

(2)然后用gedit打开文件,手动输入我们的程序。

#include <stdio.h>
int main()
{
    printf("Hello, Linux!\n");
    return 0;
}

(3)然后我们在终端输入:

gcc test.c -o test

(4)这时候我们看到经过编译、链接后,我们得到了可执行文件。然后我们执行:

./test

问题4:gcc基本格式和常用指令

gcc基本格式

若不加入参数,则按默认参数依次执行编译、汇编和链接操作,生成的可执行文件名为
a.out

gcc [options] file1 file2...

gcc常用指令

  • c:只编译源文件,生成目标文件(.o 文件),不进行链接。
  • o <file>:指定输出文件的名称。
  • g:生成调试信息,用于调试程序。
  • Wall:打开所有警告提示。
  • E:只进行预处理,输出预处理结果。
  • S:只进行编译,生成汇编代码。
  • shared:生成共享库(动态链接库)。
  • static:生成静态可执行文件,使用静态链接。

除了上述常用选项之外,gcc 还提供了许多其他选项和参数,用于特定的编译和链接需求。你可以通过运行 gcc --help 命令或查阅 gcc 的官方文档来获取完整的选项和参数列表。

问题5:用什么命令查找内存和交换使用情况?

使用free命令

问题6:Linux常用指令汇总

命令 功能
man 帮助命令
ls 查看当前文件与目录信息
cd 用于切换当前目录
pwd 用于显示工作目录。
mkdir mkdir 命令用于创建文件夹。
rm 删除文件或文件夹命令
rmdir 从一个目录中删除一个或多个子目录项
mv 移动文件或文件夹命令
cp 复制命令
cat 查看文件内容;连接文件
more more 会以一页一页的显示文件内容
less less 与 more 类似,但使用 less 可以随意浏览文件
grep 该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命
令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工。
ps 查看进程情况
top 可以查看操作系统的信息,如进程、CPU占用率、内存信息等
kill 向进程发送终止信号

问题7:软链接和硬链接的区别?

软链接和硬链接是在计算机文件系统中使用的两种不同的链接方式。

两者区别:

  • 软链接:是一个指向文件或目录的引用,类似于一个快捷方式,它可以跨越不同的文件系统,并且可以指向不存在的文件或目录,软链接可以在文件或目录被删除时保留。
  • 硬链接:是一个文件或目录的实际副本,它与原始文件或目录具有相同的索引节点,并且只能在同一文件系统内使用,硬链接则会在原始文件或目录被删除时失效。

命令的实现:

  • ​ 硬链接:ln
  • ​ 软链接:ln -s

问题8:解释Linux中的文件权限?

Linux文件的权限

在 Linux 中,有 3 种主要类型的文件权限:读、写和执行。这些权限可以递归地分配给文件或目录。作为一个多用户系统,您可以将这些权限分配给 root 用户、组,甚至是使用该系统的其他用户。

  • Read:读取权限授予使用打开和读取文件的能力。
  • Write:写入权限允许用户打开和修改或编辑文件的内容并保存更改。
  • Execute:这允许用户执行或运行可执行的文件或程序或 shell 脚本。

linux查看文件权限

在linux命令行中,输入:ls -la, 可以查看当前目录下面所有文件的权限

修改文件权限

可以通过命令chmod修改文件的权限,为了方便,权限用数字表示,分别用数字4、2、1表示读、写、可执行权限。并且可以进行组合,比如4 + 2 + 1 = 7,那么7表示读、写、可执行权限,4 + 2= 6表示读写权限。具体命令如下:

chmod 764 file1
chmod 777 -R dir

命令中一共有三个数字,分别对应拥有者、用户组其它用户、其它用户的权限。

764表示拥有者的权限为7(4 + 2 + 1,读写可执行),用户组其它用户权限为6(4+2,读写),其它用户权限为4(可读)。

如果是要修改一个文件夹的权限,需要加上-R,表示递归修改文件夹下面所有文件的权限。
 

问题9:绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

绝对路径:如/etc/init.d

当前目录:./

上层目录: …/

主目录:~/

切换目录:cd

问题10:怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?

清屏:clear

退出当前命令:ctrl+c 彻底退出

执行睡眠 :ctrl+z 挂起当前进程 fg 恢复后台

查看当前用户 id:”id“:查看显示目前登陆账户的 uid 和gid及所属分组及用户名

查看指定帮助:如 man adduser 这个很全 而且有例子;adduser --help 这个告诉你一些常用参数;info adduesr;

问题11:Linux 下命令有哪几种可使用的通配符?分别代表什么含义?

“?”可替代单个字符。

“*”可替代任意多个字符。

方括号“[charset]”可替代charset集中的任何单个字符,如[a-z],[abABC]

问题12:Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

  • 不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断,指进程不响应异步信号。D:不可中断 Uninterruptible(usually IO)
  • 暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。正被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。T:停止或被追踪
  • 就绪状态:在 run_queue 队列里的状态。W:进入内存交换(从内核 2.6 开始无效)
  • 运行状态:在run_queue队列里的状态。R:正在运行,或在队列中的进程
  • 可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待socket 连接、等待信号量),而被挂起。S:处于休眠状态
  • zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉。Z:僵尸进程
  • 退出状态。X:死掉的进程

问题13:du 和 df 的定义,以及区别?

du 显示目录或文件的大小

df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data,而 df命令则查看文件系统的磁盘分配图并考虑 Meta Data。

df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。
 

问题14:如何在 Linux 中创建和删除目录?

创建目录

//使用 mkdir 命令
mkdir directory_name

删除目录:Linux中删除目录的方法有多种。

  • 使用命令"rm -r"可以删除一个目录及其所有子目录和文件。
  • 使用命令"rmdir"可以删除一个空目录。删除目录时需要谨慎,以免误删重要文件。

问题15:如何在Linux中创建文件?

要创建文件,请使用 touch 命令。例如要创建一个文件 filename运行命令:

touch filename

问题16:如何在Linux中重命名文件和目录?:

使用 mv 命令重命名文件。请注意,要使其正常工作,要重命名的文件的路径必须相同。例如,要将/data/files目录中的文件 file1.doc 重命名为 file2.doc,请执行以下命令:

mv /data/files/file1.doc /data/files/file2.doc

问题17:如何在Linux中复制文件和目录?

在 Linux 中使用 cp 命令复制文件

cp  /source/of/the/file  /destination/of/the/file

问题18:如何在 Linux 中调度任务?什么是 crontab 并解释 crontab 中的字段?

Crontab是Linux中用于调度任务的工具,它通过指定时间和命令来执行任务。在crontab中有五个字段,分别表示分钟、小时、日期、月份和星期几。

<Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> <command/program to execute>

这些字段的值可以是具体的数字或者通配符。通过理解crontab的字段,可以在Linux中有效地调度任务。

问题19:你知道哪些基本的 Vim 命令?

保存:要保存文件,请按ESC按钮并按 :wq! OR :ZZ

退出:要退出文件而不进行更改,请运行命令:q

转到文件中的特定行:

  • 按ESC再按j向下移动一行。
  • k按键盘上移一行
  • 将光标移动到行首 按^
  • 将光标移动到行尾 按$
  • 将光标移动到文件的开头1G
  • 将光标移动到文件末尾G
  • 将光标移动到文件中行号“n”的开头nG

复制文本:将光标移动到字符串或文本的开头。接下来按键盘上的 v 并向前按光标以突出显示文本。到达要复制的文本的末尾后,请按yyank 的缩写来复制文本。

  • 要将文本从当前位置复制到行尾 -y$
  • 复制整行 -yy
  • 要复制下面的 4 行 -4yy

粘贴文本:要粘贴文本,只需按p键盘上的

删除文本:

  • 要删除一行,请移至一行的开头。按下ESC按钮并按下dd
  • 要删除单个单词,请将光标放在单词前面并点击dw
  • 删除从当前单词到行尾的文本d$
  • 要删除下面运行的 3 行3dd

问题20:如何将二进制文件添加到 $PATH 变量中?

$ export PATH=$PATH:/path/to/the/binary/file

问题21:解释Grep命令和正则表达式?

Grep 命令是用于过滤结果或输出的表达式。例如,要列出一个目录并仅搜索带有单词“cron”的文件,请运行以下命令:

ls | grep cron

问题22:umask和ulimit有什么区别?

Umask代表“用户文件创建掩码”,它确定掩码的设置,该掩码控制在创建文件和目录时为文件和目录设置哪些文件权限。虽然 ulimit 是一个 linux 内置命令,它提供对 shell 可用资源和/或由它启动的进程的控制。

您可以通过编辑 /etc/security/limits.conf 将用户限制在特定范围内,同时可以在 /etc/sysctl.conf 中更新系统范围的设置

问题23:解释Linux中top命令的输出?

top 命令是一个监控实用程序,可让用户深入了解系统指标,例如正常运行时间、平均负载、%CPU 和 % 内存利用率。

问题24:Linux 中的进程状态有哪些?

进程状态,顾名思义,是指Linux进程所处的当前状态。进程状态有4种,分别是Running、Waiting、stopped和Zombie。

问题25:如何在 Linux 中备份或归档文件(tar 命令)?

要备份目录,只需运行下面的 tar 命令

tar -cvf tarball_name.tar /path/to/directory

例如,要在 /data/reports/ 路径中创建文件 sales.txt 的 tar.gz 格式的存档,请执行:

tar -cvf sales.tar.gz  /data/reports/sales.txt

您还可以归档整个目录,如下所示:

tar -cvf repors.tar.gz  /data/reports/

问题26:如何停止Linux中正在运行的进程?

查看进程

显示现行终端机下的所有程序,包括其他用户的程序。

杀死进程

要停止正在运行的进程,请使用 kill 命令,后跟进程的 PID。例如,要停止 PID 为 3836 的进程,请运行命令

kill 1932

问题27:如何在linux中搜索文件?:

要在 Linux 中搜索文件,请使用locate or find命令,find和locate搜索文件有如下的区别:

问题28:如何检查某项服务是否在运行?

要检查服务是否正在运行,请使用以下语法:

systemctl status service_name

例如,要检查 Postfix 是否正在运行,请运行以下命令:

systemctl status postfix

问题29:如何启动服务、停止服务、重启时启动服务?

要在 systemd 系统中启动服务,请运行以下命令:

systemctl start <service_name>

要停止服务,请运行:

systemctl stop <service_name>

要在重新启动运行时启动服务,请使用以下语法:

systemctl enable <service_name>

问题30:如何远程登录另一台linux电脑?

您可以使用 SSH 协议或使用 VNC 服务登录到远程 Linux 计算机。

问题31:如何查看磁盘使用情况?

使用该df命令检查硬盘驱动器上使用的空间和剩余空间/可用空间。


此外,使用该du命令检查特定文件和目录的使用情况。

问题32:如何设置Linux文件/目录权限?

要设置文件权限,请使用chmod命令后跟八进制值或符号值,然后是文件名或目录名。

例如分配一个文件权限值为 664 运行

chmod 664 filename

要分配目录权限,请使用-R递归分配权限的选项。

chmod -R 664 directory_name

问题33:如何设置文件/目录的所有权?:

要设置文件所有者,请使用该chown命令。例

chown user:user filename

对于目录,使用-R递归分配权限的选项。例如

chown -R user:user directory_name

问题34:如何在Linux中创建用户和组?

要创建用户,请运行命令adduser user_name

问题35:如何在Linux中查找内核/操作系统版本?

运行命令uname -a

问题36:如何查找接口IP地址?

ifconfig命令:在终端输入ifconfig命令,它会显示当前系统中所有网络接口的配置信息,包括IP地址、子网掩码和网关等。

ip命令:在终端输入ip addr命令,它会列出当前系统中所有网络接口的详细信息,包括IP地址、子网掩码和网关等。

nmcli命令:在终端输入nmcli device show命令,它会显示网络管理器中所有网络设备的信息,包括IP地址、子网掩码和网关等。

问题37:基于名称的虚拟主机和基于IP的虚拟主机有什么区别?

虚拟主机用于在单个 apache 实例上托管多个域。您可以为服务器拥有的每个 IP 设置一个虚拟主机,或者相同的 IP 但不同的端口,或者相同的 IP、相同的端口但不同的主机名。后者称为“基于名称的虚拟主机”。

在基于 IP 的虚拟主机上,我们可以在同一台服务器机器上运行多个网站,但每个网站都有自己的 IP 地址,而在基于名称的虚拟主机中,我们在同一个 IP 地址上托管多个网站。但要成功,您必须在 DNS 数据库中为您的 IP 地址放置多个 DNS 记录。

问题38:网络绑定有什么优势?

Network Bonding是一个 Linux 内核功能,允许将多个网络接口聚合到单个虚拟链接中。这是在生产系统中实现冗余链路、容错或负载平衡网络的好方法。如果其中一个物理 NIC 关闭或拔出,它会自动将流量转移到另一个 NIC 卡。类似地,绑定将增加接口吞吐量以处理在主动-主动模式下配置的流量。

参考文章

(1) 面试必备,Linux面试题和答案!_linux面试题及答案-CSDN博客

(2) gcc命令语句大全-CSDN博客

(3) 48 个 Linux 面试问题和答案_linux面试题_太极淘的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_41921826/article/details/133518698