shell面试题有哪些

78次阅读
没有评论

共计 3022 个字符,预计需要花费 8 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 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 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 点之间每两个小时查看一次系统日期与时间,写出具体配置命令

   echo1 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 环境如何杀死一个进程?

   psaux  | grep | cut -f?  得到 pid

   cat/proc/pid

   killpid

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`

   fori in $str

   do

       mv$i ${i%sh}shell

   done

14、编写 shell 实现自动删除 50 个账号功能,账号名为 stud1 至 stud50

  #!/bin/bash

  for((i=1;i 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 i++));do

      j=$[j+i]

  done

  echo $j

20、常见 shell 有哪些?缺省的是哪个?

  /bin/sh  /bin/bash  /bin/ash    /bin/bsh    /bin/csh   /bin/tcsh    /sbin/nologin

21、Shell 循环语句有哪些?

  for    while    until

22、用 SHELL 模拟 LVS,脚本怎么写

  /sbin/iptable -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to192.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

以上是“shell 面试题有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计3022字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)