运维面试题之linux编程

吐槽:

linux下的编程基本上都很简单包括shell 三剑客和vim的使用,还有python脚本,有基础都是一两天可以学会的,有的面试官让在纸上写正则是几个意思?遇到果断走人吧。。。。

shell脚本篇:

shell 是什么shell 脚本又是什么?

shell 同时也是一个程序,它的一端连接着 UNIX/Linux 内核,另一端连接着用户和其它应用程序,换句话说,Shell 是用户和应用程序与内核沟通的桥梁

shell 脚本首先是 UNIX/Linux 下的脚本编程语言,它是解释执行的,无需提前编译,与其它语言不通的是Shell可以直接执行系统命令

shell脚本有哪些变量类型?

局部变量、环境变量、shell变量

shell脚本怎么接收参数?

使用$符号第一个参数就是$1,$0是保留变量是shell脚本文件名

shell脚本数组怎么表示怎么获取数组的长度?

shell 数组用括号来表示,元素用"空格"符号分割开

${#my_array[*]}  $符号一个大括号包含#变量名中括号*或者@

shell脚本有那些基本运算符?

算数运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符

shell脚本中break命令和continue命令有什么区别?

break会跳出循环,continue只会跳出当前循环

shell脚本中exit 0 exit 1分别代表什么,怎么检查上一条命令的状态?

exit 0代表正常退出,exit 1代表错误退出

可以使用echo "$?"

shell脚本怎么就收键盘标准输入?

read  -p "'请输入:" env 

怎么调试shell脚本?

bash -x打印每一行执行的命令包括变量值,bash -v 打印命令输出的结果

bash -e 有什么作用?

检查shell脚本中每一行命令的非零状态,有非零状态就会exit 1

shell脚本的流程控制if条件能为空吗?

if 条件不能为空,比如else没有条件就不要写这个else

shell脚本中有哪些循环控制?

for 循环和while 循环

shell 脚本中if 、for、while语句的基本格式是?

if [ "a" == "b" ]; then
  echo "a等于b"
else
  echo "a不等于b"
fi

#
for i in 1 2 3
do
  echo "当前值等于$i"
done

#
int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done

shell脚本中的选择语句格式是怎么样的?

case $name in
  a)
    echo "我是a"
;;    
  b)
  echo "我是b"
;;
  *)
    echo "我是其它"
;;
esac

三剑客篇:

三剑客能用嘴直接说来的案例不多,更适合在电脑上笔试

怎么打印出一个文本的内容的第二列?

# cat test.log |awk '{print $2}'

怎么替换文本中的关键字?

# sed -i 's/source/target/g' test.log

怎么过滤文本中包含关键字的行并排除某些行?

# cat test.log |grep key |grep -v name

awk sed grep 分别适合干什么?

awk适合格式化文本,对文本进行较复杂格式处理

sed适合编辑匹配的文本

grep适合过滤匹配的文本

vim篇:

vim 怎么显示行号?

:set nu

vim 怎么删除一行?

dd

vim 粘贴文本的时候怎么防止自动缩进?

:set paste

vim 怎么进入插入模式?

i或者INS键

vim 怎么复原上一个动作?

u

vim 怎么直接跳到文本的最后一行怎么回到第一行?

G到最后一行gg回到第一行

vim 怎么跳到下一个和上一个搜索关键字?

n下一个N上一个

 

原文地址:https://www.cnblogs.com/37yan/p/10729309.html