您的位置:首页 > 运维架构 > Linux

linux 脚本练习题 有需要更多或答案的或和我分享的可加我QQ290631320 答案123,

2017-04-17 13:40 309 查看
练习1:

      1、添加5个用户,user1-5

      2、每个用户的密码同用户名,而且,添加密码完成后不显示passwd命令执行结果的信息

      3、每个用户完成后都要显示用户已经添加

      

      

扩展:

        如果命令没有参数就退出,并显示 usage: del or add

        如果参数是 add  建立user1-user5,如果用户存在,显示 user exits

        否则建立用户

        如果参数是 del 删除user1 -user5 如果不存在就就显示no such user

        如果其他参数,就显示 unknow arg

        并显示共有多少个用户

        

        

        

练习2:

       1、使用一个变量保存一个用户名 :

       2、删除此变量中的用户,且一并删除其家目录:

       3、显示用户删除成功

练习3:

    1、添加3个用户 a b c  但是要先判断用户是否存在,不存在后再添加

    2、添加完成后,显示 一共添加了几个用户,当然,不能包括事先存在而没有添加的

    3、最后显示 当前系统 上共有多少个用户

    

练习4:

    1、给个用户,如果uid为0 ,就显示为管理员,

    2、否则,显示为普通用户

    

    

    

    扩展

    

        如果没有地参数,显示 usage:user,退出

        给个参数。如果uid 为0 就显示admin

        否则就显示 用户 is  user

        如果不是用户,就显示 no is user

        

        

        

        

练习5:

    1、写一个脚本

       判断当前系统 上是否有用户的默认shell为bash

       如果有,就显示有多少个这类用户,否则,就显示没有这类用户,

练习6:

    1、判断当前系统上是否有用户的默认shell为bash:

       如果有,就显示其中一个的用户名:否则就显示没有地这类用户。    

    

练习7:

    2、写一个脚本

           给定一个文件,比如/etc/inittab

           判断这个文件中是否有空白行:

           如果有,就显示其空白行数,否则显示没有地空白行

    

练习8:    

    3、写一个脚本

       给定一个用户,判断其UID与GID是否一样

       如果一样,就显示此用户为“good guy" 否则就显示此用户为”bad guy"

练习9:

    4、给一个用户,判断UID与GID是否一样,不用ID命令

       如果一样,就显示此用户为“good buy” 否则就显示此用户为“bad buy ”

       

       

       

    扩展

        判断所有用户的GID和UIG是否相同,相同的显示为good buy 不同的显示为badbuyls

        

        

练习10

    1、写一个脚本

       给一个用户,获取其密码警告期限:

       而后判断用户最近一次修改密码时间至今最长使用期限是否已经小于警告期限:

       提示:算术运算的方法$[$a-$b]:表示变量A的值减去变量B的值的结果:

       如果小于,则显示:"warning":否则就显示"ok".

练习11

       写一个脚本

       判断命令历史中历史命令的总条目是否大于1000:如果大于,则显示“some command will gone":g

       否则显示”ok“。

       

练习12:

    2、写一个脚本

           给定一个文件,比如/etc/inittab

           如果文件不存在,显示‘file no eixst'并退出

           如果这个文件存在有空白行:

           如果有,就显示其空白行数,否则显示没有地空白行

练习13:(6-1)

    1、定一个脚本

            给定一个文件:

            如果是一个普通文件,就显示之:

            如果 是一个目录,也显示:

            否则,此为无法识别文件:

            

练习14:(6-1)

    2、写一个脚本

         能接受一个参数(文件路径)

        判断此参数如果是一个存在的文件,就显示“ok"否则显示”no such file“

练习15:(6-1)

    3、写一个脚本,

         如果没有参数,显示其用法

         如果文件存在,就显示ok。否则显示no such file

练习16:(06-01)        

    4、 写一个脚本两个参数{整数}

        要测试是两个参数

        显示两个参数的合

        显示两个参数的积

        

06-02

练习17:(06-02)

    5、  显示/etc/fstab文件中以“/”开头的行

         删除/etc/fastab文件以“/”开头的行

练习18: (06-02)

    6、     sed练习:

            1、删除/etc/grub.conf文件中行首的空白字符

            2、替换/etc/inittab文件中“id:3:initdefault:"一行中的数字为5:

            3、删除/etc/inittab文件中的空白行

            4、删除/etc/inittab文件中开头的#号:

            5、取出一个文件路径的目录名称

            6、删除/etc/inittab文件中开头的#号及后面的空白字符,但是#号后必须有空白字符

            7、删除/etc/inittab文件中以空白字符后跟#号类的行中的开头的空白字符及#

            

        

练习19:(06-03)

练习:写一个脚本''

        传递一个参数(单字符就行)给脚本,如参数为q或者Q或者quit,就退出脚本,否则就显示用户参数

练习20:(06-03)

        传递三个参数给脚本,第一个为整数,第二个为算术运算符,第三个为整数。将计算结果显示出来,要求保留两位精度。如./calc.sh 5 / 2

练习21:(06-03)

        传递3个参数给脚本,参数均为用户名,将此些用户的帐号信息提取出来后放置于/tmp/testusers.txt文件中,并要每一行行首有行号

练习22:(06-03)

        写一个脚本:

        判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。

        如果其生产商为authenticAMD,就显示其为amd公司;

        如果其生产商为genuineintel,就显示其为intel公司

        否则,就说其为非主流公司

练习23:(06-03)

        给脚本传递3个整数,判断其中的最大数各最小数,并显示出来。

练习24:(06-03)

        写一个脚本:

        设定变量FILE的值为/etc/passwd

        依次向/etc/passwd中的每个用户问好,并显示对方的shell.形如:

        hello,root,your shell,: /bin/bash

        统计一共有多少个用户

        

        扩展:只向默认shell为bash的用户问好

练习25:(06-03)

        添加10个用户user
afc8
1到user10,密码同用户名但要求只有用户不存在的情况下才能添加:

        扩展:接受一个参数:

        add:添加用户user1...user10.

        del:删除用户user1...user10.

        其它退出:

练习26:(06-03)

        写一个脚本:

        计算100以内所有能被3整除的正整数的和

练习27:(6-3)

        写一个脚本:

        计算100以内所有奇数的和以及所有偶数的和;分别显示之

练习28:(7-2)

        将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum

        

练习29:vim的使用练习(啊铭练习)

        1、分别向左向右向上向下移动5个字符。

        2、15行分别向右向左移动5个单词词首,和5个单词的词尾。

        3、分别向下翻一屏,向上翻一屏,向下半屏,向上半屏。

        4、移动到25行,最后一行,首行

        5、光标移动到25行的行首,行尾,绝对行首,绝对行尾。

        6、搜索/root/study/vimtest文件中set并数至前向后一下个数。和至后向前数下个

        7、12行到最后/root/study/vimtest文件中?替换成!

        8、光标移动到15行删除!,删除第15行,删除1个单词,删除15行到最后一行,删除15行到倒数第3行,15行向下6行

        9、还原上一步

        10、复制22行-25行至32后,32行前

        11、移动22行-25行到32后,32行前

        12、把全文的abc替换成ABC如何替换每行的第一个abc

        13、搜索sed关键字,定位最顶端和最底端,如何移动上一个关键字和下一个关键字

        14、当编辑完成后命令模式下输入x会怎么样

        15、vim+filename表示什么含义,执行vim+10filename

        16、如何显示行号,如何取消行号

        17、如何把20行的第一个abc替换成ABC如果替换所有abc

        18、同时打开test1 test2 test3 ,切换下一个文件,上一个文件第一个文件,全部退出

        19、分屏显示一个文件,水平显示,垂直显示 全部退出

        20、分窗口显示多个文件,水平分割,垂直分割

        21、将vimtest内容另存到test4文件中

        22、将test4文件中换内容填充当前文件中

        23、和shell交互 打开ls /root/study

        24、显示行号。取消行号

        25、显示忽略大小写

        26、设定自动缩进,取消缩进

        27、文件高亮显示和取消

        28、语法高亮关闭开启

        29、找到非法退出 的文件

        

练习30    (7-2)

        写一个脚本:

        1、添加10个用户user1到user10,密码同用户名,但是要求只有用户不存在的情况下才添加

        2、扩展

        接受个参数:

        add:添加用户

        del:删除用户

        其它退出:

        

        扩展:给个参数user1,user2,user3,分别建立3个用户(用for)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: