目录[隐藏][展示]
- 1. 究竟什么是壳?
- 2. 究竟什么是 Shell 脚本?
- 3. 解释 shell 脚本的好处。
- 4. 描述 GUI 编程。
- 5.在shell编程中,superblock到底是什么?
- 6. 列出多种可访问的 shell。
- 7.写出Bourne Shell和C Shell的区别。
- 8. Shell 变量究竟是什么?
- 9、Shell Script中有哪些变量?
- 10. 哪个命令用来运行一个shell文件?
- 11. 关于 Shell 脚本中的 Super Block,您能告诉我什么?
- 12. 元字符到底是什么?
- 13、软链接和硬链接有什么区别?
- 14. Shell Scripting中的Shebang行是什么意思?
- 15.一个Linux进程要经过哪几个步骤?
- 16. 描述 Crontab。
- 17、控制指令到底是什么?
- 18.$*和$@有什么区别?
- 19. 请解释您如何在 shell 脚本中比较字符串。
- 20. 如何创建、读取和删除文件?
- 21、shell脚本中是否可以区分硬链接和软链接?
- 22. 您将如何解决 shell 程序中的错误?
- 23. 一个文件系统中有多少个块?
- 24. 为什么 bash 是弱类型语言?
- 25. shell 脚本中的变量有多长?
- 26. 将替换命令命名为 echo。
- 27. 定义 IFS
- 28. 是否可以在一个 Shell 中运行多个脚本?
- 29、vi编辑器有哪些模式?
- 30. 和$有什么区别! 和$$?
- 31. $# 是什么意思?
- 32. 命名用于创建备份的命令。
- 33. 什么时候不适合使用 Shell Scripting?
- 34. 你打算如何从 Linux 连接到数据库服务器?
- 35、两个crontab命令文件是什么?
- 36. 文件或数据的三种不同的 UNIX 安全保护是什么?
- 37. 用一个例子简单解释一下sed命令。
- 38.在shell脚本中,open client driver自带的工具有什么作用?
- 49. 命名应该用于确定系统持续时间的命令。
- 40. 编写一个脚本来添加许多值。
- 41. 创建函数示例。
- 结论
shell 脚本是旨在由 Unix shell 运行的计算机程序或命令行解释器。 构建 shell 脚本最好的方面是指令和语法与直接在命令行输入的相同。
Linux 是一种流行的开源操作系统,以其高安全性和命令行界面而闻名。 对于有抱负的 DevOps 工程师来说,了解 shell 脚本或 bash 脚本至关重要。
如果您熟悉 shell 脚本并正在准备工作面试,这篇 shell 脚本面试问答文章将为您提供最好的 shell 脚本面试问题,让您的准备工作更轻松。
1. 究竟什么是壳?
shell 充当用户和内核之间的桥梁。 即使只能有一个内核,一个系统也可以同时运行多个 shell。
因此,只要用户在键盘上键入命令,shell 就会与内核对话以执行它,然后将结果显示给用户。
2. 究竟什么是 Shell 脚本?
Shell Scripting 是在 Unix/Linux shell 中运行的免费开源计算机软件。 Shell 脚本软件允许您编写一系列 shell 将执行的命令。
它可以将冗长且重复的命令序列集成到一个简单的脚本中,可以随时保存和执行,从而减少编程工作量。
3. 解释 shell 脚本的好处。
- 几乎所有当前的操作系统,包括 UNIX、Linux、BSD 和 Mac OS X,都可以运行 shell 脚本,因为它们是用解释语言创建的。
- 一个交互式调试工具,以及快速启动。
- 它通过帮助自动化管理职责来节省时间。
- 程序员不需要调整他们的语法,因为命令和语法与直接放在命令行中的相同。
- Shell 脚本易于使用和编写。
- 使用该工具,可以根据各自的平台制作软件应用程序。
- 它们可以用于大规模执行,而不是单个指令。
- 您可以使用它来创建您自己的具有必要功能的自定义操作系统。
4. 描述 GUI 编程。
图形的 用户界面 操作计算机和应用程序所需的 (GUI) 编程称为 GUI 脚本。 它适用于多种操作系统,用于控制各种程序。
5.在shell编程中,superblock到底是什么?
称为超级块的软件存储某些文件系统的记录。 大小、填充块和空块的数量、使用数据、块组大小以及 inode 表的位置和大小都是可以在块中找到的属性。
6. 列出多种可访问的 shell。
- Bourne shell:使用 Bourne 类型的 shell 时,默认提示符是 $ 符号。
- C Shell:当使用 C 类型的 shell 时,默认提示符是字符 %。
- Korn shell:Korn 是一个基于 Unix 的 Shell 脚本应用程序,最初基于 Bash Shell 脚本。 这个 shell 非常复杂,并且使用了高级 编程语言.
- TCSH:没有一种完整的 TCSH 形式。 它就是这样。 TCSH 是 Berkeley Unix C shell 的更复杂的版本。 它现在支持 C 语法。
7.写出Bourne Shell和C Shell的区别。
Bourne Shell:其紧凑性和速度使其区别于其他外壳。 但是,缺少交互元素,例如记住先前请求的能力。 此外,算术和 逻辑表达式 Bourne shell 不支持。
C Shell:它是对 UNIX 的改进,包括别名和命令历史记录等交互功能。 除了内置的算术和表达式语法外,它还包含简单的编程功能。
8. Shell 变量究竟是什么?
Shell 变量是每个 Shell 程序或脚本的基础。 变量使 Shell 能够在 Shell 应用程序中存储和更改数据。 字符串变量通常用于保存 shell 变量。
9、Shell Script中有哪些变量?
操作系统 (Linux) 创建和定义系统定义的变量。 这些变量通常用大写字母定义,可以用“set”命令检查。
用户定义变量由系统用户生成或指定,可以通过执行命令“echo”来检查它们的值。
10. 哪个命令用来运行一个shell文件?
11. 关于 Shell 脚本中的 Super Block,您能告诉我什么?
超级块只是存储有关某些文件系统的信息的软件。
超级块包含块大小、空块和满块的数量及其相应的计数、inode 表的大小和位置、磁盘块映射、使用统计信息和块组大小等信息。
12. 元字符到底是什么?
元字符是合并到外壳程序或数据字段中的唯一字符。 它提供有关其他字符的信息。 例如,要列出以字符“s”开头的所有文件,请使用“ls s*”命令。
13、软链接和硬链接有什么区别?
软链接链接到文件名,可以存在于各种文件系统上; 而硬链接链接到文件的 inode,并且必须与文件位于同一文件系统上。
删除原始文件会使软链接处于非活动状态(断开链接),但对硬连接没有影响,硬链接仍将访问文件的副本。
14. Shell Scripting中的Shebang行是什么意思?
Shebang 行通常位于脚本的开头,例如#!/bin/sh。 此行指定引擎的位置。 该引擎通常是运行脚本的引擎。
15.一个Linux进程要经过哪几个步骤?
通常,Linux 进程会经历以下四个阶段:
- 等待:Linux 进程正在等待资源。
- 运行:现在,Linux 进程正在运行。
- 已停止:成功执行后,Linux 进程终止。
- Zombiee 进程已停止,但进程表仍显示它处于活动状态。
16. 描述 Crontab。
crontab 代表 cron 表,因为作业调度程序“cron”用于执行作业。 它是定期执行的命令的集合,命令的名称也控制列表。
计划和用于更改计划的工具都称为 Crontab。
17、控制指令到底是什么?
控制指令指示将如何执行脚本的各种指令。 它们通常在 Shell 应用程序中用于评估 控制流.
如果没有这些指令,shell 脚本的执行将按顺序进行。 控制指令会影响 shell 程序中的执行方式。
18.$*和$@有什么区别?
$@ 将每个带引号的参数视为单独的参数,而 $* 将位置参数的完整集合视为单个字符串。
19. 请解释您如何在 shell 脚本中比较字符串。
'test' 命令用于比较文本字符串。 此命令通过比较每个字符串的字符来比较文本字符串。
20. 如何创建、读取和删除文件?
21、shell脚本中是否可以区分硬链接和软链接?
Shell 脚本是一种强大的解决方案,与 Windows 一样,它使用链接来构建快捷方式。 软链接没有固定的位置,可以在同一个文件系统的任何地方找到。
它们通常与文件名相关联。 另一方面,硬链接保持在同一个文件系统上。 在大多数情况下,硬链接与节点相关联并且具有一定的固定位置。
22. 您将如何解决 shell 程序中的错误?
解决脚本错误的一些常见方法是:
- Set-x 用于允许调试。
- 将调试语句插入 shell 脚本以显示有助于发现问题的信息。
23. 一个文件系统中有多少个块?
- 超级块:该块提供文件系统状况的详细信息,包括块大小、块组大小、使用数据、空块和填充块的数量、inode 表的大小和位置等。
- Bootblock:当用户启动主机系统时运行的引导加载程序软件存储在该块中。
- 数据块:这个数据块包含文件系统的文件内容。
- inode 表:UNIX 将所有组件视为文件,inode 表是所有文件相关数据的存储库。
24. 为什么 bash 是弱类型语言?
由于声明变量时缺少数据类型声明要求,Bash 是一种弱类型语言。 变量的类型由其当前值决定,在 Bash 中被视为字符串。
declare 命令可用于定义 Bash 变量。
但是,定义数据类型的可能性是有限的,并不涵盖所有数据类型。 例如,声明命令不能与浮点数据类型一起使用。
25. shell 脚本中的变量有多长?
shell 脚本中的变量的生命周期是直到执行结束。
26. 将替换命令命名为 echo。
tput 命令是 echo 的替代命令。 我们可以使用此命令来控制输出的显示方式。 此外,无论屏幕大小如何,shell 脚本都可以执行诸如下划线和居中文本之类的操作。
27. 定义 IFS
IFS 代表内部场分离器。 它是一个系统变量,默认值为空格,制表符,后跟一个新行。 IFS 指示一个字段或单词在一行中的结束位置和另一个开始的位置。
28. 是否可以在一个 Shell 中运行多个脚本?
是的,许多脚本可以在 Shell 中执行。 您可以通过运行多个脚本来调用另一个脚本。 为此,您必须指定要调用的脚本的名称。
29、vi编辑器有哪些模式?
- 命令模式:这是您开始的模式。
- 编辑模式:此选项允许您执行后续编辑。
- 在这种模式下,您与 vi 交互并给它处理指令。
30. 和$有什么区别! 和$$?
美元! 显示最近进入后台的进程的进程 ID。
$$ 返回当前正在执行的进程的进程 ID。
31. $# 是什么意思?
$# 通常保存参数的数量,尽管这可能因函数而异。 简单地说,它用于记录提供给 shell 脚本的命令行参数的数量。
32. 命名用于创建备份的命令。
tar 命令用于创建备份。 Tar 是磁带存档的缩写,它用于构建使用 tar、gzip 和 bzip 的备份。 此命令可以在磁带上保存和恢复文件。
通常,文件和目录被压缩成 tarball,即归档文件。 出于这个原因,它是最常用的指令之一。 此外,tarball 可以简单地从一台服务器转移到另一台服务器。
33. 什么时候不适合使用 Shell Scripting?
如果工作非常复杂,例如构建一个完整的工资单处理系统,我们不应该使用 Shell Scripting。
如果工作需要高度的生产力,我们不应该使用 Shell Scripting。
如果项目需要多个软件解决方案,我们不应该使用 Shell Scripting。
34. 你打算如何从 Linux 连接到数据库服务器?
我们可以使用 open 客户端驱动程序中包含的 isql 实用程序,如下所示:
35、两个crontab命令文件是什么?
cron.allow 确定必须允许哪些用户使用 crontab 命令。
cron.deny,确定是否应禁止用户使用 crontab 命令。
36. 文件或数据的三种不同的 UNIX 安全保护是什么?
- 它通过授予文件读取、写入和执行权限来提供文件级安全性。
- 它为用户提供唯一的用户 ID 和密码进行身份验证,以便不熟悉或未经授权的个人无法访问它。
- 它通过以下方式提供安全性 加密文件. 这种方法使您能够以不可读的格式对文件进行编码。 即使打开了文件,在解密之前也无法读取其内容。
37. 用一个例子简单解释一下sed命令。
sed 是流编辑器的缩写。 它用于在不使用编辑器的情况下编辑文件。 它用于更改给定的流,例如文件或管道输入。
38.在shell脚本中,open client driver自带的工具有什么作用?
该系统仅通过工具连接到数据库服务器。 用户需要完成一些重要且必要的编程活动。
对于脚本,需要更多的数据和信息,将它们保存在一个地方并不总是可行的。 使用这种方法的用户必须保证无错误的输出。
49. 命名应该用于确定系统持续时间的命令。
使用 Uptime 命令,您可以确定系统运行了多长时间。 还可以提供具有活动会话的用户数和 1、5 和 15 分钟内的典型系统负载。
您还可以根据您所做的选择过滤一次显示的所有信息。
40. 编写一个脚本来添加许多值。
41. 创建函数示例。
结论
您可以理解,shell 主要是操作系统和用户之间的接口,它借助这些 shell 脚本面试问题将用户输入的指令转换为操作系统或内核。
这个概念在面试准备过程中经常是至关重要的 开发运营工程师 和自动化测试人员。 Shell 脚本允许创建不同复杂程度的脚本。 Shell 脚本也可用于自动化各种重复过程。
我们 Hashdork的采访系列 为面试准备提供帮助。
发表评论