三千年读史无外乎功名利禄,九万里悟道终归是诗酒田园。

Linux Shell脚本编写10个有用的面试问题和解答

在本文中,我们将添加到shell脚本的帖子中,从面试的角度来看待与Linux Shell相关的问题。

1.如何在成功执行之前中止shell脚本?
答: 我们需要使用“退出”命令来实现上述情况。当强制输出0(零)以外的任何值时,’exit’命令将会抛出错误并中止。Unix环境shell脚本下的值0(零)表示成功执行。因此,在脚本终止之前放置’退出-1’,不加引号会中止脚本。

例如,创建一个如下的shell脚本作为’ anything.sh ‘。

#!/bin/bash
echo "Hello"
exit -1
echo "bye"

保存该文件并执行它。

#sh anything.sh
Hello
exit.sh: 3: exit: Illegal number: -1

从上面的脚本中可以明显看出,在执行exit -1命令之前执行得很顺利。

2.如何在Linux中使用命令从文件中删除标题?
答: 当我们需要删除文件的某些行时,’sed’命令在这里进行救援。

在这里它是从文件(或文件的第一行)中删除标题的确切命令。

sed '1 d' file.txt

上述命令的唯一问题是,它在标准输出上输出文件而没有第一行。为了将输出保存到文件中,我们需要使用重定向操作符,它将输出重定向到一个文件。

sed '1 d' file.txt; new_file.txt

那么为sed命令内置的开关’ -i ‘ ,可以在没有重定向操作符的情况下执行此操作。

sed -i '1 d' file.txt
3.你将如何检查文本文件中一行的长度?
答案: 再次使用’sed’命令来查找或检查文本文件中一行的长度。
sed -n'n' file.txt

其中’ n ‘表示行号,’ p ‘表示模式空间(标准输出)。该命令通常仅与-n命令行选项结合使用。那么,如何计算长度呢?明显!我们需要用’ wc ‘命令来管道输出。

sed –n 'n p' file.txt | wc –c

要在文本文件“ tecmint.txt ”中获得行号“5”的长度,我们需要运行。

sed -n '5 p' linux-code.txt | wc -c
4.是否可以在Linux系统上查看文本文件中的所有不可打印字符?你将如何实现这一目标?
答: 是的!在Linux中查看所有不可打印的字符是非常有可能的。为了实现上述情景,我们需要借助编辑器’vi’的帮助。

如何在’ vi ‘编辑器中显示不可打印的字符?

  1. 打开vi编辑器。
  2. 按[esc],然后按’:’转到vi编辑器的命令模式。
  3. 最后一步是从’vi’编辑器的命令界面输入execute [set list]命令。

注意:这样我们可以看到文本文件中的所有非打印字符,包括ctrl + m^ M)。

5.你是xyz公司的一组员工的团队领导。该公司要求您创建一个目录’dir_xyz’,这样该组的任何成员都可以创建一个文件或访问其下的一个文件,但除了创建文件之外,没有人可以删除该文件。你会怎么做?
答案: 一个有趣的场景工作。那么在上述情况下,我们需要实施下面的步骤,就像蛋糕走路一样简单。
#mkdir dir_xyz
#chmod g+wx dir_xyz
#chmod +t dir_xyz

第一行命令创建一个目录(dir_xyz)。上面的第二行命令允许组(g)具有’ 写入 ‘和’ 执行 ‘的权限,并且上述命令的最后一行 – 权限末尾的’ + t ‘被称为’ 粘性位 ‘。它取代了’ x ‘,并指出在该目录中,文件只能由其所有者,目录所有者或根超级用户删除。

6.你能告诉我一个Linux流程的各个阶段吗?
答: Linux进程通常在其处理生命周期中经历四个主要阶段。

以下是Linux进程的4个阶段。

  1. 等待:Linux进程正在等待资源。
  2. 正在运行:Linux进程正在执行。
  3. 停止:成功执行或接收到kill信号后,Linux进程停止。
  4. 僵尸:如果一个进程在进程表中停止但仍然活跃,则称它为“僵尸”。
7.在Linux中使用cut命令有什么用处?
答案: ‘cut’是一个非常有用的Linux命令,当我们需要剪切文件的某个特定部分并将其打印在标准输出中时,该命令被证明是有用的,以便在文件和文件本身的字段太重时进行更好的操作。

例如,提取文本文件“ txt_linux-code”的前10列。

cut -c1 -10 txt_linux-code

提取同一文本文件的第2,第5和第7列。

cut -d; -f2 -f5 -f7 txt_linux-code
8.命令’cmp’和’diff’有什么区别?
答案: ‘cmp’和’diff’这个命令意味着获得同样的东西,但思维方式不同。

‘ diff ‘命令报告应该进行的更改,以便两个文件看起来相同。’ cmp ‘命令逐字节比较两个文件并报告第一个不匹配。

9.是否可以用’echo’命令替换’ls’命令?
答: 是的!’ls’命令可以被’echo’命令替代。命令’ls’列出文件的内容。从替换上述命令的角度来看,我们可以使用’echo *’,显然没有引号。两个命令的输出都是相同的。
10.你可能听说过inode。你可以简要描述一下inode吗?
答: ‘inode’是一个’数据结构’,用于Linux上的文件识别。Unix系统上的每个文件都有一个单独的’inode’和一个’Unique’ inode数字。

赞(6)
转载请注明出处:RokasYang's Blog » Linux Shell脚本编写10个有用的面试问题和解答