25道shell面试题

1

sed

修改

test.txt

23

test

tset

sed

–i „23s/test/tset/g? test.txt

2

查看

/web.log

25

行第三列的内容。

sed

–n „25p? /web.log | cut –d “ ” –

f3

head

n25 /web.log | tail

n1 | cut

–d “ ” –

f3

awk

–F “ ” „NR==23{print $3}? /web.log

3

删除每个临时文件的最初三行。

sed

–i „1,3d? /tmp/*.tmp

4

脚本编程:求

100

内的质数。

#!/bin/bash

i=1

while [ $i -le 100 ];do

ret=1

for (( j=2;j<$i;j++ ));do

if [ $(($i%$j)) -eq 0

];then

ret=0

break

fi

done

if [ $ret -eq 1 ];then

echo -n "$i "

fi

i=$(( i+1 ))

done

5

晚上

11

点到早上

8

点之间每两个小时查看一次系统日期与时间,写出具体配置命令

echo 1 23,1-8/2 * * * root /tmp/walldate.sh >> /etc/crontab

6

编写个

shell

脚本将当前目录下大于

10K

的文件转移到

/tmp

目录下

#!/bin/bash

fileinfo=($(du ./*))

length=${#fileinfo[@]}

for((i=0;i<$length;i=$(( i+2 ))));do

if [ ${fileinfo[$i]} -le 10 ];then

mv ${fileinfo[$(( i+1 ))]} /tmp

fi

done

7

如何将本地

80

端口的请求转发到

8080

端口,当前主机

IP

192.168.2.1

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to

192.168.2.1:8080

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

8

11

月份内,

每天的早上

6

点到

12

点中,

每隔

2

小时执行一次

/usr/bin/httpd.sh

么实现

echo "1 6-12/2 * * * root /usr/bin/httpd.sh >> /etc/crontab"

9

shell

环境如何杀死一个进程?

ps aux

| grep | cut -f?

得到

pid

cat /proc/pid

kill pid

10

shell

环境如何查找一个文件?

find / -name abc.txt

11

shell

里如何新建一个文件?

touch ~/newfile.txt

12

linux

下面的

sed

awk

的编写

1

如何显示文本

file.txt

中第二大列大于

56789

的行?

awk -F "," ‘{if($2>56789){print $0}}‘ file.txt

2

显示

file.txt

1,3,5,7,10,15

行?

sed -n "1p;3p;5p;7p;10p;15p" file.txt

awk ‘NR==1||NR==3||NR==5||…||NR=15{print $0}‘ file.txt

3

file.txt

的制表符,即

tab

,全部替换成

"|"

sed -i "s#\t#\|#g" file.txt

13

把当前目录(包含子目录)下所有后缀为

“.sh”

的文件后缀变更为

“.shell”

#!/bin/bash

str=`find ./ -name \*.sh`

for i in $str

do

mv $i ${i%sh}shell

done

14

编写

shell

实现自动删除

50

个账号功能,账号名为

stud1

stud50

#!/bin/bash

for((i=1;i<=50;i++));do

userdel stud$i

done

15

请用

Iptables

写出只允许

10.1.8.179

访问本服务器的

22

端口。

/sbin/iptables -A input -p tcp -dport 22 -s 10.1.8.179 -j ACCEPT

/sbin/iptables -A input -p udp -dport 22 -s 10.1.8.179 -j ACCEPT

/sbin/iptables -P input -j DROP

16

shell

中变量的赋值有四种方法,

其中,

采用

name=12

的方法称

A

A

直接赋值

B

使用

read

命令

C

使用命令行参数

D

使用命令的输出

17

有文件

file1

1)

查询

file1

里面空行的所在行号

grep -n ^$ file1

2)

查询

file1

abc

结尾的行

grep abc$ file1

3)

打印出

file1

文件第

1

到第三行

head -n3 file1

sed "3q" file1

sed -n "1,3p" file1

18

假设有一个脚本

scan.sh

,里面有

1000

行代码,并在

vim

模式下面,请按照如下

要求写入对应的指令

1

shutdown

字符串全部替换成

reboot

:%s/shutdown/reboot/g

2

清空所有字符

:%d

3

不保存退出

q!

19

1

10

数字相加,写出

shell

脚本

#!/bin/bash

j=0

for((i=1;i<=10;i++));do

j=$[j+i ]

done

echo $j

20

常见

shell

有哪些?缺省的是哪个?

/bin/sh

/bin/bash

/bin/ash

/bin/bsh

/bin/csh

/bin/tcsh

/sbin/no

login

21

Shell

循环语句有哪些?

for

while

until

22

SHELL

模拟

LVS

,脚本怎么写

/sbin/iptable -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to

192.168.1.11-192.168.1.12

23

找出系统内大于

50k

,小于

100k

的文件,并删除它们。

#!/bin/bash

file=`find / -size +50k -size -100k`

for i in $file;do

rm -rf $i

done

24

脚本(如:目录

dir1

dir2

dir3

下分别有

file1

file2

file2

,请使用脚本将文

件改为

dir1_file1

dir2_file2

dir3_file3

#!/bin/bash

file=`ls dir[123]/file[123]`

for i in $file;do

mv $i ${i%/*}/${i%%/*}_${i##*/}

done

25

A

B

C

目录下的文件

A1

A2

A3

文件,改名为

AA1

AA2

AA3.

使用

shell

脚本实现。

#!/bin/bash

file=`ls [ABC]/A[123]`

for i in $file;do

mv $i ${i%/*}/A${i#*/}

done

时间: 2024-10-25 17:12:49

25道shell面试题的相关文章

几道shell面试题及答案

企业面试题1: 已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字? 21029299 00205d1c a3da1677 1f6d12dd 890684b 解题思路:通过每次传递一个参数的方式,来实现依次破解 $RANDOM的范围为0-32767         #!/bin/bash         #Author: liuwei         #Site: www.51liuzw.com  

2017最新企业Shell面试题及企业运维实战共30道案例

<跟老男孩学习Linux运维:Shell高级编程实战>一书第19章企业面试题分享. 答案: 1.答案在<跟老男孩学习Linux运维:Shell高级编程实战>第19章一书2016年年底前即将出版. 2.2016最新Shell视频http://edu.51cto.com/pack/view/id-546.html 第19章企业Shell面试题及企业运维实战案例 19.1 企业Shell面试题实战案例 19.1.1 企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/o

阿里2道前端笔试题+堆糖2道前端笔试题

阿里前端笔试题 1.一个表格HTML代码如下 <table id="table1"> <tbody> <tr><td>1</td><td><button>Delete</button></td></tr> <tr><td>2</td><td><button>Delete</button></

那些年我们一起做过的shell面试题(一)

企业真实shell面试题,一起来挑战把! 声明:如有雷同,纯属抄袭 1.开发一个守护进程脚本,每30秒执行一次,检查mysql主从同步 [[email protected] scripts]# cat check_mysql_slave_status.sh #!/bin/bash# date 2016-1-5# author tom# mail [email protected]# function check_mysql_slave_status# version 4.1.2 ####do i

黑马程序员 &nbsp; 两道java面试题

1.List,Set,Map是否都继承了Collection接口?  List,Map比较常用:List是通过下标来访问元素,Map是通过键值进行访问元素.应该不会同时都实现了Collection接口.  Collection是一个什么概念?还有Set在java中是怎样定义的?他是通过下标来访问元素还是通过键值来访问元素?两者谁继承了Collection接口呢?或者有没有可能两者都继承了Collection接口?时间不多了,我是这样写的:  Set,Map实现了Collection接口.而Lis

几道C笔试题

Q:printf和scanf的返回值是什么? int main() { int i = 43; int n = printf("%d\n",i); printf("%d\n",n); return 0; } A:printf函数返回3,因为其输出了'4', '3', '\n' 三个字符. printf返回的是成功输出到STDOUT的字符数.如果发生错误,返回一个负数. scanf返回的是成功赋值的变量个数,如果发生错误,返回EOF Q:既然fgetc是接收输入的字符

Java程序员的10道XML面试题

如今,面对web开发人员的Java各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的XSLT技术,以及XPATH,XQuery等各种XML技术和XML基础知识. 笔者从论坛收集看到常见的XML面试问答题.这些问题大部分在Java面试中会问到,同时在C,C++,Scala或其他语言的编程面试中同样很有用处.作为编程人员所需要的技能之一,在任何技术工作面试之前准备一些XML问题是很有意义的.

算法--两道百度笔试题

算法--两道百度笔试题 今天看到一位园友写了一篇关于百度的面试题的博客,成了评论头条,再下看了一下,非常感兴趣,那位博主的算法能力跟我一样需要提高,估计他的功力还在我之下,所以再下不才,在这里把自己的源码贴出来. 百度面试题(一):假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数和正数间元素相对位置不变.时空复杂度要求分别为:o(n)和o(1).          其实开始的时候我也是一头雾水,在纸上画画之后发现,其实就是一道变形的插入排序.幸运的是

企业shell面试题:获取51CTO博客列表按时间倒序排序

企业shell面试题:获取51CTO博客列表倒序排序考试题 老男孩教育培训机构需求:需求入下: 请把http://oldboy.blog.51cto.com 地址中的所有博文,按照时间倒序列表如下: 2013-09-13 运维就是一场没有硝烟的战争 http://oldboy.blog.51cto.com/2561410/1296694 2016-04-17 运维人员写项目方案及推进项目的基本流程思路 http://oldboy.blog.51cto.com/2561410/1764820 附加