精华内容
下载资源
问答
  • 今天就给大家分享一些常见Shell脚本面试题。1、Shell脚本是什么、它是必需的吗?答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添...

    很多企业在招聘Linux云计算工程师的时候都会提问 Shell 脚本的问题,一方面是因为它是云计算工程师必备的理论知识基础,另一方面掌握Shell脚本有助于你在工作环境中自动完成很多任务。今天就给大家分享一些常见的Shell脚本面试题。

    1、Shell脚本是什么、它是必需的吗?

    答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。

    2、在Shell脚本中可以使用哪些类型的变量?

    答:在Shell脚本,我们可以使用两种类型的变量:1)系统定义变量。系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过“set”命令查看。2)用户定义变量。用户变量由系统用户来生成和定义,变量的值可以通过命令“echo $”查看。

    3、Shell脚本中“$?”标记的用途是什么?

    答:在写一个Shell脚本时,如果你想要检查前一命令是否执行成功,在if条件中使用“$?”可以来检查前一命令的结束状态。如果结束状态是0,说明前一个命令执行成功,如果结束状态不是0,说明命令执行失败。

    4、Shell脚本中break命令和continue命令有什么不同?

    答:break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环。continue命令不同于break命令,它只跳出当前循环的迭代,而不是整个循环。continue命令很多时候是很有用的,例如错误发生,但我们依然希望继续执行大循环的时候。

    5、如何执行算术运算?

    答:有两种方法来执行算术运算:1)使用expr命令:# expr 5 + 2;2)用一个美元符号和方括号($[ 表达式 ])例如:test=$[16 + 4] ; test=$[16 + 4]

    6、Shell脚本中各个循环的用法是什么?

    1)for循环的基础语法:

    for 变量 in 循环列表

    do

    命令1

    命令2

    ….

    最后命令

    done

    2)while循环只要条件成立就重复它的命令块。不同于for循环,while循环会不断迭代,直到它的条件不为真。基础语法:

    while [ 条件 ]

    do

    命令…

    done

    3)do-while语句的基本格式 ?

    答:do-while语句类似于while语句,但检查条件语句之前先执行命令(LCTT 译注:意即至少执行一次)。do-while语句的语法:

    do

    {

    命令

    } while (条件)

    展开全文
  • 今天就给大家分享一些常见Shell脚本面试题。 1、Shell脚本是什么、它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一...

    很多企业在招聘Linux云计算工程师的时候都会提问 Shell 脚本的问题,一方面是因为它是云计算工程师必备的理论知识基础,另一方面掌握Shell脚本有助于你在工作环境中自动完成很多任务。今天就给大家分享一些常见的Shell脚本面试题。

    1、Shell脚本是什么、它是必需的吗?

    答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。

    2、在Shell脚本中可以使用哪些类型的变量?

    答:在Shell脚本,我们可以使用两种类型的变量:1)系统定义变量。系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过“set”命令查看。2)用户定义变量。用户变量由系统用户来生成和定义,变量的值可以通过命令“echo $<变量名>”查看。

    3、Shell脚本中“$?”标记的用途是什么?

    答:在写一个Shell脚本时,如果你想要检查前一命令是否执行成功,在if条件中使用“$?”可以来检查前一命令的结束状态。如果结束状态是0,说明前一个命令执行成功,如果结束状态不是0,说明命令执行失败。

    4、Shell脚本中break命令和continue命令有什么不同?

    答:break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环。continue命令不同于break命令,它只跳出当前循环的迭代,而不是整个循环。continue命令很多时候是很有用的,例如错误发生,但我们依然希望继续执行大循环的时候。

    5、如何执行算术运算?

    答:有两种方法来执行算术运算:1)使用expr命令:# expr 5 + 2;2)用一个美元符号和方括号($[ 表达式 ])例如:test=$[16 + 4] ; test=$[16 + 4]

    6、Shell脚本中各个循环的用法是什么?

    1)for循环的基础语法:

    for 变量 in 循环列表

    do

    命令1

    命令2

    ….

    最后命令

    done

    2)while循环只要条件成立就重复它的命令块。不同于for循环,while循环会不断迭代,直到它的条件不为真。基础语法:

    while [ 条件 ]

    do

    命令…

    done

    3)do-while语句的基本格式 ?

    答:do-while语句类似于while语句,但检查条件语句之前先执行命令(LCTT 译注:意即至少执行一次)。do-while语句的语法:

    do

    {

    命令

    } while (条件)

     

    转载于:https://www.cnblogs.com/qianfengcs/p/11046630.html

    展开全文
  • 点击上方蓝字设为星标每周一、三、五上午 8:30 准时推送下面开始今天的学习~作为后端...Shell 的题目,本文将列举一些常用的面试题,希望对你们有所帮助。什么是 ShellShell 是用户和 Linux(或许说 Linux 内核)之间...

    点击上方蓝字设为星标1bd765340eaf8a3ce155a3f8506187ed.png

    每周一、三、五上午 8:30 准时推送

    下面开始今天的学习~

    41776141d3d485768ce615e0de93ba47.png

    cbb16985cd76c9b897a956eee2c8b5b6.png

    作为后端开发和运维岗位我们离不开一些脚本的帮助,虽然现在 Python 的兴起让越来越多的相关工具使用 Python 编写,但在面试的时候我们依然会看到一些针对 Shell 的题目,本文将列举一些常用的面试题,希望对你们有所帮助。

    什么是 Shell

    618fcd7424138011954402326e58f735.png

    Shell 是用户和 Linux(或许说 Linux 内核)之间的接口程序。你在提示符下输入的每个命令都由 Shell 先解释然后传给 Linux 内核。

    • Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。

    • Shell 既是一种命令语言,又是一种程序设计语言。

    • Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 Linux 内核的服务。

    $? 是用来做什么的?

    用来判断上一个命令是否正确完成,对于一个成功完成的指令,返回的是 0,如下:

    ➜ ls /var/www cgi-bin htmlecho $?0

    如果失败了呢?

    ➜ cat /etc/shadowcat: /etc/shadow: Permission denied➜ echo $?1

    获取参数

    比如我们有一个指令需要接受两个参数,用法如下:LC.sh foo bar,那么如何接受到 foobar 呢?

    他们在脚本中分别是 $1$2 啦,那么 $0 又是用来做什么的呢?

    显示当前脚本的名字,比如以上 $0 就是 "LC.sh"。

    注释

    和 Python 一样,以 #  开头就好了。

    文件头部为什么需要 #!/bin/bash

    4851554108174f8585df5daf5cba761f.png

    !/bin/bash 是 shell 脚本的第一行,称为 shebang 行。这里#符号叫做 hash,而 ! 叫做  bang。它的意思是命令通过 /bin/bash 来执行。

    查看文件的前 n 行或者后 n 行

    对于一些日志文件,往往非常的大,所以我们总会有需要看看最前面或者最后面几行,对应的指令如下:

    ➜ head -n # 前 n 行,将 n 替换为需要看的行数

    ➜ tail -n # 后 n 行,将 n 替换为需要看的行数

    一反三,如何获取到文件的第 n 行呢?

    ➜ head -n file | tail -1

    查找文件

    在运维工作中,有很多时候需要查询一个日志文件,比如在 /var/log 目录下且文件名需要包含 "LeetCode",我们该如何操作呢?

    最简单的方法可以直接:

    ➜ tree /var/www | grep LeetCode├── LeetCode

    当然,还有很多 "组合技",比如:

    find . -name "*LeetCode*"

    不过这些方法没有那么好记,个人还是倾向于 tree 的方法。

    记录差异行

    这个需求也非常的常见,假设我们有两个文件,A 和 B,现在的需求是找出 B 中有但是 A 中没有的行,然后把对应的行保存到 C 中,这个我们该如何操作呢?

    grep -vxFf A B | tee

    其中 -v 表示不选择匹配的行,-F 表示匹配的模式按行分割,-f A 表示匹配模式来自文件 A,最后表示目标文件 B。即 grep 命令从 b 中选取 a 中不存在的行,tee c 命令创建文件 C。

    除了上述一些比较基础的操作以外,这里推荐一个 GitHub 仓库,没错,也是 Awesome 系列的——alebcay/awesome-shell(https://github.com/alebcay/awesome-shell)

    023dd4ecfacd983d3e5d198728d97936.png

    这个仓库包含了很多命令行下的程序和指令,可以在各个方面完善自己的 CLI,让自己在纯命令行的操作下得到更多的乐趣并且提升自己的生产力,同时不会被看上去非常枯燥的  awksed 和 grep 指令之类的打败,让自己的 Shell 技巧快速提升。

    d01bab167b21d00b62eaeb1ee7f2e91a.png

    本文作者:Nova Kwok

    编辑&版式:霍霍

    声明:本文归 “力扣” 版权所有,如需转载请联系。

    a1d06daf2851672773ae7522e8530669.gif

    80e0e16540c89c2311c2057ce580f0b9.png

    0100d3f4dc35f7dc8c03515e2aebd01a.png

    展开全文
  • 点击上方蓝字设为星标每周一、三、五上午 8:30 准时推送下面开始今天的学习~作为后端...Shell 的题目,本文将列举一些常用的面试题,希望对你们有所帮助。什么是 ShellShell 是用户和 Linux(或许说 Linux 内核)之间...

    点击上方蓝字设为星标754e2b0bc21209a52636299f7ffaf3ef.png

    每周一、三、五上午 8:30 准时推送

    下面开始今天的学习~

    20588928ad727cec5e3a219f1aca6b90.png

    49a3a6fad8b2b260c10904faa8ed46ec.png

    作为后端开发和运维岗位我们离不开一些脚本的帮助,虽然现在 Python 的兴起让越来越多的相关工具使用 Python 编写,但在面试的时候我们依然会看到一些针对 Shell 的题目,本文将列举一些常用的面试题,希望对你们有所帮助。

    什么是 Shell

    2b10d1f381cf58422b51602f2ae2f789.png

    Shell 是用户和 Linux(或许说 Linux 内核)之间的接口程序。你在提示符下输入的每个命令都由 Shell 先解释然后传给 Linux 内核。

    • Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。

    • Shell 既是一种命令语言,又是一种程序设计语言。

    • Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 Linux 内核的服务。

    $? 是用来做什么的?

    用来判断上一个命令是否正确完成,对于一个成功完成的指令,返回的是 0,如下:

    ➜ ls /var/www cgi-bin htmlecho $?0

    如果失败了呢?

    ➜ cat /etc/shadowcat: /etc/shadow: Permission denied➜ echo $?1

    获取参数

    比如我们有一个指令需要接受两个参数,用法如下:LC.sh foo bar,那么如何接受到 foobar 呢?

    他们在脚本中分别是 $1$2 啦,那么 $0 又是用来做什么的呢?

    显示当前脚本的名字,比如以上 $0 就是 "LC.sh"。

    注释

    和 Python 一样,以 #  开头就好了。

    文件头部为什么需要 #!/bin/bash

    b9a616374b2400b74f185269cbb1d054.png

    !/bin/bash 是 shell 脚本的第一行,称为 shebang 行。这里#符号叫做 hash,而 ! 叫做  bang。它的意思是命令通过 /bin/bash 来执行。

    查看文件的前 n 行或者后 n 行

    对于一些日志文件,往往非常的大,所以我们总会有需要看看最前面或者最后面几行,对应的指令如下:

    ➜ head -n # 前 n 行,将 n 替换为需要看的行数

    ➜ tail -n # 后 n 行,将 n 替换为需要看的行数

    一反三,如何获取到文件的第 n 行呢?

    ➜ head -n file | tail -1

    查找文件

    在运维工作中,有很多时候需要查询一个日志文件,比如在 /var/log 目录下且文件名需要包含 "LeetCode",我们该如何操作呢?

    最简单的方法可以直接:

    ➜ tree /var/www | grep LeetCode├── LeetCode

    当然,还有很多 "组合技",比如:

    find . -name "*LeetCode*"

    不过这些方法没有那么好记,个人还是倾向于 tree 的方法。

    记录差异行

    这个需求也非常的常见,假设我们有两个文件,A 和 B,现在的需求是找出 B 中有但是 A 中没有的行,然后把对应的行保存到 C 中,这个我们该如何操作呢?

    grep -vxFf A B | tee

    其中 -v 表示不选择匹配的行,-F 表示匹配的模式按行分割,-f A 表示匹配模式来自文件 A,最后表示目标文件 B。即 grep 命令从 b 中选取 a 中不存在的行,tee c 命令创建文件 C。

    除了上述一些比较基础的操作以外,这里推荐一个 GitHub 仓库,没错,也是 Awesome 系列的——alebcay/awesome-shell(https://github.com/alebcay/awesome-shell)

    44173e04b42f028266e0876366417b40.png

    这个仓库包含了很多命令行下的程序和指令,可以在各个方面完善自己的 CLI,让自己在纯命令行的操作下得到更多的乐趣并且提升自己的生产力,同时不会被看上去非常枯燥的  awksed 和 grep 指令之类的打败,让自己的 Shell 技巧快速提升。

    289a1ef0e79f01200e027e47656198c3.png

    本文作者:Nova Kwok

    编辑&版式:霍霍

    声明:本文归 “力扣” 版权所有,如需转载请联系。

    5353cf0bace7aa6044bb5f7077c0df73.gif

    cc7541bb34ac88b360831558b0b01af8.png

    cb982dd9a07256335e8a4042b3e69c2a.png

    展开全文
  • [root@server shell]# cat install.sh #!/bin/bash if rpm -q $1 &>/dev/null; then echo "$1 is already installed." else echo "$1 is not installed!" fi 5 检查主机存活状态 #!/bin/bash IP_LIST=...
  • 今天千锋广州云计算培训老师就给大家分享一些常见Shell脚本面试题。​1、Shell脚本是什么、它是必需的吗?答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来...
  • Q:1 Shell脚本是什么、它是必需的吗?答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成...
  • shell脚本常见面试题

    2017-12-20 21:15:23
    9、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大值和最小值(随机数最大值32767) i=1 while [ "$i" -le 10 ];do random=`echo $RANDOM` echo $random if [ "$i" = 1 ];then ...
  • 注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格;多加注释说明。 3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。...5)有两个命令能帮助我调试脚本:set -...
  • 注意事项1)开头加解释器:#!/bin/bash2)语法缩进,使用四个空格;...5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。6)写脚本一定先测试再到生产上。本章目录:12.1 获取随...
  • Shell脚本常见面试题

    千次阅读 2012-04-01 16:08:44
    取出password中shell出现的次数 第一种方法结果:  4 /bin/bash  1 /bin/sync  1 /sbin/halt  31 /sbin/nologin  1 /sbin/shutdown 第二种方法结果: /bin/sync 1 /bin/bash 1 /sbin/...
  • 本篇文章写的Shell脚本例子都比较实用,在面试题中也经常出现,希望大家参考着多动手写写。 注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格;多加注释说明。 3)命名建议规则:变量名大写、局部...
  • shell常见面试题

    万次阅读 2018-12-28 19:28:31
    如下是一些常见Shell脚本面试问题。 1. 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 :$2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2) ./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $2 2....
  • 参考博客:linux的命令行操作和shell的区别 linux系统下可以在命令行进行操作,而shell是linux命令集的概称,是属于命令行的人机界面。...通常我们说的都是Shell Script也就是Shell脚本(.sh文件)。 ...
  • shell脚本案例(一):常见运维面试题

    千次阅读 2018-05-16 13:09:22
    在这里,将会结合工作中各种场景,利用shell脚本解决问题,完成目标。 实用案例(一) 监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。 a. 开发一个守护进程脚本每30秒实现检测一次。 b....

空空如也

空空如也

1 2 3 4 5
收藏数 82
精华内容 32
关键字:

常见shell脚本面试题