linux命令 chexiao,shell编程if及find查找作业

写一个脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息

[root@www sh.log]# cat createuser.sh

#!/bin/bash

#author

#使用一个用户名作为参数,如果指定参数的用户存在,就显示其存在,否则添加,显示添加用户的id号等信息

read -p "username:" user

id $user &> /dev/null

if [ $? -eq 0 ];then

echo  "$user already exist"

else

useradd $user &> /dev/null

echo "`id $user`"

fi

[root@www sh.log]# bash createuser.sh

username:wang

wang already exist

[root@www sh.log]# bash createuser.sh

username:xiaodeng

uid=1002(xiaodeng) gid=1002(xiaodeng) groups=1002(xiaodeng)

写一个脚本/root/bin/yesorno.sh,提示用户输入yes或no,并判断用户输入的是yes还是no,或是其它信息

[root@www sh.log]# cat yesorno.sh

#!/bin/bash

#author:DYW

#提示用户输入yes或no,并判断用户输入的是yes还是no,或是其他信息

read -p "input yes or no please:" biu

piu=`echo "$biu" | tr "[a-z]" "[A-Z]"`

case $piu in

Y|YES)

echo "you select yes"

;;

N|NO)

echo "you select no"

;;

*)

echo "you select others"

;;

esac

[root@www sh.log]# bash yesorno.sh

input yes or no please:yES

you select yes

[root@www sh.log]# bash yesorno.sh

input yes or no please:YEs

you select yes

[root@www sh.log]# bash yesorno.sh

input yes or no please:No

you select no

[root@www sh.log]# bash yesorno.sh

input yes or no please:12312

you select others

写一个脚本/root/bin/filetype.sh,判断用户输入文件路径,显示其文件类型(普通,目录,链接,其它文件类型)

[root@www sh.log]# bash filetype.sh

input filename please:/sh.log/qiuhe.sh

The /sh.log/qiuhe.sh is ordinary file

[root@www sh.log]# cat filetype.sh

#!/bin/bash

#suthor:DYW

#判断用户输入文件路径,显示其文件类型(普通,目录,链接,其他文件类型)

read -p "input filename please:" file

if [ -z $file  ];then

echo "Please enter a path"

else

if [ -L $file ];then

echo "The $file is Symbol file"

elif [ -c $file ];then

echo "The $file is char file"

elif [ -d $file ];then

echo "The $file is dir file"

elif [ -b $file ];then

echo "The $file is block file"

elif [ -f $file ];then

echo "The $file is ordinary file"

elif [ -p $file ];then

echo "The $file is pipe file"

elif [ -S $file ];then

echo "The $file is scoket file"

else

echo "Enter the correct file path"

fi

fi

[root@www sh.log]# bash filetype.sh

input filename please:/wang/file1

The /wang/file1 is ordinary file

[root@www sh.log]# bash filetype.sh

input filename please:/wang/jiaoben.sh

Enter the correct file path

[root@www sh.log]# bash filetype.sh

input filename please:/wang/jiaoben1.sh

The /wang/jiaoben1.sh is ordinary file

[root@www sh.log]# bash filetype.sh

input filename please:/usr/bin

The /usr/bin is dir file

写一个脚本/root/bin/checkint.sh,判断用户输入的参数,是否为正整数

[root@www sh.log]# cat cheskint.sh

#!/bin/bash

#author:DYW

#判断用户输入的参数,是否为正整数

read -p "input a number please:" number

if [ -z $number ];then

echo "You must input a number!"

exit

else

if let var=$number &>/dev/null;then

if [ $? -eq 0 ];then

if [ $number -lt 0 ];then

echo "$number is Negative integer"

elif [ $number -gt 0 ];then

echo "$number is Positive integer"

else

echo "$number is 0"

fi

fi

else

echo "$number is not integer"

fi

fi

[root@www sh.log]# bash cheskint.sh

input a number please:10

10 is Positive integer

[root@www sh.log]# bash cheskint.sh

input a number please:-112

-112 is Negative integer

[root@www sh.log]# bash cheskint.sh

input a number please:0

0 is not integer

[root@www sh.log]# bash cheskint.sh

input a number please:

You must input a number!

[root@www sh.log]# bash cheskint.sh

input a number please:asdhiuadqwl

asdhiuadqwl is not integer

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

[root@www ~]# find /var -user root -group mail -ls

134321240    0 drwxrwxr-x   2 root     mail           46 Aug 12 18:30 /var/spool/mail

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

[root@www ~]# find /var/ -not \( -user root -o -user lp -o -user gdm \) -ls

134686482    0 drwx------   2 tss      tss             6 Nov 21  2015 /var/lib/tpm

443945    0 drwx------   2 postfix  root           24 Aug  9 06:23 /var/lib/postfix

833    4 -rw-------   1 postfix  postfix        33 Aug  9 17:41 /var/lib/postfix/master.lock

134914400    0 -rw-rw----   1 wang     mail            0 Aug 11 13:02 /var/spool/mail/wang

134974157    0 -rw-rw----   1 laowang  mail            0 Aug 12 10:10 /var/spool/mail/laowang

134993654    0 -rw-rw----   1 xiaodeng mail            0 Aug 12 18:30 /var/spool/mail/xiaodeng

134924704    0 drwx------   2 postfix  root            6 Jun 10  2014 /var/spool/postfix/active

202230254    0 drwx------   2 postfix  root            6 Jun 10  2014 /var/spool/postfix/bounce

443946    0 drwx------   2 postfix  root            6 Jun 10  2014 /var/spool/postfix/corrupt

67719609    0 drwx------   2 postfix  root            6 Jun 10  2014 /var/spool/postfix/defer

134924705    0 drwx------   2 postfix  root            6 Jun 10  2014 /var/spool/postfix/deferred

202230255    0 drwx------   2 postfix  root            6 Jun 10  2014 /var/spool/postfix/flush

443947    0 drwx------   2 postfix  root            6 Jun 10  2014 /var/spool/postfix/hold

6 Jun 10  2014 /var/spool/postfix/trace

...

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

[root@www ~]# find /var/ \( -not \( -user root -o -user postfix \) -mtime -7 \) -ls

134914400    0 -rw-rw----   1 wang     mail            0 Aug 11 13:02 /var/spool/mail/wang

134974157    0 -rw-rw----   1 laowang  mail            0 Aug 12 10:10 /var/spool/mail/laowang

134993654    0 -rw-rw----   1 xiaodeng mail            0 Aug 12 18:30 /var/spool/mail/xiaodeng

134993684    0 -rw-rw----   1 gdm      mail            0 Aug 12 23:03 /var/spool/mail/gdm

[root@www ~]# stat /var/spool/mail/wang

File: ‘/var/spool/mail/wang’

Size: 0         Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768dInode: 134914400   Links: 1

Access: (0660/-rw-rw----)  Uid: ( 1000/    wang)   Gid: (   12/    mail)

Context: unconfined_u:object_r:mail_spool_t:s0

Access: 2016-08-11 13:02:38.126781165 +0800

Modify: 2016-08-11 13:02:38.126781165 +0800

Change: 2016-08-11 13:02:38.126781165 +0800

Birth: -

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

[root@www ~]# find / \( -nouser -o -nogroup \) -atime -7

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

[root@www ~]# find /etc/ \( -size +1M -o -type f \) -ls

134320258    4 -rw-r--r--   1 root     root          541 Aug  9 05:48 /etc/fstab

134320259    0 -rw-------   1 root     root            0 Aug  9 05:48 /etc/crypttab

134993652    4 -rw-r--r--   1 root     root           81 Aug 12 20:25 /etc/resolv.conf

151    4 -rw-r--r--   1 root     root         1690 Dec  9  2015 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

152    4 -rw-r--r--   1 root     root         1004 Dec  9  2015 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7

153    4 -rw-r--r--   1 root     root         1690 Dec  9  2015 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Testing-7

67355015    4 -rw-r--r--   1 root     root         2388 Jun 29  2015 /etc/pki/tls/certs/Makefile

67355016    4 -rwxr-xr-x   1 root     root          610 Jun 29  2015 /etc/pki/tls/certs/make-dummy-cert

67355017    4 -rwxr-xr-x   1 root     root          829 Jun 29  2015 /etc/pki/tls/certs/renew-dummy-cert

134484404    8 -rwxr-xr-x   1 root     root         5178 Jun 29  2015 /etc/pki/tls/misc/CA

134484405    4 -rwxr-xr-x   1 root     root          119 Jun 29  2015 /etc/pki/tls/misc/c_hash

134484406    4 -rwxr-xr-x   1 root     root          152 Jun 29  2015 /etc/pki/tls/misc/c_info

134484407    4 -rwxr-xr-x   1 root     root          112 Jun 29  2015 /etc/pki/tls/misc/c_issuer

.....

[root@www ~]# stat /etc/hostname

File: ‘/etc/hostname’

Size: 22        Blocks: 8          IO Block: 4096   regular file

Device: fd00h/64768dInode: 134974153   Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Context: system_u:object_r:hostname_etc_t:s0

Access: 2016-08-11 07:51:46.178807313 +0800

Modify: 2016-08-09 05:56:51.103010237 +0800

Change: 2016-08-09 05:56:51.103010237 +0800

Birth: -

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

[root@www ~]# find /etc/ -not -perm /222 -ls

67305775  196 -r--r--r--   1 root     root       198453 Aug  9 05:50 /etc/pki/ca-trust/extracted/java/cacerts

134417508  352 -r--r--r--   1 root     root       359773 Aug  9 05:50 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

201627950  264 -r--r--r--   1 root     root       266702 Aug  9 05:50 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

201627951  216 -r--r--r--   1 root     root       217510 Aug  9 05:50 /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem

201627952  208 -r--r--r--   1 root     root       211626 Aug  9 05:50 /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem

...

查找/etc目录下至少有一类用户没有执行权限的文件

[root@www ~]# find /etc/ -not -perm -111 -ls

134751833    4 -rw-r--r--   1 root     root          936 Mar  6  2015 /etc/mke2fs.conf

134974150    4 -rw-r--r--   1 root     root           37 Aug  9 05:56 /etc/vconsole.conf

134974152    4 -rw-r--r--   1 root     root           19 Aug  9 05:56 /etc/locale.conf

134974153    4 -rw-r--r--   1 root     root           22 Aug  9 05:56 /etc/hostname

134679689    4 -rw-r--r--   1 root     root          163 Aug  9 05:49 /etc/.updated

134914398   12 -rw-r--r--   1 root     root        12288 Aug  9 06:23 /etc/aliases.db

...

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

[root@www ~]# find /etc/init.d/ -perm -113 -ls

67830539    0 ---x--x-wx   1 root     root            0 Aug 13 02:40 /etc/init.d/file1

...

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值