我们为什么要使用 Linux ?附 30 道 Linux 面试题
链接:https://codersera.com/blog/linux-interview-questions/
如果你是一名开发人员、系统管理员,或是仅仅对 Linux 感兴趣,那么这个列表是为你准备的。它包含了类 Unix 系统管理或编程职位面试中涉及 Linux 相关的所有常见问题。
Linux 是一种类似于 Unix 的操作系统,已有数十年的历史,最初是基于 Unix 内核。Linux 是一种开源的操作系统,也就是说,它是免费提供的,任何有知识的人都可以对其进行修改。而且,它并不仅仅适用于你的台式计算机——世界各地的服务器就跑着 Linux。
Linux 为我们提供了所有的动力,从我们的安卓智能手机到维持日常网站运行的网络服务器。Linux 为超级计算机、世界顶级科技公司的企业数据中心以及介于两者之间的一切都提供了动力。虽然 Linux 的知名度可能不如业界重量级的 Windows 那么高,但是 Linux 的历史却超过了 27 年。
在 Linux 的世界里,你必须了解一系列的命令才能和你的系统进行交互。我们一直在讨论那些最关键的命令和它们的工作方式。
然而,Linux 曾经是软件精英们的笑柄。但是今天,Linux 在操作系统领域的创新中处于最前沿。像谷歌、Facebook 这样的硅谷巨头都把 Linux 应用到了自己的集群和数据中心。这是怎么回事?
Linux 管理和其他操作系统一样都是一个很大的主题。它的优势在于开源并可以自由地使用,但是像所有的计算机系统一样,要学会如何管理 Linux 是很困难的。
Linux 一般包括以下五个基本元素或组件:
内核:Linux 的核心或者说主要部分,它通常承担着操作系统的一切重要活动,比如进程管理、设备管理等等。
系统库:是特殊的函数或程序,藉由这些函数或程序,应用程序或系统实用程序便可访问内核的函数,而无需任何代码。这仅仅是为了实现操作系统的功能。
系统实用程序:这些是实用程序,负责执行专门和个别级别的任务。它们被认为更负责任,并允许用户管理计算机。
硬件:它是物理硬件,包括鼠标、键盘、显示器、CPU 等。
Shell:这是一个我们可以在里面运行命令、Shell 脚本和程序的环境。它是用户和内核之间的一个接口,向用户隐藏了内核的所有复杂功能。它被用来执行命令。
LILO 是指 Linux Loader,它用于 Linux 操作系统的启动加载器。大多数 Linux 操作系统都是利用 LILO 来启动操作系统进入主内存并开始运行。
LVM 是 Large Volume Management 的缩写,它是一种存储管理设备。用户可以创建、调整大小和删除 LVM 分区。它增加了抽象性、灵活性和控制力。LVM 用于将现有的存储设备聚集到组中,并分配逻辑单元。
Linux 网络 bond 的不同模式
模式 -0(balance-rr):它是默认模式,基于 Round-Robin(循环)策略。它提供了容错和负载平衡功能。它使用轮流的方式来传输数据包。
模式 -1(active-backup):它基于 Active Backup(主动备份)策略,只有一个从属设备将在 band 内行动,当其他从属设备在 band 内发生故障时,另一个从属设备将采取行动。它还提供容错功能。
模式 -2(balance-xor):它在源 Mac 地址和目标 Mac 地址之间设置一个 xor 模式,以提供容错功能。
模式 3(broadcast):它基于 broadcast(广播)策略,在从属接口中传输一切。它也提供了容错功能,并且只能用于特定目的。
模式 4(802.3ad):这是一种动态聚合模式,它创建了具有相同速度的聚合组。它使用发送散列法来选择出站流量的从站。
模式 5(balance-TLB):出站流量是根据从站的当前负载,而入站流量则由从站接收。这被称为自适应传输负载平衡模式。
模式 -6(balance-alb):它是一种自适应负载平衡模式。它不需要任何交换机的支持。
细节如下:
rm 命令:用于删除命令行上指定的目录或文件。删除任何文件或目录时都需要小心。
语法:
rm 文件名——
rmdir 命令:用于删除命令行中指定的每个目录。
语法:
rmdir [-p] [-v | –verbose] [–ignore-fail-on-non-empty] 目录
它是 Linux 中使用的一种重定向形式,用于组合两个以上的命令,一个命令的输出可作为下一个命令的输入。
语法:
命令 1|命令 2|命令 3|……|命令 N
它是一个执行已经完成但即使信息也存在于进程表中的进程。因为父进程需要读取子进程的状态,所以发生在子进程中。一旦使用 wait 系统调用完成,僵尸进程就会从进程表中移除。这就是所谓的僵尸进程。
无状态 Linux 服务器的特点:
存储每个系统的原型。
储存所拍摄的快照。
存储主目录。
使用 LDAP,它包含关于哪个快照应该在哪个系统上运行的信息。
使用此命令:timeout 10s ./script.sh
# 每 30 分钟重新启动一次
while true; do timeout 30m ./script.sh; done
使用此命令执行:
while inotifywait -e close_write document.tex
do
make
done
使用这些命令:
tar of file.tgz
tar xf file.tgz filename
使用这个命令:
readlink -f file.txt
ulimit -Sv 1000 # 1000 KBs = 1 MB
ulimit -Sv unlimited # Remove limit
用户可以使用 df 命令来排除磁盘空间的问题。这里 df 代表显示可用磁盘空间。
df 命令示例:
df -h
Linux 中的 du 命令用于检索更详细的信息,即哪些文件使用了一个目录中的磁盘空间。
du 命令示例:
$ du -sh /var/log/*
1.8M /var/log/anaconda
384K /var/log/audit
4.0K /var/log/boot.log
0 /var/log/chrony
4.0K /var/log/cron
4.0K /var/log/maillog
64K /var/log/messages
env 命令允许用户设置或打印环境变量。在故障排除过程中,用户可以发现它对检查错误的环境变量是否阻止你的应用程序启动很有用。
env 命令示例:
$ env
PYTHON_PIP_VERSION=9.0.1
HOME=/root
DB_NAME=test
PATH=/usr/local/bin:/usr/local/sbin
LANG=C.UTF-8
PYTHON_VERSION=3.4.6
PWD=/
DB_URI=mongodb://database:27017/test
ps 命令显示进程状态。使用该 ps 命令可以确定一个正在运行的应用程序或确认预期的进程。
ps 命令示例:
ps -ef
ps -ef | grep tomcat
grep 搜索文件模式。如果要在另一个命令的输出中寻找特定的模式,grep 会突出显示相关的行。使用这个 grep 命令搜索日志文件、特定进程等。
grep 命令示例:
$ cat tomcat.log | grep org. apache.Catalina.startup.Catalina.start
12-Jan-2018 17:08:35.542 INFO [main] org.apache.Catalina.startup.Catalina.start Server startup in 681 ms
在 Linux 中,cat 命令连接并打印文件。用户可能会发出 cat 来检查依赖项文件的内容,或者确认您已经在本地构建的应用程序的版本。
cat 命令示例:
cat requirements.txt
flask
flask_pymongo
tail 命令显示文件的最后部分。一般来说,用户不需要每条日志来排除故障。相反,你想检查你的日志对你的应用程序的最近一次请求的描述。
tail 命令示例:
log/httpd/access_log tail -n 100 /var/
Linux 是一个开源的操作系统,如今它在技术市场上正在迅速发展。我们有几个理由说明为什么 Linux 比其他操作系统更安全。
帐户的好处:Linux 只允许少数用户访问系统。因此,病毒无法攻击整个系统,它可能只对系统中的几个文件造成影响。
强大的社区:Linux 用户在打开文件之前首先完成了文件。因此,他们可以将自己的系统从漏洞中拯救出来。
Iptables:Iptables 被 Linux 使用,因为它可以检查系统的安全圈。
不同的工作环境:Linux 系统有不同的工作环境,如 Linux Mint、Debian、Arch 等,这些工作环境可以防止病毒。
Linux 中的记录:它保留了日志历史,因为以后可以很容易地查看系统文件的细节。
用户少:Linux 的用户比其他系统少,因此安全性更高。
在 Linux 中,使用 Ctrl + Alt + Del 键重新启动计算机,在重新启动系统之前不显示任何确认消息。
内部命令:由 shell 直接运行的命令被称为内部命令,没有单独的进程来运行这些命令。
外部命令:由内核运行的命令被称为外部命令,每一个命令都有它自己独特的进程 ID。
Bash 和 DOS 的区别如下:
以下是 Linux 操作系统的特点:
便携:软件可以在不同类型的硬件上以同样的方式工作。它可以很容易地在 U 盘和存储卡中携带。
开源:源代码可以免费获得,而且是基于社区的开发项目。
多用户:多个用户可以同时使用 RAM、应用程序和运行程序。
多任务处理:多个程序或应用程序可以同时运行。
Shell:它有一个特殊的解释器程序,你可以执行系统的程序和命令。
安全性:它提供认证、授权和加密,为数据提供安全保障。
我们理由有很多,在此列举几个重要的理由,如下:
高稳定性:它非常稳定,不会导致崩溃,它的运行速度和它第一次安装时一样快。
安全性:它是一个可靠的服务器,为用户提供高安全性。在你的系统上使用 Linux,很容易避免病毒和恶意软件。在用户以根用户身份登录之前,攻击者无法改变系统中的任何更改。
易于操作:Linux 很容易操作,我们可以很容易地把它安装到系统上,因为所有的 Linux 变体都有自己的软件库。你只需点击几下就可以定期更新系统,或者你可以设置自动更新。
硬件兼容性:Linux 可以在任何硬件上使用,它没有任何硬件限制。它能有效地使用所有的系统资源。
开源:它的源代码是可用的,因为它属于自由和开放源码软件(FOSS)。
我们有这么多的 Linux 发行版,在这些发行版中,我们讨论几个重要的发行版。
Linux Mint:它很稳定,很强大。Linux Mint 使用 Mate 桌面和 Cinnamon。
Debian:它代表着健壮性、稳定性和完善的发布周期。它是用户友好的。Debian 8 将被 Debian 9 取代。
Ubuntu:它有桌面版和服务器版,是基于 Debian 的。
openSUSE:对于新用户和现有用户都是不错的选择。
Manjaro: 它为新用户和老用户提供了愉快的体验。
Linux 是一种可以在任何计算机上有效运行的操作系统。Linux 不仅是免费的,而且是开源的,这意味着它对如何使用或修改代码没有限制。
我们都知道 Linux 是帮助人们更好地使用和理解计算机的软件。本文讨论如何对一个精通 Linux 的人进行面试。Linux 以其稳定性和速度而闻名。一个 Linux 面试问题可能是一个好主意,可以帮助你决定它是否适合你的需要。
这些 Linux 面试问题和答案的文章将为你提供一些关于 Linux 职位面试时应该期待什么的见解。你将了解更多关于软件、操作系统的历史,以及如果你决定走这条路,你可能会获得什么样的认证!
最近很多小伙伴找我要一些程序员必备资料,于是我翻出了压箱底的宝藏,免费分享给大家!
扫描海报二维码免费获取。