馬哥教育網絡班20期+第九周博客作業

1、寫一個腳本,判斷當前系統上所有用戶shell是否為可登陸shell(即用戶shell不是/sbin/nologin),分別這兩類用戶的個數,通過字符串比較來實現

#!/bin/bash
#
login=0
nologin=0
cat /etc/passwd|while read myline
do

if [ ${myline##*/}  = "nologin" ];then
        let nologin+=1
else
        let login+=1
fi

echo "login:$login,nologin:$nologin" >tmp1

done
cat tmp1
[root@llww3317 tmp]# bash  1.sh
login:15,nologin:30

2、寫一個腳本,

    (1)獲取當前主機名,保存于hostname變量中

    (2)判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com

    (3)否則,則顯示當前主機名

#!/bin/bash
#
hostname=`hostname`
if [ $hostname = "localhost" ];then
hostname www.magedu.com
else
hostname
fi



[root@llww3317 tmp]# bash 2.sh
llww3317
[root@llww3317 tmp]# hostname localhost
[root@llww3317 tmp]# hostname
localhost
[root@llww3317 tmp]# bash 2.sh
[root@llww3317 tmp]# hostname
www.magedu.com

3、寫一個腳本,完成如下功能

    (1)傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在

    (2)如果存在,則顯示此設備上所有分區信息

#!/bin/bash
#

if ls /dev/$1 &>/dev/null ;then
fdisk -l /dev/$1
fi

[root@llww3317 tmp]# bash 3.sh sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004d60b

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  8e  Linux LVM

4、寫一個腳本,完成如下功能

    腳本能夠接受一個參數

    (1)如果參數1為quit,則顯示退出腳本,并執行正常退出

    (2)如果參數1為yes,則顯示繼續執行腳本

    (3)否則,參數1為其它任意值,均執行非正常退出

#!/bin/bash
#
case $1 in
quit)
exit 0
;;
yes)
echo "continue"
;;
*)
exit 1
;;
esac



[root@llww3317 tmp]# bash 4.sh 1
[root@llww3317 tmp]# echo $?
1
[root@llww3317 tmp]# bash 4.sh quit
[root@llww3317 tmp]# echo $?
0
[root@llww3317 tmp]# bash 4.sh yes
continue

5、寫一個腳本,完成如下功能

    傳遞一個參數給腳本,此參數為gzip, bzip2或者xz三者之一
    (1)如果參數1的值為gzip, 則使用tar和gzip歸檔壓縮/etc目錄到/backups目錄中,并命名為/backups/etc-20160613.tar.gz

    (2)如果參數1的值為bzip2,則使用tar和bzip2歸檔壓縮/etc目錄到/backups目錄中,并命名為/backups/etc-20160613.tar.bz2

    (3)如果參數1的值為xz,則使用tar和xz歸檔壓縮/etc目錄到/backups目錄中,并命名為/backups/etc-20160613.tar.xz

    (4)其它任意值,則顯示錯誤壓縮工具,并執行非正常退出

#!/bin/bash
#
case $1 in
gzip)
 tar -czvf /backups/etc-20160613.tar.gz  /etc
;;
bzip2)
tar -cjvf /backups/etc-20160613.tar.bz2 /etc
;;
xz)
tar -cjvf /backups/etc-20160613.tar.xz /etc
;;
*)
echo "error tar tools"
exit 1
;;
esac
[root@llww3317 tmp]# bash 5.sh gzip >/dev/null
[root@llww3317 tmp]# bash 5.sh bzip2 >/dev/null
[root@llww3317 tmp]# bash 5.sh xz >/dev/null
[root@llww3317 tmp]# ls /backups
etc-20160613.tar.bz2  etc-20160613.tar.gz  etc-20160613.tar.xz

6、寫一個腳本,接受一個路徑參數

    (1)如果為普通文件,則說明其可被正常訪問

    (2)如果是目錄文件,則說明可對其使用cd命令

    (3)如果為符號鏈接文件,則說明是個訪問路徑

    (4)其它為無法判斷

#!/bin/bash
#

if [ -f $1 ];then
echo "Can be accessed normally"
elif [ -L $1 ];then
echo "access route"
elif [ -d $1 ];then
echo "Can be cd command"
else
echo "unable"
fi

8、寫一個腳本,接受一個用戶名為參數

    (1)如果用戶的ID號為0,則顯示其為管理員

    (2)如果用戶的ID號大于0且小于500,則顯示 其為系統用戶

    (3)否則,則顯示其為普通用戶

#!/bin/bash
#
user=`cat /etc/passwd|grep "^$1\>"|cut -d: -f3`
if [ $user -eq 0 ];then
echo "$1:admin"
elif [ $user -gt 0 -a $user -lt 500 ];then
echo "$1:system"
else
echo "$1:normal"
fi
[root@llww3317 tmp]# bash 8.sh root
root:admin
[root@llww3317 tmp]# bash 8.sh named
named:system
[root@llww3317 tmp]# bash 8.sh magedu
magedu:normal

10、寫一個腳本,傳遞一個用戶名參數給腳本

    (1)如果用戶的ID號大于等于500,且其默認shell為sh結尾的字符串,則顯示”a user can log system “類的字符串

    (2)否則,則顯示無法登錄系統

#!/bin/bash
#
passwd=`cat /etc/passwd|grep "^$1\>"`
userid=`echo $passwd|cut -d: -f3`
shell=${passwd: -2}
if [ $userid -ge 500 -a $shell = "sh" ];then
echo "a user can log system"
else
echo "can't log system"
fi
[root@llww3317 tmp]# bash  10.sh root
can't log system
[root@llww3317 tmp]# bash  10.sh magedu
a user can log system

11、寫一個腳本,完成如下任務

    (1)按順序分別復制/var/log目錄下的每個直接文件或子目錄至/tmp/test1-testn目錄中

    (2)復制目錄時,才使用cp -r命令

    (3)復制文件時使用cp 命令

    (4)復制鏈接文件時使用cp -d 命令

    (5)余下的所有類型,使用 cp -a命令

#!/bin/bash
#
dir="/var/log/"
for i in `ls $dir`;do
if [ -L  $dir$i ];then
cp -d $dir$i /tmp/test1-testn
elif [ -d $dir$i ];then
cp -r $dir$i /tmp/test1-testn
elif [ -f $dir$i ];then
cp $dir$i /tmp/test1-testn
else
cp -a $dir$i /tmp/test1-testn
fi

echo $i
done
[root@llww3317 tmp]# ls /tmp/test1-testn/
anaconda.ifcfg.log    ConsoleKit  messages           sssd
anaconda.log          cron        ntpstats           tallylog
anaconda.program.log  cups        pm-powersave.log   wpa_supplicant.log
anaconda.storage.log  dmesg       ppp                wtmp
anaconda.syslog       dmesg.old   prelink            Xorg.0.log
anaconda.xlog         dracut.log  sa                 Xorg.0.log.old
anaconda.yum.log      gdm         samba              Xorg.9.log
audit                 httpd       secure             yum.log
boot.log              lastlog     spice-vdagent.log
btmp                  maillog     spooler

原創文章,作者:laiwen2007,如若轉載,請注明出處:http://www.www58058.com/27279

(0)
laiwen2007laiwen2007
上一篇 2016-08-09 15:20
下一篇 2016-08-09 18:44

相關推薦

  • M22 使用非對稱密鑰實現ssh自動登陸

    一 實驗目的 一般在用戶使用ssh客戶端登陸ssh服務器時需要使用用戶名和密碼,本實驗使用非對稱加密的方式實現了無密碼登陸ssh服務器。 二 實驗流程  、 1 在客戶端生成非對稱密鑰對 2 將非對稱密鑰中的公鑰發送給ssh服務器端相應的帳號 3 當客戶端通過ssh協議與服務器端發起連接時,客戶端將私鑰加密過的簽名發送給服務器端,服務器端使用客戶端…

    2017-04-13
  • 第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;  (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# fdisk /dev/sdb #創建10G分區 Welcome to fdisk (util-linux 2.23.2). Changes wi…

    Linux干貨 2017-02-19
  • 大數據計算:如何僅用1.5KB內存為十億對象計數

    Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5K This is a guest post by Matt Abrams (@abramsm), from Clearspring, discussing how they are able to accurat…

    Linux干貨 2015-04-08
  • Bash的I/O重定向及管道

    每周更新的博客定時派送啦,本周與大家一起分享的是重定向和管道 首先了解一下 讀入數據:Input 輸出數據:Output 我們來看一下重定向:  >  覆蓋重定向 上面圖中 > 文件名     創建空文件 touch 文件名 創建空文件 這兩種方法都可以創建一個新的文…

    2017-07-21
  • CentOS啟動流程

    CentOS啟動大致流程: POST –> BootSequence –> Bootloader –> kernel –> rootfs –> switchroot –> /sbin/init –> (/etc/inittab;/et…

    Linux干貨 2017-07-12
  • N25-第四周作業

    第四周作業 1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 ~]#cp -r /etc/skel /home/tuser1 ~]#chmor 700 /home/tuser1 2、編輯/etc/group文件,添加組hadoop。 ~]#echo "h…

    Linux干貨 2017-01-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-12 14:12

    寫的很好,排版也很棒,加油

欧美性久久久久