设为首页 收藏本站
查看: 1188|回复: 0

25道shell面试题

[复制链接]

尚未签到

发表于 2015-12-4 07:05:02 | 显示全部楼层 |阅读模式
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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-146957-1-1.html 上篇帖子: Shell常用操作 下篇帖子: Shell编程和Vim操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表