iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >shell命令经典面试问题有哪些
  • 753
分享到

shell命令经典面试问题有哪些

2023-06-09 14:06:36 753人浏览 安东尼
摘要

这篇文章主要介绍了shell命令经典面试问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。文本分析取出passWord中shell出现的次数第一种方法结果: 

这篇文章主要介绍了shell命令经典面试问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

文本分析
取出passWord中shell出现的次数
第一种方法结果:
      4 /bin/bash
      1 /bin/sync
      1 /sbin/halt
     31 /sbin/nologin
      1 /sbin/shutdown
第二种方法结果:
/bin/sync       1
/bin/bash       1
/sbin/nologin   30
/sbin/halt      1
/sbin/shutdown  1

文件整理

employee文件中记录了工号和姓名
employee.txt:
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
bonus文件中记录工号和工资
bonus.txt:
100 $5,000
200 $500
300 $3,000
400 $1,250
要求把两个文件合并并输出如下
处理结果:
400 ashok sharma $1,250
100 jason smith  $5,000
200 john doe  $500
300 sanjay gupta  $3,000

打印本机的交换分区大小
处理结果:
Swap:1024M

用户清理
清除本机除了当前登陆用户以外的所有用户

处理结果:
 23:00:17 up  1:08,  1 user,  load average: 0.02, 0.05, 0.02
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    192.168.1.100    22:15    0.00s 10.75s  0.00s w
本机只剩下你自己就对了:)

root用户今天登陆了多长时间

处理结果:
root loGon today: 0.06 hour

打印当前sshd的端口和进程id

处理结果:
sshd Port&&pid: 22 5412

输出本机创建20000个目录所用的时间

处理结果:
real    0m3.367s
user    0m0.066s
sys     0m1.925s

打印root可以使用可执行文件数

处理结果:
root's bins: 2306

编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下

#/bin/sh #Programm : # Using for move currently directory to /tmp for FileName in `ls l | awk '$5>10240 {print $9}'` do mv $FileName /tmp done ls al /tmp echo "Done! "

编写shell脚本获取本机的网络地址。

比如:本机的ip地址是:192.168.100.2/255.255.255.0,那么它的网络地址是 192.168.100.1/255.255.255.0
方法一:

#!/bin/bash #This script print ip and network file="/etc/sysconfig/networkscripts/ifcfgeth0" if [ f $file ] then IP=`grep "IPADDR" $file|awk F"=" '{ print $2 }'` MASK=`grep "NETMASK" $file|awk F"=" '{ print $2 }'` echo "$IP/$MASK" exit 1 fi

用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。
参考程序:

#!/bin/sh FILENAME= echo “Input file name:” read FILENAME if [ c "$FILENAME" ] then cp $FILENAME /dev fi

设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。

参考答案:

#!/bin/shi=1 groupadd class1 while [ $i le 30 ] do if [ $i le 9 ] then USERNAME=stu0${i} else USERNAME=stu${i} fi useradd $USERNAME mkdir /home/$USERNAME chown R $USERNAME /home/$USERNAME chgrp R class1 /home/$USERNAME i=$(($i+1)) done

一些经典的 Shell 脚本面试问题

如何在脚本中使用参数 ?
第一个参数 : $1,第二个参数 :$2

例子 : 脚本会复制文件(arg1) 到目标地址(arg2)
./copy.sh file1.txt /tmp/
cat copy.sh
#!/bin/bash
cp $1 $2

如何计算传递进来的参数 ?

$#

如何检查之前的命令是否运行成功?

$?

如何获取文件的最后一行 ?

tail -1

如何获取文件的第一行 ?
head -1

如何获取一个文件每一行的第三个元素 ?
awk'{print $3}'

假如文件中每行第一个元素是FIND,如何获取第二个元素
awk'{ if ($1 == "FIND") print$2}'

如何调试 bash 脚本
将 -xv 参数加到#!/bin/bash 后


例子:
#!/bin/bash –xv

举例如何写一个函数 ?
function example {
echo "Hello world!"
}

如何向连接两个字符串 ?
V1="Hello"
V2="World"
V3=${V1}${V2}
echo $V3
输出
HelloWorld

如何进行两个整数相加 ?
V1=1
V2=2
let V3=$V1+$V2
echo $V3
输出
3

如何检查文件系统中是否存在某个文件 ?
if [ -f /var/log/messages ]
then
echo "File exists"
fi

写出 shell 脚本中所有循环语法 ?

for 循环 :
foriin$(ls);do
echo item:$i
done


while 循环 :
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done


until 循环 :
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done

每个脚本开始的#!/bin/sh 或 #!/bin/bash 表示什么意思?
这一行说明要使用的 shell。#!/bin/bash表示脚本使用 /bin/bash。对于 python 脚本,就是 #!/usr/bin/Python

如何获取文本文件的第 10 行 ?
head -10 file|tail -1

bash 脚本文件的第一个符号是什么
#

命令:[ -z"" ] && echo 0 || echo 1 的输出是什么
0

如何在后台运行脚本 ?
nohup command&

"chmod 500 script" 做什么 ?
使脚本所有者拥有可执行权限。

  ">" 做什么 ?
重定向输出流到文件或另一个流。

& 和&& 有什么区别
& - 希望脚本在后台运行的时候使用它
&& - 当前一个脚本成功完成才执行后面的命令/脚本的时候使用它

bash shell 脚本中哪个符号用于注释 ?
#

' 和 " 引号有什么区别 ?
' - 当我们不希望把变量转换为值的时候使用它。
" - 会计算所有变量的值并用值代替。


24. 如何在脚本文件中重定向标准输出和标准错误流到log.txt 文件 ?
在脚本文件中添加 "exec >log.txt2>&1" 命令。


25. 如何只用 echo 命令获取字符串变量的一部分 ?
echo ${variable:x:y}
x - 起始位置
y - 长度

例子:
variable="My name is Petras, and I amdeveloper."
echo ${variable:11:6} # 会显示 Petras


26. 如何使用 awk 列出 UID 小于 100 的用户 ?
awk -F: '$3<100' /etc/passwd


27. 写程序为用户计算主组数目并显示次数和组名
cat /etc/passwd|cut -d: -f4|sort|uniq-c|while read c g
do
{ echo $c; grep :$g: /etc/group|cut -d:-f1;}|xargs -n 2
done

如何获取变量长度 ?
${#variable}

如何打印变量的最后 5 个字符 ?
echo ${variable: -5}

如何只用 echo 命令替换字符串的一部分 ?
echo ${variable//pattern/replacement}

如何计算本地用户数目 ?
wc -l /etc/passwd|cut -d" " -f1 或者 cat /etc/passwd|wc -l

不用 wc 命令如何计算字符串中的单词数目 ?
set ${string}
echo $#

如何列出第二个字母是 a 或 b 的文件 ?
ls -d ?[ab]*

如何将整数 a 加到 b 并赋值给 c ?
c=$((a+b))

c=`expr $a + $b`

c=`echo "$a+$b"|bc`

如何去除字符串中的所有空格 ?
echo $string|tr -d " "

写出输出数字 0 到 100 中 3 的倍数(0 3 6 9…)的命令 ?
for i in {0..100..3}; do echo $i; done

for (( i=0; i<=100; i=i+3 )); do echo"Welcome $i times"; done

如何打印传递给脚本的所有参数?
echo $*

echo $@

  [ $a == $b ] 和[ $a -eq $b ] 有什么区别
[ $a == $b ] - 用于字符串比较
[ $a -eq $b ] - 用于数字比较

= 和 == 有什么区别
= - 用于为变量赋值
== - 用于字符串比较

写出测试 $a 是否大于 12 的命令 ?
[ $a -gt 12 ]

如何检查字符串是否以字母"abc" 开头 ?
[[ $string == abc* ]]

[[ $string == abc* ]] 和 [[ $string == "abc*" ]] 有什么区别
[[ $string == abc* ]] - 检查字符串是否以字母 abc 开头
[[ $string == "abc" ]] - 检查字符串是否完全等于 abc

如何列出以 ab 或 xy 开头的用户名 ?
egrep "^ab|^xy" /etc/passwd|cut-d: -f1

bash 中 $! 表示什么意思 ?
后台最近执行命令的 PID.

$? 表示什么意思 ?
前台最近命令的结束状态。

如何输出当前 shell 的 PID ?
echo $$

$* 和 $@ 有什么区别*
$* - 以一个字符串形式输出所有传递到脚本的参数
$@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数

如何在 bash 中定义数组 ?
array=("Hi" "my""name" "is")

如何打印数组的第一个元素 ?
echo ${array[0]}

如何打印数组的所有元素 ?
echo ${array[@]}

如何输出所有数组索引 ?
echo ${!array[@]}

shell 脚本如何获取输入的值 ?
a) 通过参数
./script param1 param2
b) 通过 read 命令
read -p "Destination backup Server :" desthost

感谢你能够认真阅读完这篇文章,希望小编分享的“shell命令经典面试问题有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: shell命令经典面试问题有哪些

本文链接: https://www.lsjlt.com/news/256407.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell命令经典面试问题有哪些
    这篇文章主要介绍了shell命令经典面试问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。文本分析取出password中shell出现的次数第一种方法结果: ...
    99+
    2023-06-09
  • Python经典面试问答题有哪些
    本文小编为大家详细介绍“Python经典面试问答题有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python经典面试问答题有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • Python经典面试题有哪些
    这篇文章主要讲解了“Python经典面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python经典面试题有哪些”吧!Python面试题(一)之交换变量值平时时不时会面面实习生,大...
    99+
    2023-06-02
  • 经典MySQL面试题有哪些
    这篇文章主要讲解了“经典MySQL面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“经典MySQL面试题有哪些”吧!1.数据库三范式是什么第一范式(...
    99+
    2024-04-02
  • Redis经典面试题有哪些
    本篇内容介绍了“Redis经典面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什么是Redis?简述它的优缺点?Redis本质...
    99+
    2023-06-02
  • PHP经典面试题有哪些
    这篇文章给大家分享的是有关PHP经典面试题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.合并两个数组有几种方式,试比较它们的异同方式:array_merge()’+’array_merge_recurs...
    99+
    2023-06-15
  • Linux经典面试题有哪些
    这篇文章主要介绍“Linux经典面试题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux经典面试题有哪些”文章能帮助大家解决问题。1、介绍下自己?(几乎每家公司首先都会让你做个自我介绍,...
    99+
    2023-06-16
  • CSS的经典面试题有哪些
    这篇“CSS的经典面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CSS的经典面试题有哪些”文章吧。1、 介绍一下...
    99+
    2023-06-27
  • Linux面试命令问答题有哪些
    这篇“Linux面试命令问答题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux面试命令问答题有哪些”文章吧。问...
    99+
    2023-06-27
  • Redis经典面试题及答案有哪些
    这篇文章主要讲解了“Redis经典面试题及答案有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis经典面试题及答案有哪些”吧! ...
    99+
    2023-03-09
    redis
  • c语言经典面试题目有哪些
    本篇内容介绍了“c语言经典面试题目有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1.在下面程序的底画线处填上适当的字句,使该程序执...
    99+
    2023-06-03
  • 云计算的经典面试题有哪些
    这篇文章主要介绍“云计算的经典面试题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“云计算的经典面试题有哪些”文章能帮助大家解决问题。1)使用云计算有哪些优点?使用云计算有下列优点:a)备份数据...
    99+
    2023-06-27
  • web前端的经典面试题有哪些
    这篇文章主要讲解了“web前端的经典面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端的经典面试题有哪些”吧!  1、如何利用Webpack把代码上传服务器以及转码测试  ...
    99+
    2023-06-03
  • Javascript前端经典的面试题有哪些
    这篇文章将为大家详细讲解有关Javascript前端经典的面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、JavaScript 的 typeof 返回哪些数...
    99+
    2024-04-02
  • Python经典面试题和答案有哪些
    这篇文章主要介绍了Python经典面试题和答案有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python经典面试题和答案有哪些文章都会有所收获,下面我们一起来看看吧。  ...
    99+
    2024-04-02
  • 有哪些经典的DOS命令
    这篇文章将为大家详细讲解有关有哪些经典的DOS命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。案例一、FC文件对比众所周知,在安装软件时,一般会在注册表中或多或少留下点什么,时间一长就会有...
    99+
    2023-06-13
  • 经常被问的JAVA面试题有哪些
    这篇文章主要介绍了经常被问的JAVA面试题有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇经常被问的JAVA面试题有哪些文章都会有所收获,下面我们一起来看看吧。什么是值传递和引用传递?值传递是对基本型变量而...
    99+
    2023-06-02
  • 常见Linux命令面试题有哪些
    小编给大家分享一下常见Linux命令面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如何挂起一个正在执行进程,转到后台执行?答:只需按ctrl+z安装l...
    99+
    2023-06-05
  • 面试常问的Linux命令有哪些
    这篇文章给大家分享的是有关面试常问的Linux命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help查看帮助或者直接通过goo...
    99+
    2023-06-16
  • Java虚拟机经典问题有哪些
    本篇内容介绍了“Java虚拟机经典问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 是如何在保证可移植性的前提下提供高执行效...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作