bash脚本编程

Linux脚本编程中bash常用的测试类型:            

    整数测试:

      -gt greater than  大于

      -le less or equal 小于或等于

      -ne not equal    不等

      -eq equal    等于

      -ge greater or equal  大于或等于

      -lt less than  小于

    字符测试            

        == 是否等于

        >  是否大于

        <  是否小于

        != 是否不等于

       =~ 左侧字符串能否被右侧的模式所匹配

       -z 判断指定的字符串是否为空,空为真,不空为假

       -n 判断指定的字符串是否不空,不空为真,空为假;

    文件测试

            文件的存在测试

          -a 

          -e

    文件的类型测试

     -b 是否存在并且为块设备文件

     -c 是否存在并且为字符设备文件

     -d 是否存在并且为目录设备文件

    -f 是否存在并且为普通设备文件

    -p 是否存在并且为命名管道文件

    -S 是否存在并且为套接字文件

    -h 是否存在并且为符号链接文件

文件权限测试

    -r 是否存在并且对当前用户可读

    -w 是否存在并且对当前用户可写

    -x 是否存在并且对当前用户可执行

特殊权限测试

    -g 是否存在并且有sgid权限

    -u 是否存在且拥有suid权限

    -k 是否存在且拥有sticky权限

文件内容测试

    -s 文件是否存在且是否有内容

文件时间戳测试

    -N 文件自从上一次读取后是否被修改过

从属关系测试

    -O 当前用户是否为文件的属主

    -G 当前用户是否属于文件属组

压缩与解压缩工具

   file-roller
     compress/uncompress: .Z
     gzip/gunzip: .gz
     bzip2/bunzip2: .bz2
     xz/unxz: .xz
     zip/unzip
     tar
     cpio

作业 

    

                查找/var目录下属主为root,且属组为mail的所有文件

                find /var/ -user root -group mail

                查找/var目录下不属于root、lp、gdm的所有文件

                find /var/  -not \( -user root -o -user lp -o -user gdm \) -ls

                查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件

                find /var/ -mtime -7 -not \( -user root -o -user postfix \) -ls

                查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

                find /var/ -atime -7 -nouser  -nogroup

                查找/etc目录下大于1M且类型为普通文件的所有文件

                find /etc/ -type f -size +1M  -exec ls -lh {} \;

                查找/etc目录下所有用户都没有写权限的文件

                find /etc/ -not -perm /222 -ls

                查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件

                find /etc/init.d/ -perm /111 -a -perm /002

    

         编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者

#!/bin/bash
	i=1
	max=0
        until [ $i -eq 10 ] ;do
                one=`echo $RANDOM`
        echo $one
        if [ $one -gt $max ] ;then
                max=$one
        else
                max=$max
        fi
                let i=$i+1
        done
	echo "the bigest number is $max"

      编写脚本,通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。 

#!/bin/bash
	#
	i=0 a=0 b=0
	until [ $i -gt 254 ] ; do
        ping -c 2 -w 2 10.1.252."$i" &> /dev/null
			if [ $? -eq 0 ] ;then
				echo "The host 10.1.252.$i on line"
				let a=$a+1
		else 
				echo "The host 10.1.252.$i out of line"
				let b=$b+1
			fi
				let i=$i+1
		done
	echo "The totol on line host is $a"
	echo "The totol out of line host is $b"

     编写脚本,打印九九乘法表

#!/bin/bash
	#
	h=1 s=1
		until [ $h -gt 9 ] ; do
     echo -e " \n"		
        s=1
      until [ $s -gt $h ] ; do
		let sum=$h*$s		
		echo -e "$s*$h=$sum \c"
		let s=$s+1
      done
       let h=$h+1
   done
echo -e " \n"

原创文章,作者:317376161,如若转载,请注明出处:http://www.178linux.com/37003

(0)
317376161317376161
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相关推荐

  • Centos 6 –grub legacy及grub修复

    一、CentOS 6 grub legacy:     1.启动流程:             POST –> Boot Sequence(BIOS) –> Boo…

    Linux干货 2016-09-21
  • 使用NFS共享网页文件

    上图为我们要搭建的网络拓扑图 本次实验目的:使用NFS文件服务来实现wordpress共享 实验环境: 需要三台虚拟机:         分别是:192.168.26.188(服务器端)          &n…

    2017-05-01
  • 磁盘管理(1)

    1、磁盘结构(机械硬盘) (1)磁盘构成: 磁臂(机械手臂):连接并固定磁头 马达(电机):可以转动盘片,让磁臂上的磁头可以在盘片上读写数据 扇区:最小的物理存储单位,每个扇区为512bytes 磁头:可以读写数据 盘片:主要记录数据 柱面:将扇区组成一个圆就是柱面,柱面是分区的最小单位 (2)磁盘接口 并口:IDE  SCSI&nbsp…

    Linux干货 2016-08-30
  • 内核参数修改 内核编译 第14天

    Linux内核:单内核,模块化 内核的某些模块 编译进内核本体 [*] 编译成内核模块 [M] 不选择使用     [ ] 内核的组成部分 /boot/vmlinuz-VERSION /lib/modules/VERSION/ *.ko 模块间有可能有依赖关系 内核模块管理 lsmod:显…

    Linux干货 2016-01-18
  • 磁盘配额

        磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。在服务器管理中此功能非常重要,但对单机用户来说意义不大。 配置配额系统:     综述:     &nbs…

    Linux干货 2016-09-06
  • M20-1正则表达式有话说

    1、找出ifconfig命令结果中本机的所有ipv4地址  [root@centos7 ~]# ifconfig |grep -E -o '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-…

    Linux干货 2016-08-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 09:21

    总结的有点简单了哦,下次用点心,作业完成的还可以。